From b354cc79561fab33d2270f9b545aec8df88febec Mon Sep 17 00:00:00 2001 From: Arthur Suzuki 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