View | Details | Raw Unified | Return to bug 27894
Collapse All | Expand All

(-)a/t/db_dependent/api/v1/holds.t (-8 / +35 lines)
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
- 

Return to bug 27894