|
Lines 662-670
subtest 'delete() tests' => sub {
Link Here
|
| 662 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
662 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 663 |
|
663 |
|
| 664 |
t::lib::Mocks::mock_preference('AnonymousPatron', $patron->borrowernumber); |
664 |
t::lib::Mocks::mock_preference('AnonymousPatron', $patron->borrowernumber); |
| 665 |
$t->delete_ok("//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber) |
665 |
$t->delete_ok( "//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber ) |
| 666 |
->status_is(403, 'Anonymous patron cannot be deleted') |
666 |
->status_is( 409, 'Anonymous patron cannot be deleted' ) |
| 667 |
->json_is( { error => 'Anonymous patron cannot be deleted' } ); |
667 |
->json_is( |
|
|
668 |
{ |
| 669 |
error => 'Anonymous patron cannot be deleted', |
| 670 |
error_code => 'is_anonymous_patron' |
| 671 |
} |
| 672 |
); |
| 668 |
t::lib::Mocks::mock_preference('AnonymousPatron', 0); # back to default |
673 |
t::lib::Mocks::mock_preference('AnonymousPatron', 0); # back to default |
| 669 |
|
674 |
|
| 670 |
t::lib::Mocks::mock_preference( 'borrowerRelationship', 'parent' ); |
675 |
t::lib::Mocks::mock_preference( 'borrowerRelationship', 'parent' ); |
|
Lines 682-702
subtest 'delete() tests' => sub {
Link Here
|
| 682 |
|
687 |
|
| 683 |
$t->delete_ok("//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber) |
688 |
$t->delete_ok("//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber) |
| 684 |
->status_is(409, 'Patron with checkouts cannot be deleted') |
689 |
->status_is(409, 'Patron with checkouts cannot be deleted') |
| 685 |
->json_is( { error => 'Pending checkouts prevent deletion' } ); |
690 |
->json_is( |
|
|
691 |
{ |
| 692 |
error => 'Pending checkouts prevent deletion', |
| 693 |
error_code => 'has_checkouts' |
| 694 |
} |
| 695 |
); |
| 686 |
|
696 |
|
| 687 |
# Make sure it has no pending checkouts |
697 |
# Make sure it has no pending checkouts |
| 688 |
$checkout->delete; |
698 |
$checkout->delete; |
| 689 |
|
699 |
|
| 690 |
$t->delete_ok("//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber) |
700 |
$t->delete_ok("//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber) |
| 691 |
->status_is(409, 'Patron with debt cannot be deleted') |
701 |
->status_is(409, 'Patron with debt cannot be deleted') |
| 692 |
->json_is( { error => 'Pending debts prevent deletion' } ); |
702 |
->json_is( |
|
|
703 |
{ |
| 704 |
error => 'Pending debts prevent deletion', |
| 705 |
error_code => 'has_debt' |
| 706 |
} |
| 707 |
); |
| 693 |
|
708 |
|
| 694 |
# Make sure it has no debt |
709 |
# Make sure it has no debt |
| 695 |
$patron->account->pay({ amount => 10, debits => [ $debit ] }); |
710 |
$patron->account->pay({ amount => 10, debits => [ $debit ] }); |
| 696 |
|
711 |
|
| 697 |
$t->delete_ok("//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber) |
712 |
$t->delete_ok("//$userid:$password@/api/v1/patrons/" . $patron->borrowernumber) |
| 698 |
->status_is(409, 'Patron with guarantees cannot be deleted') |
713 |
->status_is(409, 'Patron with guarantees cannot be deleted') |
| 699 |
->json_is( { error => 'Patron is a guarantor and it prevents deletion' } ); |
714 |
->json_is( |
|
|
715 |
{ |
| 716 |
error => 'Patron is a guarantor and it prevents deletion', |
| 717 |
error_code => 'has_guarantees' |
| 718 |
} |
| 719 |
); |
| 700 |
|
720 |
|
| 701 |
# Remove guarantee |
721 |
# Remove guarantee |
| 702 |
$patron->guarantee_relationships->delete; |
722 |
$patron->guarantee_relationships->delete; |
| 703 |
- |
|
|