|
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 |
- |
|
|