Bug 39606: Add a cypress test

To test:
1. APPLY PATCH
2. cypress run --spec "t/cypress/integration/Tools/"
3. Tests should pass

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Lucas Gass 2025-04-10 22:07:10 +00:00 committed by Katrin Fischer
parent c4389ea7a8
commit b0cfcea861
No known key found for this signature in database
GPG Key ID: 0EF6E2C03357A834
2 changed files with 270 additions and 0 deletions

View File

@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8"?>
<record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
xmlns="http://www.loc.gov/MARC21/slim">
<leader>01670nam a2200433Ii 4500</leader>
<controlfield tag="001">sky2ocm96738507</controlfield>
<controlfield tag="003">SKY</controlfield>
<controlfield tag="005">20241107145520.0</controlfield>
<controlfield tag="008">190604t20191985nyu 000 1 eng d</controlfield>
<datafield tag="020" ind1=" " ind2=" ">
<subfield code="a">9780593098271 (paperback)</subfield>
</datafield>
<datafield tag="040" ind1=" " ind2=" ">
<subfield code="a">OClCo</subfield>
<subfield code="b">eng</subfield>
<subfield code="e">rda</subfield>
<subfield code="c">OClCo</subfield>
</datafield>
<datafield tag="099" ind1=" " ind2=" ">
<subfield code="a">PBK HERBERT</subfield>
</datafield>
<datafield tag="100" ind1="1" ind2=" ">
<subfield code="a">Herbert, Frank,</subfield>
<subfield code="e">author.</subfield>
<subfield code="9">11964</subfield>
</datafield>
<datafield tag="245" ind1="1" ind2="0">
<subfield code="a">Chapterhouse :</subfield>
<subfield code="b">Dune /</subfield>
<subfield code="c">Frank Herbert ; with an introduction by Brian Herbert.</subfield>
</datafield>
<datafield tag="246" ind1="3" ind2="0">
<subfield code="a">Dune</subfield>
</datafield>
<datafield tag="250" ind1=" " ind2=" ">
<subfield code="a">Ace premium edition.</subfield>
</datafield>
<datafield tag="264" ind1=" " ind2="1">
<subfield code="a">New York :</subfield>
<subfield code="b">Ace, published by Berkley,</subfield>
<subfield code="c">2019.</subfield>
</datafield>
<datafield tag="264" ind1=" " ind2="4">
<subfield code="c">&#xA9;1985.</subfield>
</datafield>
<datafield tag="300" ind1=" " ind2=" ">
<subfield code="a">xi, 609 pages ;</subfield>
<subfield code="c">19 cm.</subfield>
</datafield>
<datafield tag="336" ind1=" " ind2=" ">
<subfield code="a">text</subfield>
<subfield code="b">txt</subfield>
<subfield code="2">rdacontent</subfield>
</datafield>
<datafield tag="337" ind1=" " ind2=" ">
<subfield code="a">unmediated</subfield>
<subfield code="b">n</subfield>
<subfield code="2">rdamedia</subfield>
</datafield>
<datafield tag="338" ind1=" " ind2=" ">
<subfield code="a">volume</subfield>
<subfield code="b">nc</subfield>
<subfield code="2">rdacarrier</subfield>
</datafield>
<datafield tag="490" ind1="1" ind2=" ">
<subfield code="a">Dune chronicles ;</subfield>
<subfield code="v">Book Six</subfield>
</datafield>
<datafield tag="520" ind1=" " ind2=" ">
<subfield code="a">Fifteen thousand years after Leto II's death, the remnants of the Bene Gesserit contend with the ruthless leaders of an alien culture to forge a new civilization and preserve the best of the Old Empire.</subfield>
</datafield>
<datafield tag="526" ind1="0" ind2=" ">
<subfield code="a">Accelerated Reader AR</subfield>
<subfield code="b">UG</subfield>
<subfield code="c">5.4</subfield>
<subfield code="d">22</subfield>
<subfield code="z">79162.</subfield>
</datafield>
<datafield tag="586" ind1=" " ind2=" ">
<subfield code="a">Prometheus Award for Best Libertarian SF Novel (preliminary ballot)</subfield>
<subfield code="y">1986</subfield>
</datafield>
<datafield tag="650" ind1=" " ind2="0">
<subfield code="a">Dune (Imaginary place)</subfield>
<subfield code="v">Fiction.</subfield>
<subfield code="9">217871</subfield>
</datafield>
<datafield tag="655" ind1=" " ind2="7">
<subfield code="a">Survival fiction.</subfield>
<subfield code="2">lcgft</subfield>
<subfield code="9">1021</subfield>
</datafield>
<datafield tag="655" ind1=" " ind2="7">
<subfield code="a">Science fiction.</subfield>
<subfield code="2">lcgft</subfield>
<subfield code="9">519</subfield>
</datafield>
<datafield tag="700" ind1="1" ind2=" ">
<subfield code="a">Herbert, Brian</subfield>
<subfield code="e">writer of introduction.</subfield>
<subfield code="9">22739</subfield>
</datafield>
<datafield tag="800" ind1="1" ind2=" ">
<subfield code="a">Herbert, Frank.</subfield>
<subfield code="t">Dune chronicles ;</subfield>
<subfield code="v">bk. 6.</subfield>
<subfield code="9">175318</subfield>
</datafield>
<datafield tag="907" ind1=" " ind2=" ">
<subfield code="a">.b114409079</subfield>
<subfield code="b">08-24-23</subfield>
<subfield code="c">04-11-19</subfield>
</datafield>
<datafield tag="902" ind1=" " ind2=" ">
<subfield code="a">MARCIVE Unico21e 8arc (UT8-8)</subfield>
</datafield>
<datafield tag="902" ind1=" " ind2=" ">
<subfield code="a">MARCIVE</subfield>
</datafield>
<datafield tag="902" ind1=" " ind2=" ">
<subfield code="a">MARCIVE</subfield>
</datafield>
<datafield tag="942" ind1=" " ind2=" ">
<subfield code="c">PBK</subfield>
<subfield code="0">8</subfield>
</datafield>
<datafield tag="998" ind1=" " ind2=" ">
<subfield code="a">46</subfield>
<subfield code="a">46a</subfield>
<subfield code="b">06-04-19</subfield>
<subfield code="c">m</subfield>
<subfield code="d">a</subfield>
<subfield code="e">-</subfield>
<subfield code="f">eng</subfield>
<subfield code="g">nyu</subfield>
<subfield code="h">0</subfield>
<subfield code="i">4</subfield>
</datafield>
<datafield tag="999" ind1=" " ind2=" ">
<subfield code="c">135034</subfield>
<subfield code="d">135034</subfield>
</datafield>
<datafield tag="985" ind1=" " ind2=" ">
<subfield code="a"></subfield>
<subfield code="b">727135</subfield>
</datafield>
<datafield tag="952" ind1=" " ind2=" ">
<subfield code="0">0</subfield>
<subfield code="1">4</subfield>
<subfield code="2">ddc</subfield>
<subfield code="4">0</subfield>
<subfield code="6">PBK_HERBERT</subfield>
<subfield code="7">0</subfield>
<subfield code="8">ADULT</subfield>
<subfield code="9">589309</subfield>
<subfield code="a">ADM</subfield>
<subfield code="b">NOL</subfield>
<subfield code="c">SCIFI</subfield>
<subfield code="d">2019-05-30</subfield>
<subfield code="f">-</subfield>
<subfield code="g">5.99</subfield>
<subfield code="i">.i223869399</subfield>
<subfield code="l">8</subfield>
<subfield code="m">8</subfield>
<subfield code="o">PBK HERBERT</subfield>
<subfield code="p">4005302326</subfield>
<subfield code="r">2023-09-05 00:00:00</subfield>
<subfield code="s">2023-08-09</subfield>
<subfield code="v">5.99</subfield>
<subfield code="w">2023-08-25</subfield>
<subfield code="y">PBK</subfield>
</datafield>
</record>

View File

@ -0,0 +1,95 @@
// File: t/cypress/integration/tools/ManageMarcImport_spec.ts
describe("Breadcrumb tests", () => {
beforeEach(() => {
cy.login();
cy.title().should("eq", "Koha staff interface");
});
it("Breadcrumbs", () => {
cy.visit("/cgi-bin/koha/cataloguing/cataloging-home.pl");
cy.contains("Manage staged records").click();
cy.get("#breadcrumbs").contains("Cataloging");
});
});
describe("loads the manage MARC import page", () => {
beforeEach(() => {
cy.login();
cy.title().should("eq", "Koha staff interface");
});
it("loads the manage MARC import page", () => {
cy.visit("/cgi-bin/koha/tools/manage-marc-import.pl");
cy.contains("Manage staged MARC records").click();
});
it("upload a MARC record", () => {
cy.visit("/cgi-bin/koha/tools/stage-marc-import.pl");
cy.get('input[type="file"]').selectFile(
"t/cypress/fixtures/sample.mrc"
);
cy.get('form[id="uploadfile"]').within(() => {
cy.get('button[id="fileuploadbutton"]').click();
});
//wait after file upload, it can go to quickly here
cy.wait(2000);
//check default values
cy.get('select[name="matcher"] option:selected').should(
"have.value",
""
);
cy.get('select[name="overlay_action"] option:selected').should(
"have.value",
"replace"
);
cy.get('select[name="nomatch_action"] option:selected').should(
"have.value",
"create_new"
);
cy.get('select[name="item_action"] option:selected').should(
"have.value",
"always_add"
);
cy.get('select[name="format"]').select("MARCXML", { force: true });
cy.get("#format").should("have.value", "MARCXML");
//select some new options
cy.get("#matcher").select("3", { force: true });
cy.get("#overlay_action").select("create_new", { force: true });
cy.get("#nomatch_action").select("ignore", { force: true });
cy.get("#item_action").select("ignore", { force: true });
//remove focus
//cy.get('#item_action').blur();
cy.screenshot("after_selection");
// Now verify all values
cy.get("#matcher").should("have.value", "3");
cy.get("#overlay_action").should("have.value", "create_new");
cy.get("#nomatch_action").should("have.value", "ignore");
cy.get("#item_action").should("have.value", "ignore");
cy.screenshot("right_before_submission");
cy.get("#mainformsubmit").click();
cy.get("#job_callback").should("exist");
//wait for View batch link to load with the batch ID
cy.wait(5000);
cy.screenshot("after_waiting");
cy.contains("View batch").click();
cy.wait(2000);
// Now verify all values are retained
cy.get("#new_matcher_id").should("have.value", "3");
cy.get("#overlay_action").should("have.value", "create_new");
cy.get("#nomatch_action").should("have.value", "ignore");
cy.get("#item_action").should("have.value", "ignore");
});
});