From cd410fa7cf76cfa12f2609c4b4cc57bec2dd843d Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 26 Feb 2025 12:31:28 +0100 Subject: [PATCH] refactor: refs #6695 improve notification check and extend waitForElement timeout --- test/cypress/support/commands.js | 40 +++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 6b6ebd426..41f1412aa 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -27,6 +27,29 @@ // DO NOT REMOVE // Imports Quasar Cypress AE predefined commands // import { registerCommands } from '@quasar/quasar-app-extension-testing-e2e-cypress'; + +// function getStatus() { +// const MAX_ATTEMPTS = 10; +// const DELAY = 1000; +// let attempts = 0; +// let connected; + +// while (!connected && attempts < MAX_ATTEMPTS) { +// cy.log('connected: ', connected); +// cy.request({ +// url: 'http://localhost:9000/api/Applications/status', +// failOnStatusCode: false, +// }).then((response) => { +// cy.log('response: ', response.body); +// cy.log('response.bodyasd ', response.body); +// if (response.body) connected = response.body; +// }); +// cy.wait(DELAY); +// attempts++; +// } +// cy.log('❌ Backend not found'); +// } + import waitUntil from './waitUntil'; Cypress.Commands.add('waitUntil', { prevSubject: 'optional' }, waitUntil); @@ -34,7 +57,8 @@ Cypress.Commands.add('resetDB', () => { cy.exec('pnpm run resetDatabase'); }); Cypress.Commands.add('login', (user) => { - //cy.visit('/#/login'); + // getStatus(); + cy.request({ method: 'POST', url: '/api/accounts/login', @@ -59,7 +83,7 @@ Cypress.Commands.add('login', (user) => { Cypress.Commands.add('domContentLoad', (element, timeout = 5000) => { cy.waitUntil(() => cy.document().then((doc) => doc.readyState === 'complete')); }); -Cypress.Commands.add('waitForElement', (element, timeout = 10000) => { +Cypress.Commands.add('waitForElement', (element, timeout = 30000) => { cy.get(element, { timeout }).should('be.visible').and('not.be.disabled'); }); @@ -327,12 +351,16 @@ Cypress.Commands.add('openUserPanel', () => { }); Cypress.Commands.add('checkNotification', (text) => { - cy.get('.q-notification', { timeout: 10000 }) + cy.get('.q-notification') .should('be.visible') - .filter((_, el) => Cypress.$(el).text().includes(text)) - .should('have.length.greaterThan', 0); + .should('have.length.greaterThan', 0) + .should(($elements) => { + const found = $elements + .toArray() + .some((el) => Cypress.$(el).text().includes(text)); + expect(found).to.be.true; + }); }); - Cypress.Commands.add('openActions', (row) => { cy.get('tbody > tr').eq(row).find('.actions > .q-btn').click(); });