From 4244d045eb85c1aa2e9c7875a00c865a4e8d05d7 Mon Sep 17 00:00:00 2001
From: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Date: Wed, 24 Apr 2024 11:01:08 +0000
Subject: [PATCH] Bug 26297: (QA follow-up): Update tests
prove t/db_dependent/api/v1/patron_categories.t
---
t/db_dependent/api/v1/patron_categories.t | 50 ++++++++++++++++++-----
1 file changed, 40 insertions(+), 10 deletions(-)
diff --git a/t/db_dependent/api/v1/patron_categories.t b/t/db_dependent/api/v1/patron_categories.t
index 719085850f7..16504569f8d 100755
--- a/t/db_dependent/api/v1/patron_categories.t
+++ b/t/db_dependent/api/v1/patron_categories.t
@@ -37,27 +37,25 @@ t::lib::Mocks::mock_preference( 'RESTBasicAuth', 1 );
subtest 'list() tests' => sub {
- plan tests => 7;
+ plan tests => 15;
$schema->storage->txn_begin;
- # delete all patrons
- Koha::Patrons->search->delete;
+ my $library = $builder->build_object( { class => 'Koha::Libraries' } );
- # delete all categories
- Koha::Patron::Categories->search->delete;
-
- $builder->build_object(
+ my $category = $builder->build_object(
{
class => 'Koha::Patron::Categories',
value => { categorycode => 'TEST', description => 'Test' }
}
);
+ $category->add_library_limit( $library->branchcode );
+
my $librarian = $builder->build_object(
{
class => 'Koha::Patrons',
- value => { flags => 2**3, categorycode => 'TEST' } # parameters flag = 3
+ value => { flags => 2**3, categorycode => 'TEST', branchcode => $library->branchcode } # parameters flag = 3
}
);
@@ -67,8 +65,40 @@ subtest 'list() tests' => sub {
$t->get_ok("//$userid:$password@/api/v1/patron_categories")->status_is(200);
- $t->get_ok("//$userid:$password@/api/v1/patron_categories")->status_is(200)->json_has('/0/name')
- ->json_is( '/0/name' => 'Test' )->json_hasnt('/1');
+ $t->get_ok("//$userid:$password@/api/v1/patron_categories?q={\"me.categorycode\":\"TEST\"}")->status_is(200)
+ ->json_has('/0/name')->json_is( '/0/name' => 'Test' )->json_hasnt('/1');
+
+ # Off limits search
+
+ my $library_2 = $builder->build_object( { class => 'Koha::Libraries' } );
+
+ my $off_limits_category = $builder->build_object(
+ {
+ class => 'Koha::Patron::Categories',
+ value => { categorycode => 'CANT', description => 'Cant' }
+ }
+ );
+
+ my $off_limits_librarian = $builder->build_object(
+ {
+ class => 'Koha::Patrons',
+ value =>
+ { flags => 2**3, categorycode => 'CANT', branchcode => $library_2->branchcode } # parameters flag = 3
+ }
+ );
+ my $off_limits_password = 'thePassword123';
+ $off_limits_librarian->set_password( { password => $password, skip_validation => 1 } );
+ my $off_limits_userid = $off_limits_librarian->userid;
+
+ $t->get_ok("//$off_limits_userid:$off_limits_password@/api/v1/patron_categories?q={\"me.categorycode\":\"TEST\"}")
+ ->status_is(200)->json_hasnt('/0');
+
+ # Off limits librarian category has changed to one within limits
+
+ $off_limits_librarian->branchcode( $library->branchcode )->store;
+
+ $t->get_ok("//$off_limits_userid:$off_limits_password@/api/v1/patron_categories?q={\"me.categorycode\":\"TEST\"}")
+ ->status_is(200)->json_has('/0/name')->json_is( '/0/name' => 'Test' )->json_hasnt('/1');
$schema->storage->txn_rollback;
--
2.39.2