Lines 687-699
subtest 'add() tests (maxreserves behaviour)' => sub {
Link Here
|
687 |
|
687 |
|
688 |
subtest 'pickup_locations() tests' => sub { |
688 |
subtest 'pickup_locations() tests' => sub { |
689 |
|
689 |
|
690 |
plan tests => 9; |
690 |
plan tests => 12; |
691 |
|
691 |
|
692 |
$schema->storage->txn_begin; |
692 |
$schema->storage->txn_begin; |
693 |
|
693 |
|
694 |
my $library_1 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'A' } }); |
694 |
t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 ); |
695 |
my $library_2 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'B' } }); |
695 |
|
696 |
my $library_3 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'C' } }); |
696 |
# Small trick to ease testing |
|
|
697 |
Koha::Libraries->search->update({ pickup_location => 0 }); |
698 |
|
699 |
my $library_1 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'A', pickup_location => 1 } }); |
700 |
my $library_2 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'B', pickup_location => 1 } }); |
701 |
my $library_3 = $builder->build_object({ class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } }); |
702 |
|
703 |
my $library_1_api = $library_1->to_api(); |
704 |
my $library_2_api = $library_2->to_api(); |
705 |
my $library_3_api = $library_3->to_api(); |
706 |
|
707 |
$library_1_api->{needs_override} = Mojo::JSON->false; |
708 |
$library_2_api->{needs_override} = Mojo::JSON->false; |
709 |
$library_3_api->{needs_override} = Mojo::JSON->false; |
697 |
|
710 |
|
698 |
my $patron = $builder->build_object( |
711 |
my $patron = $builder->build_object( |
699 |
{ |
712 |
{ |
Lines 790-808
subtest 'pickup_locations() tests' => sub {
Link Here
|
790 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
803 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
791 |
. $hold_1->id |
804 |
. $hold_1->id |
792 |
. "/pickup_locations" ) |
805 |
. "/pickup_locations" ) |
793 |
->json_is( [ $library_2->to_api, $library_3->to_api ] ); |
806 |
->json_is( [ $library_2_api, $library_3_api ] ); |
794 |
|
807 |
|
795 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
808 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
796 |
. $hold_2->id |
809 |
. $hold_2->id |
797 |
. "/pickup_locations" ) |
810 |
. "/pickup_locations" ) |
798 |
->json_is( [ $library_1->to_api, $library_2->to_api ] ); |
811 |
->json_is( [ $library_1_api, $library_2_api ] ); |
799 |
|
812 |
|
800 |
# filtering works! |
813 |
# filtering works! |
801 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
814 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
802 |
. $hold_2->id |
815 |
. $hold_2->id |
803 |
. '/pickup_locations?q={"marc_org_code": { "-like": "A%" }}' ) |
816 |
. '/pickup_locations?q={"marc_org_code": { "-like": "A%" }}' ) |
804 |
->json_is( [ $library_1->to_api ] ); |
817 |
->json_is( [ $library_1_api ] ); |
|
|
818 |
|
819 |
t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 ); |
820 |
|
821 |
my $library_4 = $builder->build_object({ class => 'Koha::Libraries', value => { pickup_location => 0, marcorgcode => 'X' } }); |
822 |
my $library_5 = $builder->build_object({ class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } }); |
823 |
|
824 |
my $library_5_api = $library_5->to_api(); |
825 |
$library_5_api->{needs_override} = Mojo::JSON->true; |
805 |
|
826 |
|
|
|
827 |
# bibli-level mock doesn't include library_1 as valid pickup location |
828 |
$library_1_api->{needs_override} = Mojo::JSON->true; |
829 |
|
830 |
$t->get_ok( "//$userid:$password@/api/v1/holds/" |
831 |
. $hold_1->id |
832 |
. "/pickup_locations?_order_by=marc_org_code" ) |
833 |
->json_is( [ $library_1_api, $library_2_api, $library_3_api, $library_5_api ] ); |
806 |
|
834 |
|
807 |
$schema->storage->txn_rollback; |
835 |
$schema->storage->txn_rollback; |
808 |
}; |
836 |
}; |
809 |
- |
|
|