Bugzilla – Attachment 188774 Details for
Bug 40191
Design pattern: Redirect user to a view of the record after saving instead of list
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 40191: Update Cypress tests for split button navigation changes
Bug-40191-Update-Cypress-tests-for-split-button-na.patch (text/plain), 17.17 KB, created by
Martin Renvoize (ashimema)
on 2025-10-31 08:59:42 UTC
(
hide
)
Description:
Bug 40191: Update Cypress tests for split button navigation changes
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2025-10-31 08:59:42 UTC
Size:
17.17 KB
patch
obsolete
>From 719404d341b26e90d75009d05437b5bfae4fbbec Mon Sep 17 00:00:00 2001 >From: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk> >Date: Tue, 21 Oct 2025 10:12:51 +0100 >Subject: [PATCH] Bug 40191: Update Cypress tests for split button navigation > changes > >Updates existing test selectors and assertions to work with the new split >button UI pattern: > >- Admin/RecordSources_spec.ts: Update button selectors >- ERM tests (Agreements, Licenses, Packages, Titles, Dialog): Update form save expectations >- InfiniteScrollSelect_spec.ts: Update interaction patterns >- Preservation/Trains.ts: Update save button selectors > >Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> >--- > .../integration/Admin/RecordSources_spec.ts | 4 +- > t/cypress/integration/ERM/Agreements_spec.ts | 14 +++---- > t/cypress/integration/ERM/Dialog_spec.ts | 39 ++++++++----------- > t/cypress/integration/ERM/Licenses_spec.ts | 12 +++--- > t/cypress/integration/ERM/Packages_spec.ts | 10 ++--- > t/cypress/integration/ERM/Titles_spec.ts | 10 ++--- > .../integration/InfiniteScrollSelect_spec.ts | 2 +- > t/cypress/integration/Preservation/Trains.ts | 8 ++-- > 8 files changed, 47 insertions(+), 52 deletions(-) > >diff --git a/t/cypress/integration/Admin/RecordSources_spec.ts b/t/cypress/integration/Admin/RecordSources_spec.ts >index 2dfb179632a..7782f54b804 100644 >--- a/t/cypress/integration/Admin/RecordSources_spec.ts >+++ b/t/cypress/integration/Admin/RecordSources_spec.ts >@@ -40,7 +40,7 @@ describe("Record sources CRUD tests", () => { > statusCode: 201, > body: {}, > }); >- cy.get("#record_sources_add").contains("Submit").click(); >+ cy.get("#record_sources_add").contains("Save").click(); > > cy.get("main div[class='alert alert-info']").contains( > "Record source created!" >@@ -178,7 +178,7 @@ describe("Record sources CRUD tests", () => { > can_be_edited: false, > }, > }); >- cy.get("#record_sources_add").contains("Submit").click(); >+ cy.get("#record_sources_add").contains("Save").click(); > }); > > it("Delete", () => { >diff --git a/t/cypress/integration/ERM/Agreements_spec.ts b/t/cypress/integration/ERM/Agreements_spec.ts >index 6416c7f8ae9..ed08ced0613 100644 >--- a/t/cypress/integration/ERM/Agreements_spec.ts >+++ b/t/cypress/integration/ERM/Agreements_spec.ts >@@ -162,14 +162,14 @@ describe("Agreement CRUD operations", () => { > cy.left_menu_active_item_is("Agreements"); > > // Fill in the form for normal attributes >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.get("input:invalid,textarea:invalid,select:invalid").should( > "have.length", > 2 > ); > cy.get("#name").type(agreement.name); > cy.get("#description").type(agreement.description); >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.get("input:invalid,textarea:invalid,select:invalid").should( > "have.length", > 1 >@@ -208,7 +208,7 @@ describe("Agreement CRUD operations", () => { > ); > > cy.contains("Add new period").click(); >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.get("input:invalid,textarea:invalid,select:invalid").should( > "have.length", > 1 >@@ -295,7 +295,7 @@ describe("Agreement CRUD operations", () => { > cy.intercept("POST", "/api/v1/erm/agreements", { > statusCode: 500, > }); >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -305,7 +305,7 @@ describe("Agreement CRUD operations", () => { > statusCode: 201, > body: agreement, > }); >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains( > "Agreement created" > ); >@@ -493,7 +493,7 @@ describe("Agreement CRUD operations", () => { > delay: 1000, > }); > }).as("edit-agreement"); >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.get("main div[class='modal_centered']").contains("Submitting..."); > cy.wait("@edit-agreement"); > cy.get("main div[class='alert alert-warning']").contains( >@@ -505,7 +505,7 @@ describe("Agreement CRUD operations", () => { > statusCode: 200, > body: agreement, > }); >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains( > "Agreement updated" > ); >diff --git a/t/cypress/integration/ERM/Dialog_spec.ts b/t/cypress/integration/ERM/Dialog_spec.ts >index 71d4829b6b0..cbc0ad23727 100644 >--- a/t/cypress/integration/ERM/Dialog_spec.ts >+++ b/t/cypress/integration/ERM/Dialog_spec.ts >@@ -90,21 +90,14 @@ describe("Dialog operations", () => { > { force: true } > ); > >- cy.intercept("POST", "/api/v1/erm/eholdings/local/packages", { >- statusCode: 201, >- body: erm_package, >- }); >- cy.intercept("GET", "/api/v1/erm/eholdings/local/packages*", { >- statusCode: 200, >- body: [erm_package], >- headers: { >- "X-Base-Total-Count": "1", >- "X-Total-Count": "1", >- }, >- }).as("get-packages"); >- cy.get("#packages_add").contains("Submit").click(); >- cy.wait("@get-packages"); >- cy.get("#packages_list").should("exist"); >+ cy.intercept( >+ "GET", >+ "/api/v1/erm/eholdings/local/packages/*", >+ erm_package >+ ).as("get-package"); >+ cy.get("#packages_add").contains("Save").click(); >+ cy.wait("@get-package"); >+ cy.get("#packages_show").should("exist"); > cy.get("main div[class='alert alert-info']").contains( > "Package created" > ); >@@ -138,25 +131,25 @@ describe("Dialog operations", () => { > }); > cy.intercept("PUT", "/api/v1/erm/eholdings/local/packages/*", { > statusCode: 200, >- body: [erm_package], >- }); >+ body: erm_package, >+ }).as("put-package"); > cy.intercept( > "GET", > "/api/v1/erm/eholdings/local/packages/*", > erm_package >- ); >+ ).as("get-package"); > cy.visit("/cgi-bin/koha/erm/eholdings/local/packages"); > > cy.get("#packages_list table tbody tr:first").contains("Edit").click(); >- cy.get("#packages_add").contains("Submit").click(); >+ cy.wait("@get-package"); >+ cy.get("#packages_add").contains("Save").click(); >+ cy.wait("@put-package"); > cy.get("main div[class='alert alert-info']").contains( > "Package updated" > ); > cy.get("main div[class='alert alert-info']").should("have.length", 1); > >- cy.get("#packages_list table tbody tr:first") >- .contains("Delete") >- .click(); >+ cy.get("#packages_show #toolbar").contains("Delete").click(); > cy.contains("No, do not delete").click(); > cy.get(".alert-warning.confirmation h1").should("not.exist"); > cy.get("main div[class='alert alert-info']").contains( >@@ -168,6 +161,8 @@ describe("Dialog operations", () => { > statusCode: 204, > body: null, > }); >+ >+ cy.visit("/cgi-bin/koha/erm/eholdings/local/packages"); > cy.get("#packages_list table tbody tr:first") > .contains("Delete") > .click(); >diff --git a/t/cypress/integration/ERM/Licenses_spec.ts b/t/cypress/integration/ERM/Licenses_spec.ts >index d8321dfba59..1b0fffc50fe 100644 >--- a/t/cypress/integration/ERM/Licenses_spec.ts >+++ b/t/cypress/integration/ERM/Licenses_spec.ts >@@ -68,14 +68,14 @@ describe("License CRUD operations", () => { > cy.left_menu_active_item_is("Licenses"); > > // Fill in the form for normal attributes >- cy.get("#licenses_add").contains("Submit").click(); >+ cy.get("#licenses_add").contains("Save").click(); > cy.get("input:invalid,textarea:invalid,select:invalid").should( > "have.length", > 4 > ); > cy.get("#name").type(license.name); > cy.get("#description").type(license.description); >- cy.get("#licenses_add").contains("Submit").click(); >+ cy.get("#licenses_add").contains("Save").click(); > cy.get("#type .vs__search").type(license.type + "{enter}", { > force: true, > }); >@@ -131,7 +131,7 @@ describe("License CRUD operations", () => { > cy.intercept("POST", "/api/v1/erm/licenses", { > statusCode: 500, > }); >- cy.get("#licenses_add").contains("Submit").click(); >+ cy.get("#licenses_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -141,7 +141,7 @@ describe("License CRUD operations", () => { > statusCode: 201, > body: license, > }); >- cy.get("#licenses_add").contains("Submit").click(); >+ cy.get("#licenses_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains( > "License created" > ); >@@ -207,7 +207,7 @@ describe("License CRUD operations", () => { > cy.intercept("PUT", "/api/v1/erm/licenses/*", { > statusCode: 500, > }); >- cy.get("#licenses_add").contains("Submit").click(); >+ cy.get("#licenses_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -217,7 +217,7 @@ describe("License CRUD operations", () => { > statusCode: 200, > body: license, > }); >- cy.get("#licenses_add").contains("Submit").click(); >+ cy.get("#licenses_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains( > "License updated" > ); >diff --git a/t/cypress/integration/ERM/Packages_spec.ts b/t/cypress/integration/ERM/Packages_spec.ts >index 56d9870c535..181ffb8b05b 100644 >--- a/t/cypress/integration/ERM/Packages_spec.ts >+++ b/t/cypress/integration/ERM/Packages_spec.ts >@@ -66,7 +66,7 @@ describe("Package CRUD operations", () => { > // Fill in the form for normal attributes > let erm_package = cy.get_package(); > >- cy.get("#packages_add").contains("Submit").click(); >+ cy.get("#packages_add").contains("Save").click(); > cy.get("input:invalid,textarea:invalid,select:invalid").should( > "have.length", > 1 >@@ -89,7 +89,7 @@ describe("Package CRUD operations", () => { > cy.intercept("POST", "/api/v1/erm/eholdings/local/packages", { > statusCode: 500, > }); >- cy.get("#packages_add").contains("Submit").click(); >+ cy.get("#packages_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -99,7 +99,7 @@ describe("Package CRUD operations", () => { > statusCode: 201, > body: erm_package, > }); >- cy.get("#packages_add").contains("Submit").click(); >+ cy.get("#packages_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains( > "Package created" > ); >@@ -166,7 +166,7 @@ describe("Package CRUD operations", () => { > cy.intercept("PUT", "/api/v1/erm/eholdings/local/packages/*", { > statusCode: 500, > }); >- cy.get("#packages_add").contains("Submit").click(); >+ cy.get("#packages_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -176,7 +176,7 @@ describe("Package CRUD operations", () => { > statusCode: 200, > body: erm_package, > }); >- cy.get("#packages_add").contains("Submit").click(); >+ cy.get("#packages_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains( > "Package updated" > ); >diff --git a/t/cypress/integration/ERM/Titles_spec.ts b/t/cypress/integration/ERM/Titles_spec.ts >index e87001e61a0..b7b15503719 100644 >--- a/t/cypress/integration/ERM/Titles_spec.ts >+++ b/t/cypress/integration/ERM/Titles_spec.ts >@@ -140,7 +140,7 @@ describe("Title CRUD operations", () => { > // Fill in the form for normal attributes > let erm_title = cy.get_title(); > >- cy.get("#titles_add").contains("Submit").click(); >+ cy.get("#titles_add").contains("Save").click(); > cy.get("input:invalid,textarea:invalid,select:invalid").should( > "have.length", > 1 >@@ -196,7 +196,7 @@ describe("Title CRUD operations", () => { > statusCode: 500, > error: "Something went wrong", > }); >- cy.get("#titles_add").contains("Submit").click(); >+ cy.get("#titles_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -206,7 +206,7 @@ describe("Title CRUD operations", () => { > statusCode: 201, > body: erm_title, > }); >- cy.get("#titles_add").contains("Submit").click(); >+ cy.get("#titles_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains("Title created"); > > // Add new related package (resource) >@@ -348,7 +348,7 @@ describe("Title CRUD operations", () => { > cy.intercept("PUT", "/api/v1/erm/eholdings/local/titles/*", { > statusCode: 500, > }); >- cy.get("#titles_add").contains("Submit").click(); >+ cy.get("#titles_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -358,7 +358,7 @@ describe("Title CRUD operations", () => { > statusCode: 200, > body: erm_title, > }); >- cy.get("#titles_add").contains("Submit").click(); >+ cy.get("#titles_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains("Title updated"); > }); > >diff --git a/t/cypress/integration/InfiniteScrollSelect_spec.ts b/t/cypress/integration/InfiniteScrollSelect_spec.ts >index dfd6eef5990..e3c61a932df 100644 >--- a/t/cypress/integration/InfiniteScrollSelect_spec.ts >+++ b/t/cypress/integration/InfiniteScrollSelect_spec.ts >@@ -160,7 +160,7 @@ describe("Infinite scroll", () => { > body: agreement, > }).as("submitForm"); > // Submit the form, no error should be thrown as the select has correctly set the license id >- cy.get("#agreements_add").contains("Submit").click(); >+ cy.get("#agreements_add").contains("Save").click(); > cy.wait("@submitForm"); > cy.get("main div[class='alert alert-info']").contains( > "Agreement created" >diff --git a/t/cypress/integration/Preservation/Trains.ts b/t/cypress/integration/Preservation/Trains.ts >index 727f3de9bc3..ae21828af1a 100644 >--- a/t/cypress/integration/Preservation/Trains.ts >+++ b/t/cypress/integration/Preservation/Trains.ts >@@ -333,7 +333,7 @@ describe("Trains", () => { > statusCode: 500, > error: "Something went wrong", > }); >- cy.get("#trains_add").contains("Submit").click(); >+ cy.get("#trains_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -343,7 +343,7 @@ describe("Trains", () => { > statusCode: 201, > body: train, > }); >- cy.get("#trains_add").contains("Submit").click(); >+ cy.get("#trains_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains("Train created"); > }); > >@@ -376,7 +376,7 @@ describe("Trains", () => { > cy.intercept("PUT", "/api/v1/preservation/trains/*", { > statusCode: 500, > }); >- cy.get("#trains_add").contains("Submit").click(); >+ cy.get("#trains_add").contains("Save").click(); > cy.get("main div[class='alert alert-warning']").contains( > "Something went wrong: Error: Internal Server Error" > ); >@@ -390,7 +390,7 @@ describe("Trains", () => { > statusCode: 200, > body: [train], > }); >- cy.get("#trains_add").contains("Submit").click(); >+ cy.get("#trains_add").contains("Save").click(); > cy.get("main div[class='alert alert-info']").contains("Train updated"); > }); > >-- >2.51.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 40191
:
188107
|
188108
|
188109
|
188137
|
188138
|
188139
|
188164
|
188165
|
188167
|
188193
|
188194
|
188195
|
188196
|
188197
|
188198
|
188201
|
188202
|
188203
|
188768
|
188769
|
188770
|
188771
|
188772
|
188773
| 188774 |
188775
|
188776