Bug 29503: Regression tests
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
724f53e5ec
commit
2b432cec1d
1 changed files with 52 additions and 1 deletions
|
@ -44,7 +44,8 @@ my $t = Test::Mojo->new('Koha::REST::V1');
|
|||
t::lib::Mocks::mock_preference( 'RESTBasicAuth', 1 );
|
||||
|
||||
subtest 'list() tests' => sub {
|
||||
plan tests => 2;
|
||||
|
||||
plan tests => 3;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
unauthorized_access_tests('GET', undef, undef);
|
||||
|
@ -141,6 +142,56 @@ subtest 'list() tests' => sub {
|
|||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
subtest 'search_limited() tests' => sub {
|
||||
|
||||
plan tests => 9;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
my $library_1 = $builder->build_object({ class => 'Koha::Libraries' });
|
||||
my $library_2 = $builder->build_object({ class => 'Koha::Libraries' });
|
||||
|
||||
my $patron_1 = $builder->build_object({ class => 'Koha::Patrons', value => { branchcode => $library_1->id } });
|
||||
my $patron_2 = $builder->build_object({ class => 'Koha::Patrons', value => { branchcode => $library_1->id } });
|
||||
my $patron_3 = $builder->build_object({ class => 'Koha::Patrons', value => { branchcode => $library_2->id } });
|
||||
|
||||
my @libraries_where_can_see_patrons = ($library_1->id, $library_2->id);
|
||||
|
||||
my $mocked_patron = Test::MockModule->new('Koha::Patron');
|
||||
$mocked_patron->mock( 'libraries_where_can_see_patrons', sub
|
||||
{
|
||||
return @libraries_where_can_see_patrons;
|
||||
}
|
||||
);
|
||||
|
||||
my $librarian = $builder->build_object(
|
||||
{
|
||||
class => 'Koha::Patrons',
|
||||
value => { flags => 2**4 } # borrowers flag = 4
|
||||
}
|
||||
);
|
||||
my $password = 'thePassword123';
|
||||
$librarian->set_password( { password => $password, skip_validation => 1 } );
|
||||
my $userid = $librarian->userid;
|
||||
|
||||
$t->get_ok("//$userid:$password@/api/v1/patrons?_order_by=patron_id&q=" . encode_json({ library_id => [ $library_1->id, $library_2->id ] }))
|
||||
->status_is(200)
|
||||
->json_is( '/0/patron_id' => $patron_1->id )
|
||||
->json_is( '/1/patron_id' => $patron_2->id )
|
||||
->json_is( '/2/patron_id' => $patron_3->id );
|
||||
|
||||
@libraries_where_can_see_patrons = ($library_2->id);
|
||||
|
||||
my $res = $t->get_ok("//$userid:$password@/api/v1/patrons?_order_by=patron_id&q=" . encode_json({ library_id => [ $library_1->id, $library_2->id ] }))
|
||||
->status_is(200)
|
||||
->json_is( '/0/patron_id' => $patron_3->id, 'Returns the only allowed patron' )
|
||||
->tx->res->json;
|
||||
|
||||
is( scalar @{$res}, 1, 'Only one patron returned' );
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
};
|
||||
|
||||
subtest 'get() tests' => sub {
|
||||
|
|
Loading…
Reference in a new issue