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

(-)a/t/cypress/integration/Circulation/bookingsModalBasic_spec.ts (-4 / +4 lines)
Lines 170-176 describe("Booking Modal Basic Tests", () => { Link Here
170
        // Setup API intercepts to wait for real API calls instead of arbitrary timeouts
170
        // Setup API intercepts to wait for real API calls instead of arbitrary timeouts
171
        cy.intercept(
171
        cy.intercept(
172
            "GET",
172
            "GET",
173
            `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*`
173
            `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*`
174
        ).as("getPickupLocations");
174
        ).as("getPickupLocations");
175
        cy.intercept("GET", "/api/v1/circulation_rules*").as(
175
        cy.intercept("GET", "/api/v1/circulation_rules*").as(
176
            "getCirculationRules"
176
            "getCirculationRules"
Lines 240-246 describe("Booking Modal Basic Tests", () => { Link Here
240
        // Setup API intercepts
240
        // Setup API intercepts
241
        cy.intercept(
241
        cy.intercept(
242
            "GET",
242
            "GET",
243
            `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*`
243
            `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*`
244
        ).as("getPickupLocations");
244
        ).as("getPickupLocations");
245
        cy.intercept("GET", "/api/v1/circulation_rules*").as(
245
        cy.intercept("GET", "/api/v1/circulation_rules*").as(
246
            "getCirculationRules"
246
            "getCirculationRules"
Lines 538-544 describe("Booking Modal Basic Tests", () => { Link Here
538
        // Set up API intercepts
538
        // Set up API intercepts
539
        cy.intercept(
539
        cy.intercept(
540
            "GET",
540
            "GET",
541
            `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*`
541
            `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*`
542
        ).as("getPickupLocations");
542
        ).as("getPickupLocations");
543
        cy.intercept("GET", "/api/v1/circulation_rules*", {
543
        cy.intercept("GET", "/api/v1/circulation_rules*", {
544
            body: [
544
            body: [
Lines 918-924 describe("Booking Modal Basic Tests", () => { Link Here
918
        // Setup API intercepts for error testing
918
        // Setup API intercepts for error testing
919
        cy.intercept(
919
        cy.intercept(
920
            "GET",
920
            "GET",
921
            `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*`
921
            `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*`
922
        ).as("getPickupLocations");
922
        ).as("getPickupLocations");
923
        cy.intercept("GET", "/api/v1/circulation_rules*", {
923
        cy.intercept("GET", "/api/v1/circulation_rules*", {
924
            body: [
924
            body: [
(-)a/t/cypress/integration/Circulation/bookingsModalDatePicker_spec.ts (-1 / +1 lines)
Lines 100-106 describe("Booking Modal Date Picker Tests", () => { Link Here
100
        // Setup API intercepts
100
        // Setup API intercepts
101
        cy.intercept(
101
        cy.intercept(
102
            "GET",
102
            "GET",
103
            `/api/v1/biblios/${testData.biblio.biblio_id}/pickup_locations*`
103
            `/api/v1/public/biblios/${testData.biblio.biblio_id}/pickup_locations*`
104
        ).as("getPickupLocations");
104
        ).as("getPickupLocations");
105
        cy.intercept("GET", "/api/v1/circulation_rules*").as(
105
        cy.intercept("GET", "/api/v1/circulation_rules*").as(
106
            "getCirculationRules"
106
            "getCirculationRules"
(-)a/t/db_dependent/api/v1/biblios.t (-24 / +17 lines)
Lines 479-487 subtest 'pickup_locations() tests' => sub { Link Here
479
    my $library_3 =
479
    my $library_3 =
480
        $builder->build_object( { class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } } );
480
        $builder->build_object( { class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } } );
481
481
482
    my $library_1_api = $library_1->to_api();
482
    my $library_1_api = $library_1->to_api( { public => 1 } );
483
    my $library_2_api = $library_2->to_api();
483
    my $library_2_api = $library_2->to_api( { public => 1 } );
484
    my $library_3_api = $library_3->to_api();
484
    my $library_3_api = $library_3->to_api( { public => 1 } );
485
485
486
    $library_1_api->{needs_override} = Mojo::JSON->false;
486
    $library_1_api->{needs_override} = Mojo::JSON->false;
487
    $library_2_api->{needs_override} = Mojo::JSON->false;
487
    $library_2_api->{needs_override} = Mojo::JSON->false;
Lines 500-515 subtest 'pickup_locations() tests' => sub { Link Here
500
    my $password = 'thePassword123';
500
    my $password = 'thePassword123';
501
    $patron->set_password( { password => $password, skip_validation => 1 } );
501
    $patron->set_password( { password => $password, skip_validation => 1 } );
502
    my $userid = $patron->userid;
502
    my $userid = $patron->userid;
503
    $builder->build(
504
        {
505
            source => 'UserPermission',
506
            value  => {
507
                borrowernumber => $patron->borrowernumber,
508
                module_bit     => 6,
509
                code           => 'place_holds',
510
            },
511
        }
512
    );
513
503
514
    my $biblio_class = Test::MockModule->new('Koha::Biblio');
504
    my $biblio_class = Test::MockModule->new('Koha::Biblio');
515
    $biblio_class->mock(
505
    $biblio_class->mock(
Lines 539-549 subtest 'pickup_locations() tests' => sub { Link Here
539
529
540
    my $biblio = $builder->build_sample_biblio;
530
    my $biblio = $builder->build_sample_biblio;
541
531
542
    $t->get_ok( "//$userid:$password@/api/v1/biblios/" . $biblio->id . "/pickup_locations?patron_id=" . $patron->id )
532
    $t->get_ok(
533
        "//$userid:$password@/api/v1/public/biblios/" . $biblio->id . "/pickup_locations?patron_id=" . $patron->id )
543
        ->json_is( [ $library_1_api, $library_2_api ] );
534
        ->json_is( [ $library_1_api, $library_2_api ] );
544
535
545
    # filtering works!
536
    # filtering works!
546
    $t->get_ok( "//$userid:$password@/api/v1/biblios/"
537
    $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
547
            . $biblio->id
538
            . $biblio->id
548
            . '/pickup_locations?'
539
            . '/pickup_locations?'
549
            . 'patron_id='
540
            . 'patron_id='
Lines 557-567 subtest 'pickup_locations() tests' => sub { Link Here
557
    my $library_5 =
548
    my $library_5 =
558
        $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } } );
549
        $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } } );
559
550
560
    my $library_5_api = $library_5->to_api();
551
    my $library_5_api = $library_5->to_api( { public => 1 } );
561
    $library_5_api->{needs_override} = Mojo::JSON->true;
552
    $library_5_api->{needs_override} = Mojo::JSON->true;
562
    $library_5_api->{pickup_items}   = [];
553
    $library_5_api->{pickup_items}   = [];
563
554
564
    $t->get_ok( "//$userid:$password@/api/v1/biblios/"
555
    $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
565
            . $biblio->id
556
            . $biblio->id
566
            . "/pickup_locations?"
557
            . "/pickup_locations?"
567
            . "patron_id="
558
            . "patron_id="
Lines 575-581 subtest 'pickup_locations() tests' => sub { Link Here
575
566
576
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 );
567
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 );
577
568
578
        $t->get_ok( "//$userid:$password@/api/v1/biblios/"
569
        $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
579
                . $biblio->id
570
                . $biblio->id
580
                . "/pickup_locations?"
571
                . "/pickup_locations?"
581
                . "patron_id="
572
                . "patron_id="
Lines 589-595 subtest 'pickup_locations() tests' => sub { Link Here
589
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=1.*|_page=1.*\&_per_page=1).*>\; rel="first"# )
580
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=1.*|_page=1.*\&_per_page=1).*>\; rel="first"# )
590
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=4.*|_page=4.*\&_per_page=1).*>\; rel="last"# );
581
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=4.*|_page=4.*\&_per_page=1).*>\; rel="last"# );
591
582
592
        $t->get_ok( "//$userid:$password@/api/v1/biblios/"
583
        $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
593
                . $biblio->id
584
                . $biblio->id
594
                . "/pickup_locations?"
585
                . "/pickup_locations?"
595
                . "patron_id="
586
                . "patron_id="
Lines 606-612 subtest 'pickup_locations() tests' => sub { Link Here
606
597
607
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 );
598
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 );
608
599
609
        $t->get_ok( "//$userid:$password@/api/v1/biblios/"
600
        $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
610
                . $biblio->id
601
                . $biblio->id
611
                . "/pickup_locations?"
602
                . "/pickup_locations?"
612
                . "patron_id="
603
                . "patron_id="
Lines 623-629 subtest 'pickup_locations() tests' => sub { Link Here
623
    my $deleted_patron_id = $deleted_patron->id;
614
    my $deleted_patron_id = $deleted_patron->id;
624
    $deleted_patron->delete;
615
    $deleted_patron->delete;
625
616
626
    $t->get_ok( "//$userid:$password@/api/v1/biblios/"
617
    $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
627
            . $biblio->id
618
            . $biblio->id
628
            . "/pickup_locations?"
619
            . "/pickup_locations?"
629
            . "patron_id="
620
            . "patron_id="
Lines 631-639 subtest 'pickup_locations() tests' => sub { Link Here
631
622
632
    $biblio->delete;
623
    $biblio->delete;
633
624
634
    $t->get_ok(
625
    $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
635
        "//$userid:$password@/api/v1/biblios/" . $biblio->id . "/pickup_locations?" . "patron_id=" . $patron->id )
626
            . $biblio->id
636
        ->status_is(404)->json_is( '/error' => 'Bibliographic record not found' );
627
            . "/pickup_locations?"
628
            . "patron_id="
629
            . $patron->id )->status_is(404)->json_is( '/error' => 'Bibliographic record not found' );
637
630
638
    $schema->storage->txn_rollback;
631
    $schema->storage->txn_rollback;
639
};
632
};
(-)a/t/db_dependent/api/v1/holds.t (-8 / +9 lines)
Lines 1076-1082 subtest 'pickup_locations() tests' => sub { Link Here
1076
                value => { marcorgcode => $marcorgcode, pickup_location => $is_pickup_location }
1076
                value => { marcorgcode => $marcorgcode, pickup_location => $is_pickup_location }
1077
            }
1077
            }
1078
        );
1078
        );
1079
        my $library_api = $library->to_api;
1079
        my $library_api = $library->to_api( { public => 1 } );
1080
        $library_api->{needs_override} = Mojo::JSON->false;
1080
        $library_api->{needs_override} = Mojo::JSON->false;
1081
        push @libraries, $library_api;
1081
        push @libraries, $library_api;
1082
    }
1082
    }
Lines 1178-1191 subtest 'pickup_locations() tests' => sub { Link Here
1178
        }
1178
        }
1179
    );
1179
    );
1180
1180
1181
    $t->get_ok( "//$userid:$password@/api/v1/holds/" . $hold_1->id . "/pickup_locations" )
1181
    $t->get_ok( "//$userid:$password@/api/v1/public/holds/" . $hold_1->id . "/pickup_locations" )
1182
        ->json_is( [ $libraries[1], $libraries[2] ] );
1182
        ->json_is( [ $libraries[1], $libraries[2] ] );
1183
1183
1184
    $t->get_ok( "//$userid:$password@/api/v1/holds/" . $hold_2->id . "/pickup_locations" )
1184
    $t->get_ok( "//$userid:$password@/api/v1/public/holds/" . $hold_2->id . "/pickup_locations" )
1185
        ->json_is( [ $libraries[0], $libraries[1] ] );
1185
        ->json_is( [ $libraries[0], $libraries[1] ] );
1186
1186
1187
    # filtering works!
1187
    # filtering works!
1188
    $t->get_ok( "//$userid:$password@/api/v1/holds/"
1188
    $t->get_ok( "//$userid:$password@/api/v1/public/holds/"
1189
            . $hold_2->id
1189
            . $hold_2->id
1190
            . '/pickup_locations?q={"marc_org_code": { "-like": "A%" }}' )->json_is( [ $libraries[0] ] );
1190
            . '/pickup_locations?q={"marc_org_code": { "-like": "A%" }}' )->json_is( [ $libraries[0] ] );
1191
1191
Lines 1197-1209 subtest 'pickup_locations() tests' => sub { Link Here
1197
    $libraries[1]->{needs_override} = Mojo::JSON->false;
1197
    $libraries[1]->{needs_override} = Mojo::JSON->false;
1198
    $libraries[2]->{needs_override} = Mojo::JSON->false;
1198
    $libraries[2]->{needs_override} = Mojo::JSON->false;
1199
1199
1200
    $t->get_ok( "//$userid:$password@/api/v1/holds/" . $hold_1->id . "/pickup_locations?_order_by=marc_org_code" )
1200
    $t->get_ok(
1201
        "//$userid:$password@/api/v1/public/holds/" . $hold_1->id . "/pickup_locations?_order_by=marc_org_code" )
1201
        ->json_is( [ @libraries[ 0 .. 19 ] ] );
1202
        ->json_is( [ @libraries[ 0 .. 19 ] ] );
1202
1203
1203
    # Library "Z" is not listed
1204
    # Library "Z" is not listed
1204
    $t->get_ok(
1205
    $t->get_ok( "//$userid:$password@/api/v1/public/holds/"
1205
        "//$userid:$password@/api/v1/holds/" . $hold_1->id . "/pickup_locations?_order_by=marc_org_code&_page=2" )
1206
            . $hold_1->id
1206
        ->json_is( [ @libraries[ 20 .. 24 ] ] );
1207
            . "/pickup_locations?_order_by=marc_org_code&_page=2" )->json_is( [ @libraries[ 20 .. 24 ] ] );
1207
1208
1208
    $schema->storage->txn_rollback;
1209
    $schema->storage->txn_rollback;
1209
};
1210
};
(-)a/t/db_dependent/api/v1/items.t (-27 / +18 lines)
Lines 451-459 subtest 'pickup_locations() tests' => sub { Link Here
451
    my $library_3 =
451
    my $library_3 =
452
        $builder->build_object( { class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } } );
452
        $builder->build_object( { class => 'Koha::Libraries', value => { marcorgcode => 'C', pickup_location => 1 } } );
453
453
454
    my $library_1_api = $library_1->to_api();
454
    my $library_1_api = $library_1->to_api( { public => 1 } );
455
    my $library_2_api = $library_2->to_api();
455
    my $library_2_api = $library_2->to_api( { public => 1 } );
456
    my $library_3_api = $library_3->to_api();
456
    my $library_3_api = $library_3->to_api( { public => 1 } );
457
457
458
    $library_1_api->{needs_override} = Mojo::JSON->false;
458
    $library_1_api->{needs_override} = Mojo::JSON->false;
459
    $library_2_api->{needs_override} = Mojo::JSON->false;
459
    $library_2_api->{needs_override} = Mojo::JSON->false;
Lines 468-485 subtest 'pickup_locations() tests' => sub { Link Here
468
    my $password = 'thePassword123';
468
    my $password = 'thePassword123';
469
    $patron->set_password( { password => $password, skip_validation => 1 } );
469
    $patron->set_password( { password => $password, skip_validation => 1 } );
470
    my $userid = $patron->userid;
470
    my $userid = $patron->userid;
471
    $builder->build(
471
    my $item   = $builder->build_sample_item();
472
        {
473
            source => 'UserPermission',
474
            value  => {
475
                borrowernumber => $patron->borrowernumber,
476
                module_bit     => 6,
477
                code           => 'place_holds',
478
            },
479
        }
480
    );
481
482
    my $item = $builder->build_sample_item();
483
472
484
    my $item_class = Test::MockModule->new('Koha::Item');
473
    my $item_class = Test::MockModule->new('Koha::Item');
485
    $item_class->mock(
474
    $item_class->mock(
Lines 507-517 subtest 'pickup_locations() tests' => sub { Link Here
507
        }
496
        }
508
    );
497
    );
509
498
510
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->id . "/pickup_locations?patron_id=" . $patron->id )
499
    $t->get_ok( "//$userid:$password@/api/v1/public/items/" . $item->id . "/pickup_locations?patron_id=" . $patron->id )
511
        ->json_is( [ $library_1_api, $library_2_api ] );
500
        ->json_is( [ $library_1_api, $library_2_api ] );
512
501
513
    # filtering works!
502
    # filtering works!
514
    $t->get_ok( "//$userid:$password@/api/v1/items/"
503
    $t->get_ok( "//$userid:$password@/api/v1/public/items/"
515
            . $item->id
504
            . $item->id
516
            . '/pickup_locations?'
505
            . '/pickup_locations?'
517
            . 'patron_id='
506
            . 'patron_id='
Lines 525-534 subtest 'pickup_locations() tests' => sub { Link Here
525
    my $library_5 =
514
    my $library_5 =
526
        $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } } );
515
        $builder->build_object( { class => 'Koha::Libraries', value => { pickup_location => 1, marcorgcode => 'Y' } } );
527
516
528
    my $library_5_api = $library_5->to_api();
517
    my $library_5_api = $library_5->to_api( { public => 1 } );
529
    $library_5_api->{needs_override} = Mojo::JSON->true;
518
    $library_5_api->{needs_override} = Mojo::JSON->true;
530
519
531
    $t->get_ok( "//$userid:$password@/api/v1/items/"
520
    $t->get_ok( "//$userid:$password@/api/v1/public/items/"
532
            . $item->id
521
            . $item->id
533
            . "/pickup_locations?"
522
            . "/pickup_locations?"
534
            . "patron_id="
523
            . "patron_id="
Lines 542-548 subtest 'pickup_locations() tests' => sub { Link Here
542
531
543
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 );
532
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 1 );
544
533
545
        $t->get_ok( "//$userid:$password@/api/v1/items/"
534
        $t->get_ok( "//$userid:$password@/api/v1/public/items/"
546
                . $item->id
535
                . $item->id
547
                . "/pickup_locations?"
536
                . "/pickup_locations?"
548
                . "patron_id="
537
                . "patron_id="
Lines 556-562 subtest 'pickup_locations() tests' => sub { Link Here
556
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=1.*|_page=1.*\&_per_page=1).*>\; rel="first"# )
545
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=1.*|_page=1.*\&_per_page=1).*>\; rel="first"# )
557
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=4.*|_page=4.*\&_per_page=1).*>\; rel="last"# );
546
            ->header_like( 'Link', qr#(_per_page=1.*\&_page=4.*|_page=4.*\&_per_page=1).*>\; rel="last"# );
558
547
559
        $t->get_ok( "//$userid:$password@/api/v1/items/"
548
        $t->get_ok( "//$userid:$password@/api/v1/public/items/"
560
                . $item->id
549
                . $item->id
561
                . "/pickup_locations?"
550
                . "/pickup_locations?"
562
                . "patron_id="
551
                . "patron_id="
Lines 573-579 subtest 'pickup_locations() tests' => sub { Link Here
573
562
574
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 );
563
        t::lib::Mocks::mock_preference( 'AllowHoldPolicyOverride', 0 );
575
564
576
        $t->get_ok( "//$userid:$password@/api/v1/items/"
565
        $t->get_ok( "//$userid:$password@/api/v1/public/items/"
577
                . $item->id
566
                . $item->id
578
                . "/pickup_locations?"
567
                . "/pickup_locations?"
579
                . "patron_id="
568
                . "patron_id="
Lines 590-602 subtest 'pickup_locations() tests' => sub { Link Here
590
    my $deleted_patron_id = $deleted_patron->id;
579
    my $deleted_patron_id = $deleted_patron->id;
591
    $deleted_patron->delete;
580
    $deleted_patron->delete;
592
581
593
    $t->get_ok(
582
    $t->get_ok( "//$userid:$password@/api/v1/public/items/"
594
        "//$userid:$password@/api/v1/items/" . $item->id . "/pickup_locations?" . "patron_id=" . $deleted_patron_id )
583
            . $item->id
595
        ->status_is(400)->json_is( '/error' => 'Patron not found' );
584
            . "/pickup_locations?"
585
            . "patron_id="
586
            . $deleted_patron_id )->status_is(400)->json_is( '/error' => 'Patron not found' );
596
587
597
    $item->delete;
588
    $item->delete;
598
589
599
    $t->get_ok( "//$userid:$password@/api/v1/items/" . $item->id . "/pickup_locations?" . "patron_id=" . $patron->id )
590
    $t->get_ok(
591
        "//$userid:$password@/api/v1/public/items/" . $item->id . "/pickup_locations?" . "patron_id=" . $patron->id )
600
        ->status_is(404)->json_is( '/error' => 'Item not found' );
592
        ->status_is(404)->json_is( '/error' => 'Item not found' );
601
593
602
    $schema->storage->txn_rollback;
594
    $schema->storage->txn_rollback;
603
- 

Return to bug 41768