Lines 738-750
subtest 'add() tests (maxreserves behaviour)' => sub {
Link Here
|
738 |
|
738 |
|
739 |
subtest 'pickup_locations() tests' => sub { |
739 |
subtest 'pickup_locations() tests' => sub { |
740 |
|
740 |
|
741 |
plan tests => 9; |
741 |
plan tests => 12; |
742 |
|
742 |
|
743 |
$schema->storage->txn_begin; |
743 |
$schema->storage->txn_begin; |
744 |
|
744 |
|
745 |
my $library_1 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'A' } }); |
745 |
t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 ); |
746 |
my $library_2 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'B' } }); |
746 |
|
747 |
my $library_3 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'C' } }); |
747 |
# Small trick to ease testing |
|
|
748 |
Koha::Libraries->search->update({ pickup_location => 0 }); |
749 |
|
750 |
my $library_1 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'A', pickup_location => 1 } }); |
751 |
my $library_2 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'B', pickup_location => 1 } }); |
752 |
my $library_3 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } }); |
753 |
|
754 |
my $library_1_api = $library_1->to_api(); |
755 |
my $library_2_api = $library_2->to_api(); |
756 |
my $library_3_api = $library_3->to_api(); |
757 |
|
758 |
$library_1_api->{needs_override} = Mojo::JSON->false; |
759 |
$library_2_api->{needs_override} = Mojo::JSON->false; |
760 |
$library_3_api->{needs_override} = Mojo::JSON->false; |
748 |
|
761 |
|
749 |
my $patron = $builder->build_object( |
762 |
my $patron = $builder->build_object( |
750 |
{ |
763 |
{ |
Lines 841-859
subtest 'pickup_locations() tests' => sub {
Link Here
|
841 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
854 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
842 |
. $hold_1->id |
855 |
. $hold_1->id |
843 |
. "/pickup_locations" ) |
856 |
. "/pickup_locations" ) |
844 |
->json_is( [ $library_2->to_api, $library_3->to_api ] ); |
857 |
->json_is( [ $library_2_api, $library_3_api ] ); |
845 |
|
858 |
|
846 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
859 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
847 |
. $hold_2->id |
860 |
. $hold_2->id |
848 |
. "/pickup_locations" ) |
861 |
. "/pickup_locations" ) |
849 |
->json_is( [ $library_1->to_api, $library_2->to_api ] ); |
862 |
->json_is( [ $library_1_api, $library_2_api ] ); |
850 |
|
863 |
|
851 |
# filtering works! |
864 |
# filtering works! |
852 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
865 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
853 |
. $hold_2->id |
866 |
. $hold_2->id |
854 |
. '/pickup_locations?q={"marc_org_code": { "-like": "A%" }}' ) |
867 |
. '/pickup_locations?q={"marc_org_code": { "-like": "A%" }}' ) |
855 |
->json_is( [ $library_1->to_api ] ); |
868 |
->json_is( [ $library_1_api ] ); |
|
|
869 |
|
870 |
t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 ); |
871 |
|
872 |
my $library_4 = $builder->build_object({ class => 'Koha::Libraries', value => { pickup_location => 0, marcorgcode => 'X' } }); |
873 |
my $library_5 = $builder->build_object({ class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } }); |
874 |
|
875 |
my $library_5_api = $library_5->to_api(); |
876 |
$library_5_api->{needs_override} = Mojo::JSON->true; |
856 |
|
877 |
|
|
|
878 |
# bibli-level mock doesn't include library_1 as valid pickup location |
879 |
$library_1_api->{needs_override} = Mojo::JSON->true; |
880 |
|
881 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
882 |
. $hold_1->id |
883 |
. "/pickup_locations?_order_by=marc_org_code" ) |
884 |
->json_is( [ $library_1_api, $library_2_api, $library_3_api, $library_5_api ] ); |
857 |
|
885 |
|
858 |
$schema->storage->txn_rollback; |
886 |
$schema->storage->txn_rollback; |
859 |
}; |
887 |
}; |
860 |
- |
|
|