Summary: | Agreements_spec.ts is failing randomly (2) | ||
---|---|---|---|
Product: | Koha | Reporter: | Jonathan Druart <jonathan.druart> |
Component: | Test Suite | Assignee: | Jonathan Druart <jonathan.druart> |
Status: | Signed Off --- | QA Contact: | Testopia <testopia> |
Severity: | normal | ||
Priority: | P5 - low | CC: | david, matt.blenkinsop, pedro.amorim |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
See Also: | https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=34301 | ||
GIT URL: | Change sponsored?: | --- | |
Patch complexity: | --- | Documentation contact: | |
Documentation submission: | Text to go in the release notes: | ||
Version(s) released in: | Circulation function: | ||
Attachments: |
Bug 40043: Try to prevent Agreements_spec.ts to fail randomly
Bug 40043: Try to prevent Agreements_spec.ts to fail randomly |
Description
Jonathan Druart
2025-06-02 08:28:45 UTC
Created attachment 182901 [details] [review] Bug 40043: Try to prevent Agreements_spec.ts to fail randomly One test is failing with: """ https://on.cypress.io/element-has-detached-from-dom" type="CypressError"><![CDATA[CypressError: Timed out retrying after 10050ms: `cy.click()` failed because the page updated while this command was executing. Cypress tried to locate elements based on this query: > <a.show> We initially found matching element(s), but while waiting for them to become actionable, they disappeared from the page. Common situations why this happens: - Your JS framework re-rendered asynchronously - Your app code reacted to an event firing and removed the element You can typically solve this by breaking up a chain. For example, rewrite: > `cy.get('button').click().click()` to > `cy.get('button').as('btn').click()` > `cy.get('@btn').click()` https://on.cypress.io/element-has-detached-from-dom at retryActionability (http://localhost:8081/__cypress/runner/cypress_runner.js:112246:74) at tryCatcher (http://localhost:8081/__cypress/runner/cypress_runner.js:1807:23) at Promise.attempt.Promise.try (http://localhost:8081/__cypress/runner/cypress_runner.js:4315:29) at whenStable (http://localhost:8081/__cypress/runner/cypress_runner.js:143192:68) at <unknown> (http://localhost:8081/__cypress/runner/cypress_runner.js:143133:14) at tryCatcher (http://localhost:8081/__cypress/runner/cypress_runner.js:1807:23) at Promise._settlePromiseFromHandler (http://localhost:8081/__cypress/runner/cypress_runner.js:1519:31) at Promise._settlePromise (http://localhost:8081/__cypress/runner/cypress_runner.js:1576:18) at Promise._settlePromise0 (http://localhost:8081/__cypress/runner/cypress_runner.js:1621:10) at Promise._settlePromises (http://localhost:8081/__cypress/runner/cypress_runner.js:1701:18) at Promise._fulfill (http://localhost:8081/__cypress/runner/cypress_runner.js:1645:18) at <unknown> (http://localhost:8081/__cypress/runner/cypress_runner.js:5450:46) From Your Spec Code: at Context.eval (webpack://koha/./t/cypress/integration/ERM/Agreements_spec.ts:630:18)]]></failure> </testcase> </testsuite> """ My guess is that it happens because we don't wait for the /agreements response. Test plan: Test should still pass, we will see how Jenkins behave after it's pushed. Created attachment 182911 [details] [review] Bug 40043: Try to prevent Agreements_spec.ts to fail randomly One test is failing with: """ https://on.cypress.io/element-has-detached-from-dom" type="CypressError"><![CDATA[CypressError: Timed out retrying after 10050ms: `cy.click()` failed because the page updated while this command was executing. Cypress tried to locate elements based on this query: > <a.show> We initially found matching element(s), but while waiting for them to become actionable, they disappeared from the page. Common situations why this happens: - Your JS framework re-rendered asynchronously - Your app code reacted to an event firing and removed the element You can typically solve this by breaking up a chain. For example, rewrite: > `cy.get('button').click().click()` to > `cy.get('button').as('btn').click()` > `cy.get('@btn').click()` https://on.cypress.io/element-has-detached-from-dom at retryActionability (http://localhost:8081/__cypress/runner/cypress_runner.js:112246:74) at tryCatcher (http://localhost:8081/__cypress/runner/cypress_runner.js:1807:23) at Promise.attempt.Promise.try (http://localhost:8081/__cypress/runner/cypress_runner.js:4315:29) at whenStable (http://localhost:8081/__cypress/runner/cypress_runner.js:143192:68) at <unknown> (http://localhost:8081/__cypress/runner/cypress_runner.js:143133:14) at tryCatcher (http://localhost:8081/__cypress/runner/cypress_runner.js:1807:23) at Promise._settlePromiseFromHandler (http://localhost:8081/__cypress/runner/cypress_runner.js:1519:31) at Promise._settlePromise (http://localhost:8081/__cypress/runner/cypress_runner.js:1576:18) at Promise._settlePromise0 (http://localhost:8081/__cypress/runner/cypress_runner.js:1621:10) at Promise._settlePromises (http://localhost:8081/__cypress/runner/cypress_runner.js:1701:18) at Promise._fulfill (http://localhost:8081/__cypress/runner/cypress_runner.js:1645:18) at <unknown> (http://localhost:8081/__cypress/runner/cypress_runner.js:5450:46) From Your Spec Code: at Context.eval (webpack://koha/./t/cypress/integration/ERM/Agreements_spec.ts:630:18)]]></failure> </testcase> </testsuite> """ My guess is that it happens because we don't wait for the /agreements response. Test plan: Test should still pass, we will see how Jenkins behave after it's pushed. Signed-off-by: David Nind <david@davidnind.com> Testing notes (using KTD): 1. To run the tests: yarn cypress run --spec t/cypress/integration/ERM/Agreements_spec.ts |