From 90aac9691d6c9784986398a430729bdf42d3244d Mon Sep 17 00:00:00 2001 From: shortstacked Date: Fri, 30 May 2025 14:01:12 +0100 Subject: [PATCH] fix: Add commands for tab interception and visiting (no-changelog) (#15866) --- cypress/e2e/39-projects.cy.ts | 11 +++++------ cypress/support/commands.ts | 15 +++++++++++++++ cypress/support/index.ts | 2 ++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/cypress/e2e/39-projects.cy.ts b/cypress/e2e/39-projects.cy.ts index cd67dcff4f..e6e53ae41c 100644 --- a/cypress/e2e/39-projects.cy.ts +++ b/cypress/e2e/39-projects.cy.ts @@ -5,6 +5,7 @@ import { clickCreateNewCredential, getNdvContainer, selectResourceLocatorAddResourceItem, + clickGetBackToCanvas, } from '../composables/ndv'; import * as projects from '../composables/projects'; import { @@ -294,14 +295,12 @@ describe('Projects', { disableAutoLogin: true }, () => { workflowPage.actions.saveWorkflowOnButtonClick(); workflowPage.actions.addNodeToCanvas('Execute Workflow', true, true); - // This mock fails when running with `test:e2e:dev` but works with `test:e2e:ui`, - // at least on macOS at version 1.94.0. ¯\_(ツ)_/¯ - cy.window().then((win) => cy.stub(win, 'open').callsFake((url) => cy.visit(url))); - + cy.interceptNewTab(); selectResourceLocatorAddResourceItem('workflowId', 'Create a'); - // Need to wait for the trigger node to auto-open after a delay + + cy.visitInterceptedTab(); getNdvContainer().should('be.visible'); - cy.get('body').type('{esc}'); + clickGetBackToCanvas(); workflowPage.actions.addNodeToCanvas(NOTION_NODE_NAME, true, true); clickCreateNewCredential(); setCredentialValues({ diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 5e8dead3c8..0417bf71f7 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -240,3 +240,18 @@ Cypress.Commands.add('resetDatabase', () => { admin: INSTANCE_ADMIN, }); }); + +Cypress.Commands.add('interceptNewTab', () => { + cy.window().then((win) => { + cy.stub(win, 'open').as('windowOpen'); + }); +}); + +Cypress.Commands.add('visitInterceptedTab', () => { + cy.get('@windowOpen') + .should('have.been.called') + .then((stub: any) => { + const url = stub.firstCall.args[0]; + cy.visit(url); + }); +}); diff --git a/cypress/support/index.ts b/cypress/support/index.ts index bf605bc7b4..19fd0497c6 100644 --- a/cypress/support/index.ts +++ b/cypress/support/index.ts @@ -86,6 +86,8 @@ declare global { >; resetDatabase(): void; setAppDate(targetDate: number | Date): void; + interceptNewTab(): Chainable; + visitInterceptedTab(): Chainable; } } }