Bugzilla – Attachment 192551 Details for
Bug 41768
OPAC pickup location selector doesn't reflect available pickup location if you select a specific item
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41768: update tests
Bug-41768-update-tests.patch (text/plain), 15.44 KB, created by
Arthur Suzuki
on 2026-02-05 21:01:29 UTC
(
hide
)
Description:
Bug 41768: update tests
Filename:
MIME Type:
Creator:
Arthur Suzuki
Created:
2026-02-05 21:01:29 UTC
Size:
15.44 KB
patch
obsolete
>From b354cc79561fab33d2270f9b545aec8df88febec Mon Sep 17 00:00:00 2001 >From: Arthur Suzuki <arthur.suzuki@biblibre.com> >Date: Thu, 5 Feb 2026 19:41:57 +0000 >Subject: [PATCH] Bug 41768: update tests > >Sponsored-by BibLibre >--- > .../Circulation/bookingsModalBasic_spec.ts | 8 ++-- > .../bookingsModalDatePicker_spec.ts | 2 +- > t/db_dependent/api/v1/biblios.t | 41 +++++++---------- > t/db_dependent/api/v1/holds.t | 17 +++---- > t/db_dependent/api/v1/items.t | 44 ++++++++----------- > 5 files changed, 49 insertions(+), 63 deletions(-) > >diff --git a/t/cypress/integration/Circulation/bookingsModalBasic_spec.ts b/t/cypress/integration/Circulation/bookingsModalBasic_spec.ts >index 7000cdc86b5..d44cc14003c 100644 >--- a/t/cypress/integration/Circulation/bookingsModalBasic_spec.ts >+++ b/t/cypress/integration/Circulation/bookingsModalBasic_spec.ts >@@ -170,7 +170,7 @@ describe("Booking Modal Basic Tests", () => { > // Setup API intercepts to wait for real API calls instead of arbitrary timeouts > cy.intercept( > "GET", >- `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*` >+ `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*` > ).as("getPickupLocations"); > cy.intercept("GET", "/api/v1/circulation_rules*").as( > "getCirculationRules" >@@ -240,7 +240,7 @@ describe("Booking Modal Basic Tests", () => { > // Setup API intercepts > cy.intercept( > "GET", >- `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*` >+ `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*` > ).as("getPickupLocations"); > cy.intercept("GET", "/api/v1/circulation_rules*").as( > "getCirculationRules" >@@ -538,7 +538,7 @@ describe("Booking Modal Basic Tests", () => { > // Set up API intercepts > cy.intercept( > "GET", >- `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*` >+ `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*` > ).as("getPickupLocations"); > cy.intercept("GET", "/api/v1/circulation_rules*", { > body: [ >@@ -918,7 +918,7 @@ describe("Booking Modal Basic Tests", () => { > // Setup API intercepts for error testing > cy.intercept( > "GET", >- `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*` >+ `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*` > ).as("getPickupLocations"); > cy.intercept("GET", "/api/v1/circulation_rules*", { > body: [ >diff --git a/t/cypress/integration/Circulation/bookingsModalDatePicker_spec.ts b/t/cypress/integration/Circulation/bookingsModalDatePicker_spec.ts >index cbe71906304..a77055081d5 100644 >--- a/t/cypress/integration/Circulation/bookingsModalDatePicker_spec.ts >+++ b/t/cypress/integration/Circulation/bookingsModalDatePicker_spec.ts >@@ -100,7 +100,7 @@ describe("Booking Modal Date Picker Tests", () => { > // Setup API intercepts > cy.intercept( > "GET", >- `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*` >+ `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*` > ).as("getPickupLocations"); > cy.intercept("GET", "/api/v1/circulation_rules*").as( > "getCirculationRules" >diff --git a/t/db_dependent/api/v1/biblios.t b/t/db_dependent/api/v1/biblios.t >index 0e84d86e031..04bc37eb70a 100755 >--- a/t/db_dependent/api/v1/biblios.t >+++ b/t/db_dependent/api/v1/biblios.t >@@ -479,9 +479,9 @@ subtest 'pickup_locations() tests' => sub { > my $library_3 = > $builder->build_object( { class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } } ); > >- my $library_1_api = $library_1->to_api(); >- my $library_2_api = $library_2->to_api(); >- my $library_3_api = $library_3->to_api(); >+ my $library_1_api = $library_1->to_api( { public => 1 } ); >+ my $library_2_api = $library_2->to_api( { public => 1 } ); >+ my $library_3_api = $library_3->to_api( { public => 1 } ); > > $library_1_api->{needs_override} = Mojo::JSON->false; > $library_2_api->{needs_override} = Mojo::JSON->false; >@@ -500,16 +500,6 @@ subtest 'pickup_locations() tests' => sub { > my $password = 'thePassword123'; > $patron->set_password( { password => $password, skip_validation => 1 } ); > my $userid = $patron->userid; >- $builder->build( >- { >- source => 'UserPermission', >- value => { >- borrowernumber => $patron->borrowernumber, >- module_bit => 6, >- code => 'place_holds', >- }, >- } >- ); > > my $biblio_class = Test::MockModule->new('Koha::Biblio'); > $biblio_class->mock( >@@ -539,11 +529,12 @@ subtest 'pickup_locations() tests' => sub { > > my $biblio = $builder->build_sample_biblio; > >- $t->get_ok( "//$userid:$password@/api/v1/biblios/" . $biblio->id . "/pickup_locations?patron_id=" . $patron->id ) >+ $t->get_ok( >+ "//$userid:$password@/api/v1/public/biblios/" . $biblio->id . "/pickup_locations?patron_id=" . $patron->id ) > ->json_is( [ $library_1_api, $library_2_api ] ); > > # filtering works! >- $t->get_ok( "//$userid:$password@/api/v1/biblios/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/biblios/" > . $biblio->id > . '/pickup_locations?' > . 'patron_id=' >@@ -557,11 +548,11 @@ subtest 'pickup_locations() tests' => sub { > my $library_5 = > $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } } ); > >- my $library_5_api = $library_5->to_api(); >+ my $library_5_api = $library_5->to_api( { public => 1 } ); > $library_5_api->{needs_override} = Mojo::JSON->true; > $library_5_api->{pickup_items} = []; > >- $t->get_ok( "//$userid:$password@/api/v1/biblios/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/biblios/" > . $biblio->id > . "/pickup_locations?" > . "patron_id=" >@@ -575,7 +566,7 @@ subtest 'pickup_locations() tests' => sub { > > t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 ); > >- $t->get_ok( "//$userid:$password@/api/v1/biblios/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/biblios/" > . $biblio->id > . "/pickup_locations?" > . "patron_id=" >@@ -589,7 +580,7 @@ subtest 'pickup_locations() tests' => sub { > ->header_like( 'Link', qr#(_per_page=1.*\&_page=1.*|_page=1.*\&_per_page=1).*>\; rel="first"# ) > ->header_like( 'Link', qr#(_per_page=1.*\&_page=4.*|_page=4.*\&_per_page=1).*>\; rel="last"# ); > >- $t->get_ok( "//$userid:$password@/api/v1/biblios/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/biblios/" > . $biblio->id > . "/pickup_locations?" > . "patron_id=" >@@ -606,7 +597,7 @@ subtest 'pickup_locations() tests' => sub { > > t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 ); > >- $t->get_ok( "//$userid:$password@/api/v1/biblios/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/biblios/" > . $biblio->id > . "/pickup_locations?" > . "patron_id=" >@@ -623,7 +614,7 @@ subtest 'pickup_locations() tests' => sub { > my $deleted_patron_id = $deleted_patron->id; > $deleted_patron->delete; > >- $t->get_ok( "//$userid:$password@/api/v1/biblios/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/biblios/" > . $biblio->id > . "/pickup_locations?" > . "patron_id=" >@@ -631,9 +622,11 @@ subtest 'pickup_locations() tests' => sub { > > $biblio->delete; > >- $t->get_ok( >- "//$userid:$password@/api/v1/biblios/" . $biblio->id . "/pickup_locations?" . "patron_id=" . $patron->id ) >- ->status_is(404)->json_is( '/error' => 'Bibliographic record not found' ); >+ $t->get_ok( "//$userid:$password@/api/v1/public/biblios/" >+ . $biblio->id >+ . "/pickup_locations?" >+ . "patron_id=" >+ . $patron->id )->status_is(404)->json_is( '/error' => 'Bibliographic record not found' ); > > $schema->storage->txn_rollback; > }; >diff --git a/t/db_dependent/api/v1/holds.t b/t/db_dependent/api/v1/holds.t >index e0f2183f53d..3466fd9170e 100755 >--- a/t/db_dependent/api/v1/holds.t >+++ b/t/db_dependent/api/v1/holds.t >@@ -1076,7 +1076,7 @@ subtest 'pickup_locations() tests' => sub { > value => { marcorgcode => $marcorgcode, pickup_location => $is_pickup_location } > } > ); >- my $library_api = $library->to_api; >+ my $library_api = $library->to_api( { public => 1 } ); > $library_api->{needs_override} = Mojo::JSON->false; > push @libraries, $library_api; > } >@@ -1178,14 +1178,14 @@ subtest 'pickup_locations() tests' => sub { > } > ); > >- $t->get_ok( "//$userid:$password@/api/v1/holds/" . $hold_1->id . "/pickup_locations" ) >+ $t->get_ok( "//$userid:$password@/api/v1/public/holds/" . $hold_1->id . "/pickup_locations" ) > ->json_is( [ $libraries[1], $libraries[2] ] ); > >- $t->get_ok( "//$userid:$password@/api/v1/holds/" . $hold_2->id . "/pickup_locations" ) >+ $t->get_ok( "//$userid:$password@/api/v1/public/holds/" . $hold_2->id . "/pickup_locations" ) > ->json_is( [ $libraries[0], $libraries[1] ] ); > > # filtering works! >- $t->get_ok( "//$userid:$password@/api/v1/holds/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/holds/" > . $hold_2->id > . '/pickup_locations?q={"marc_org_code": { "-like": "A%" }}' )->json_is( [ $libraries[0] ] ); > >@@ -1197,13 +1197,14 @@ subtest 'pickup_locations() tests' => sub { > $libraries[1]->{needs_override} = Mojo::JSON->false; > $libraries[2]->{needs_override} = Mojo::JSON->false; > >- $t->get_ok( "//$userid:$password@/api/v1/holds/" . $hold_1->id . "/pickup_locations?_order_by=marc_org_code" ) >+ $t->get_ok( >+ "//$userid:$password@/api/v1/public/holds/" . $hold_1->id . "/pickup_locations?_order_by=marc_org_code" ) > ->json_is( [ @libraries[ 0 .. 19 ] ] ); > > # Library "Z" is not listed >- $t->get_ok( >- "//$userid:$password@/api/v1/holds/" . $hold_1->id . "/pickup_locations?_order_by=marc_org_code&_page=2" ) >- ->json_is( [ @libraries[ 20 .. 24 ] ] ); >+ $t->get_ok( "//$userid:$password@/api/v1/public/holds/" >+ . $hold_1->id >+ . "/pickup_locations?_order_by=marc_org_code&_page=2" )->json_is( [ @libraries[ 20 .. 24 ] ] ); > > $schema->storage->txn_rollback; > }; >diff --git a/t/db_dependent/api/v1/items.t b/t/db_dependent/api/v1/items.t >index 16975e74a28..da3f43e6ae0 100755 >--- a/t/db_dependent/api/v1/items.t >+++ b/t/db_dependent/api/v1/items.t >@@ -451,9 +451,9 @@ subtest 'pickup_locations() tests' => sub { > my $library_3 = > $builder->build_object( { class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } } ); > >- my $library_1_api = $library_1->to_api(); >- my $library_2_api = $library_2->to_api(); >- my $library_3_api = $library_3->to_api(); >+ my $library_1_api = $library_1->to_api( { public => 1 } ); >+ my $library_2_api = $library_2->to_api( { public => 1 } ); >+ my $library_3_api = $library_3->to_api( { public => 1 } ); > > $library_1_api->{needs_override} = Mojo::JSON->false; > $library_2_api->{needs_override} = Mojo::JSON->false; >@@ -468,18 +468,7 @@ subtest 'pickup_locations() tests' => sub { > my $password = 'thePassword123'; > $patron->set_password( { password => $password, skip_validation => 1 } ); > my $userid = $patron->userid; >- $builder->build( >- { >- source => 'UserPermission', >- value => { >- borrowernumber => $patron->borrowernumber, >- module_bit => 6, >- code => 'place_holds', >- }, >- } >- ); >- >- my $item = $builder->build_sample_item(); >+ my $item = $builder->build_sample_item(); > > my $item_class = Test::MockModule->new('Koha::Item'); > $item_class->mock( >@@ -507,11 +496,11 @@ subtest 'pickup_locations() tests' => sub { > } > ); > >- $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->id . "/pickup_locations?patron_id=" . $patron->id ) >+ $t->get_ok( "//$userid:$password@/api/v1/public/items/" . $item->id . "/pickup_locations?patron_id=" . $patron->id ) > ->json_is( [ $library_1_api, $library_2_api ] ); > > # filtering works! >- $t->get_ok( "//$userid:$password@/api/v1/items/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/items/" > . $item->id > . '/pickup_locations?' > . 'patron_id=' >@@ -525,10 +514,10 @@ subtest 'pickup_locations() tests' => sub { > my $library_5 = > $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } } ); > >- my $library_5_api = $library_5->to_api(); >+ my $library_5_api = $library_5->to_api( { public => 1 } ); > $library_5_api->{needs_override} = Mojo::JSON->true; > >- $t->get_ok( "//$userid:$password@/api/v1/items/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/items/" > . $item->id > . "/pickup_locations?" > . "patron_id=" >@@ -542,7 +531,7 @@ subtest 'pickup_locations() tests' => sub { > > t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 ); > >- $t->get_ok( "//$userid:$password@/api/v1/items/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/items/" > . $item->id > . "/pickup_locations?" > . "patron_id=" >@@ -556,7 +545,7 @@ subtest 'pickup_locations() tests' => sub { > ->header_like( 'Link', qr#(_per_page=1.*\&_page=1.*|_page=1.*\&_per_page=1).*>\; rel="first"# ) > ->header_like( 'Link', qr#(_per_page=1.*\&_page=4.*|_page=4.*\&_per_page=1).*>\; rel="last"# ); > >- $t->get_ok( "//$userid:$password@/api/v1/items/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/items/" > . $item->id > . "/pickup_locations?" > . "patron_id=" >@@ -573,7 +562,7 @@ subtest 'pickup_locations() tests' => sub { > > t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 ); > >- $t->get_ok( "//$userid:$password@/api/v1/items/" >+ $t->get_ok( "//$userid:$password@/api/v1/public/items/" > . $item->id > . "/pickup_locations?" > . "patron_id=" >@@ -590,13 +579,16 @@ subtest 'pickup_locations() tests' => sub { > my $deleted_patron_id = $deleted_patron->id; > $deleted_patron->delete; > >- $t->get_ok( >- "//$userid:$password@/api/v1/items/" . $item->id . "/pickup_locations?" . "patron_id=" . $deleted_patron_id ) >- ->status_is(400)->json_is( '/error' => 'Patron not found' ); >+ $t->get_ok( "//$userid:$password@/api/v1/public/items/" >+ . $item->id >+ . "/pickup_locations?" >+ . "patron_id=" >+ . $deleted_patron_id )->status_is(400)->json_is( '/error' => 'Patron not found' ); > > $item->delete; > >- $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->id . "/pickup_locations?" . "patron_id=" . $patron->id ) >+ $t->get_ok( >+ "//$userid:$password@/api/v1/public/items/" . $item->id . "/pickup_locations?" . "patron_id=" . $patron->id ) > ->status_is(404)->json_is( '/error' => 'Item not found' ); > > $schema->storage->txn_rollback; >-- >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 41768
:
192461
|
192549
|
192550
| 192551