Bugzilla – Attachment 189609 Details for
Bug 41247
ILL batches modal does not reset correctly
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41247: Add cypress tests
Bug-41247-Add-cypress-tests.patch (text/plain), 15.23 KB, created by
Pedro Amorim
on 2025-11-14 14:26:32 UTC
(
hide
)
Description:
Bug 41247: Add cypress tests
Filename:
MIME Type:
Creator:
Pedro Amorim
Created:
2025-11-14 14:26:32 UTC
Size:
15.23 KB
patch
obsolete
>From 6e7df2d718bb16601921d6ccd0e216702907d9ee Mon Sep 17 00:00:00 2001 >From: Pedro Amorim <pedro.amorim@openfifth.co.uk> >Date: Fri, 14 Nov 2025 13:43:14 +0000 >Subject: [PATCH] Bug 41247: Add cypress tests > >Apply just the 2 cypress tests patches, run: >cypress run --spec t/cypress/integration/ILL/Batches_spec.ts > >Notice it fails. >Apply the fix patch. Repeat the command above. Tests must pass. >--- > .../koha-plugin-ill-metadata-enrichment.kpz | Bin 0 -> 4040 bytes > t/cypress/integration/ILL/Batches_spec.ts | 264 ++++++++++++++++++ > 2 files changed, 264 insertions(+) > create mode 100644 t/cypress/fixtures/koha-plugin-ill-metadata-enrichment.kpz > create mode 100644 t/cypress/integration/ILL/Batches_spec.ts > >diff --git a/t/cypress/fixtures/koha-plugin-ill-metadata-enrichment.kpz b/t/cypress/fixtures/koha-plugin-ill-metadata-enrichment.kpz >new file mode 100644 >index 0000000000000000000000000000000000000000..d8e6bc03aace000efe02e76c3f4967b73bd298f7 >GIT binary patch >literal 4040 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 > >literal 0 >HcmV?d00001 > >diff --git a/t/cypress/integration/ILL/Batches_spec.ts b/t/cypress/integration/ILL/Batches_spec.ts >new file mode 100644 >index 00000000000..186787e9bdb >--- /dev/null >+++ b/t/cypress/integration/ILL/Batches_spec.ts >@@ -0,0 +1,264 @@ >+const pubmedid_metadata_response = { >+ errors: [], >+ results: { >+ result: { >+ header: { >+ type: "esummary", >+ version: "0.3", >+ }, >+ result: { >+ "123": { >+ articleids: [ >+ { >+ idtype: "pubmed", >+ idtypen: 1, >+ value: "123", >+ }, >+ { >+ idtype: "doi", >+ idtypen: 3, >+ value: "10.1002\/bjs.1800621024", >+ }, >+ ], >+ attributes: ["Has Abstract"], >+ authors: [ >+ { >+ authtype: "Author", >+ clusterid: "", >+ name: "Keighley MR", >+ }, >+ { >+ authtype: "Author", >+ clusterid: "", >+ name: "Asquith P", >+ }, >+ { >+ authtype: "Author", >+ clusterid: "", >+ name: "Edwards JA", >+ }, >+ { >+ authtype: "Author", >+ clusterid: "", >+ name: "Alexander-Williams J", >+ }, >+ ], >+ availablefromurl: "", >+ bookname: "", >+ booktitle: "", >+ chapter: "", >+ doccontriblist: [], >+ docdate: "", >+ doctype: "citation", >+ edition: "", >+ elocationid: "", >+ epubdate: "", >+ essn: "", >+ fulljournalname: "The British journal of surgery", >+ history: [ >+ { >+ date: "1975\/10\/01 00:00", >+ pubstatus: "pubmed", >+ }, >+ { >+ date: "1975\/10\/01 00:01", >+ pubstatus: "medline", >+ }, >+ { >+ date: "1975\/10\/01 00:00", >+ pubstatus: "entrez", >+ }, >+ ], >+ issn: "0007-1323", >+ issue: "10", >+ lang: ["eng"], >+ lastauthor: "Alexander-Williams J", >+ locationlabel: "", >+ medium: "", >+ nlmuniqueid: "0372553", >+ pages: "845-9", >+ pmcrefcount: "", >+ pubdate: "1975 Oct", >+ publisherlocation: "", >+ publishername: "", >+ pubstatus: "4", >+ pubtype: ["Journal Article"], >+ recordstatus: "PubMed - indexed for MEDLINE", >+ references: [], >+ reportnumber: "", >+ sortfirstauthor: "Keighley MR", >+ sortpubdate: "1975\/10\/01 00:00", >+ sorttitle: >+ "importance of an innervated and intact antrum and pylorus in preventing postoperative duodenogastric reflux and gastritis", >+ source: "Br J Surg", >+ srccontriblist: [], >+ srcdate: "", >+ title: "The importance of an innervated and intact antrum and pylorus in preventing postoperative duodenogastric reflux and gastritis.", >+ uid: "123", >+ vernaculartitle: "", >+ volume: "62", >+ }, >+ uids: ["123"], >+ }, >+ }, >+ }, >+}; >+ >+const parse_to_ill_response = { >+ errors: [], >+ results: { >+ result: { >+ article_title: >+ "The importance of an innervated and intact antrum and pylorus in preventing postoperative duodenogastric reflux and gastritis.", >+ associated_id: "123", >+ author: "Keighley MR; Asquith P; Edwards JA; Alexander-Williams J", >+ issn: "0007-1323", >+ issue: "10", >+ pages: "845-9", >+ publisher: "", >+ pubmedid: "123", >+ title: "The British journal of surgery", >+ volume: "62", >+ year: "1975", >+ }, >+ }, >+}; >+ >+describe("ILL Batches", () => { >+ let original_plugin_restricted; >+ let kohaconf = "/etc/koha/sites/kohadev/koha-conf.xml"; >+ beforeEach(() => { >+ cy.login(); >+ cy.task("query", { >+ sql: "SELECT value FROM systempreferences WHERE variable='ILLModule'", >+ }).then(rows => { >+ cy.wrap(rows[0].value).as("syspref_ILLModule"); >+ }); >+ cy.set_syspref("ILLModule", 1); >+ cy.task("readXmlElementValue", { >+ filePath: kohaconf, >+ element: "plugins_restricted", >+ }).then(value => { >+ original_plugin_restricted = value; >+ if (value == "1") { >+ cy.task("modifyXmlElement", { >+ filePath: kohaconf, >+ element: "plugins_restricted", >+ value: "0", >+ }); >+ } >+ }); >+ cy.title().should("eq", "Koha staff interface"); >+ cy.get("a.icon_administration").contains("Koha administration").click(); >+ cy.get("a").contains("Manage plugins").click(); >+ cy.get("a#upload_plugin").contains("Upload plugin").click(); >+ >+ cy.get("#uploadfile").click(); >+ cy.get("#uploadfile").selectFile( >+ "t/cypress/fixtures/koha-plugin-ill-metadata-enrichment.kpz" >+ ); >+ cy.get("input").contains("Upload").click(); >+ }); >+ afterEach(function () { >+ //Restore ILLModule sys pref original value >+ cy.set_syspref("ILLModule", this.syspref_ILLModule); >+ //Restore plugins_restricted original value >+ cy.task("modifyXmlElement", { >+ filePath: kohaconf, >+ element: "plugins_restricted", >+ value: original_plugin_restricted, >+ }); >+ //Clean-up created test batches >+ cy.task("query", { >+ sql: "DELETE from illbatches", >+ }); >+ //Clean-up installed plugin(s) >+ cy.task("query", { >+ sql: "DELETE from plugin_data", >+ }); >+ cy.task("query", { >+ sql: "DELETE from plugin_methods", >+ }); >+ }); >+ it("ILL requests batch modal", function () { >+ cy.visit("/cgi-bin/koha/mainpage.pl"); >+ cy.get("a.icon_ill").contains("ILL requests"); >+ cy.get("a.icon_ill").click(); >+ >+ // Open batch modal >+ cy.get("#ill-batch-backend-dropdown") >+ .contains("New ILL requests batch") >+ .click(); >+ cy.get(".dropdown-menu.show a").contains("Standard").click(); >+ cy.get("#ill-batch-modal").should("be.visible"); >+ cy.get("#ill-batch-modal #button_create_batch") >+ .should("exist") >+ .and("be.disabled"); >+ >+ // Create batch >+ cy.get("#ill-batch-modal #name").type("test batch"); >+ cy.get("#ill-batch-modal #batchcardnumber").type("42"); >+ cy.get("#ill-batch-modal #branchcode").select("Centerville"); >+ cy.get("#ill-batch-modal #button_create_batch") >+ .should("exist") >+ .and("not.be.disabled"); >+ cy.get("#ill-batch-modal #button_create_batch").click(); >+ cy.get("#ill-batch-modal #add_batch_items").should("be.visible"); >+ >+ // Close modal >+ cy.get("#ill-batch-modal #button_cancel_batch").click(); >+ cy.get("#ill-batch-modal").should("not.be.visible"); >+ >+ // Reopen modal, button_create_batch must exist and be disabled >+ cy.get("#ill-batch-backend-dropdown") >+ .contains("New ILL requests batch") >+ .click(); >+ cy.get(".dropdown-menu.show a").contains("Standard").click(); >+ cy.get("#ill-batch-modal #button_create_batch") >+ .should("exist") >+ .and("be.disabled"); >+ >+ // Create a new batch >+ cy.get("#ill-batch-modal #name").type("second test batch"); >+ cy.get("#ill-batch-modal #batchcardnumber").type("42"); >+ cy.get("#ill-batch-modal #branchcode").select("Centerville"); >+ cy.get("#ill-batch-modal #button_create_batch") >+ .should("exist") >+ .and("not.be.disabled"); >+ cy.get("#ill-batch-modal #button_create_batch").click(); >+ cy.get("#ill-batch-modal #add_batch_items").should("be.visible"); >+ >+ // Add identifiers + Mock plugin (pubmedid) API responses >+ let pubmedid = "123"; >+ cy.intercept( >+ "GET", >+ "/api/v1/contrib/pubmed/esummary?pmid=" + pubmedid, >+ { >+ statusCode: 200, >+ body: pubmedid_metadata_response, >+ } >+ ).as("get-pubmedid-metadata"); >+ cy.intercept("POST", "/api/v1/contrib/pubmed/parse_to_ill", { >+ statusCode: 200, >+ body: parse_to_ill_response, >+ }).as("get-parse_to_ill"); >+ cy.get("#ill-batch-modal #identifiers_input").type(pubmedid); >+ cy.get("#ill-batch-modal #process-button") >+ .contains("Process identifiers") >+ .click(); >+ cy.wait("@get-pubmedid-metadata"); >+ cy.wait("@get-parse_to_ill"); >+ cy.get("#ill-batch-modal #create-requests-button").should("exist"); >+ >+ // Close modal >+ cy.get("#ill-batch-modal #button_cancel_batch").click(); >+ cy.get("#ill-batch-modal").should("not.be.visible"); >+ >+ // Reopen modal, #identifier-table_wrapper must not be visible >+ cy.get("#ill-batch-backend-dropdown") >+ .contains("New ILL requests batch") >+ .click(); >+ cy.get(".dropdown-menu.show a").contains("Standard").click(); >+ cy.get("#identifier-table_wrapper").should("not.be.visible"); >+ }); >+}); >-- >2.39.5
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 41247
:
189572
|
189603
|
189604
|
189607
|
189608
|
189609
|
189618
|
190903
|
190904
|
190905