X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=t%2Fdb_dependent%2Fapi%2Fv1%2Fholds.t;h=b3e3678c0c7216c78968595005cd661e9809c567;hb=00374d0741b5c94ccdbbbc36164d4ef099ab3e2c;hp=8397f30a587fede61d70af51b4cba494f4220ffc;hpb=400804ada19be4e6865d356e3671f6119ad56357;p=koha.git diff --git a/t/db_dependent/api/v1/holds.t b/t/db_dependent/api/v1/holds.t index 8397f30a58..b3e3678c0c 100644 --- a/t/db_dependent/api/v1/holds.t +++ b/t/db_dependent/api/v1/holds.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 4; +use Test::More tests => 5; use Test::Mojo; use t::lib::TestBuilder; use t::lib::Mocks; @@ -26,6 +26,7 @@ use DateTime; use C4::Context; use C4::Reserves; +use C4::Items; use Koha::Database; use Koha::DateUtils; @@ -49,6 +50,7 @@ my $tx; my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; my $branchcode = $builder->build({ source => 'Branch' })->{branchcode}; +my $itemtype = $builder->build({ source => 'Itemtype' })->{itemtype}; # User without any permissions my $nopermission = $builder->build({ @@ -123,10 +125,14 @@ $session3->param('lasttime', time()); $session3->flush; my $biblionumber = create_biblio('RESTful Web APIs'); -my $itemnumber = create_item($biblionumber, 'TEST000001'); +my $item = create_item($biblionumber, 'TEST000001'); +my $itemnumber = $item->{itemnumber}; +$item->{itype} = $itemtype; +C4::Items::ModItem($item, $biblionumber, $itemnumber); my $biblionumber2 = create_biblio('RESTful Web APIs'); -my $itemnumber2 = create_item($biblionumber2, 'TEST000002'); +my $item2 = create_item($biblionumber2, 'TEST000002'); +my $itemnumber2 = $item2->{itemnumber}; my $dbh = C4::Context->dbh; $dbh->do('DELETE FROM reserves'); @@ -196,7 +202,7 @@ subtest "Test endpoints without permission" => sub { ->status_is(403); }; subtest "Test endpoints without permission, but accessing own object" => sub { - plan tests => 15; + plan tests => 16; my $borrno_tmp = $post_data->{'borrowernumber'}; $post_data->{'borrowernumber'} = int $nopermission->{'borrowernumber'}; @@ -230,7 +236,8 @@ subtest "Test endpoints without permission, but accessing own object" => sub { } ) ) - ->json_is( '/priority', 2 ); + ->json_is( '/priority', 2 ) + ->json_is( '/itemnumber', $itemnumber ); }; subtest "Test endpoints with permission" => sub { @@ -331,6 +338,38 @@ subtest "Test endpoints with permission" => sub { ->json_like('/error', qr/tooManyReserves/); }; + +subtest 'Reserves with itemtype' => sub { + plan tests => 9; + + my $post_data = { + borrowernumber => int($patron_1->borrowernumber), + biblionumber => int($biblionumber), + branchcode => $branchcode, + itemtype => $itemtype, + }; + + $tx = $t->ua->build_tx(DELETE => "/api/v1/holds/$reserve_id"); + $tx->req->cookies({name => 'CGISESSID', value => $session3->id}); + $t->request_ok($tx) + ->status_is(200); + + $tx = $t->ua->build_tx(POST => "/api/v1/holds" => json => $post_data); + $tx->req->cookies({name => 'CGISESSID', value => $session3->id}); + $t->request_ok($tx) + ->status_is(201) + ->json_has('/reserve_id'); + + $reserve_id = $t->tx->res->json->{reserve_id}; + + $tx = $t->ua->build_tx(GET => "/api/v1/holds?borrowernumber=" . $patron_1->borrowernumber); + $tx->req->cookies({name => 'CGISESSID', value => $session->id}); + $t->request_ok($tx) + ->status_is(200) + ->json_is('/0/reserve_id', $reserve_id) + ->json_is('/0/itemtype', $itemtype); +}; + $schema->storage->txn_rollback; sub create_biblio { @@ -357,5 +396,5 @@ sub create_item { } ); - return $item->{itemnumber}; + return $item; }