Lines 17-23
Link Here
|
17 |
|
17 |
|
18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
19 |
|
19 |
|
20 |
use Test::More tests => 4; |
20 |
use Test::More tests => 5; |
21 |
use Test::Mojo; |
21 |
use Test::Mojo; |
22 |
use t::lib::TestBuilder; |
22 |
use t::lib::TestBuilder; |
23 |
use t::lib::Mocks; |
23 |
use t::lib::Mocks; |
Lines 26-31
use DateTime;
Link Here
|
26 |
|
26 |
|
27 |
use C4::Context; |
27 |
use C4::Context; |
28 |
use C4::Reserves; |
28 |
use C4::Reserves; |
|
|
29 |
use C4::Items; |
29 |
|
30 |
|
30 |
use Koha::Database; |
31 |
use Koha::Database; |
31 |
use Koha::Biblios; |
32 |
use Koha::Biblios; |
Lines 48-53
my $tx;
Link Here
|
48 |
|
49 |
|
49 |
my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; |
50 |
my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; |
50 |
my $branchcode = $builder->build({ source => 'Branch' })->{branchcode}; |
51 |
my $branchcode = $builder->build({ source => 'Branch' })->{branchcode}; |
|
|
52 |
my $itemtype = $builder->build({ source => 'Itemtype' })->{itemtype}; |
51 |
|
53 |
|
52 |
# User without any permissions |
54 |
# User without any permissions |
53 |
my $nopermission = $builder->build({ |
55 |
my $nopermission = $builder->build({ |
Lines 122-131
$session3->param('lasttime', time());
Link Here
|
122 |
$session3->flush; |
124 |
$session3->flush; |
123 |
|
125 |
|
124 |
my $biblionumber = create_biblio('RESTful Web APIs'); |
126 |
my $biblionumber = create_biblio('RESTful Web APIs'); |
125 |
my $itemnumber = create_item($biblionumber, 'TEST000001'); |
127 |
my $item = create_item($biblionumber, 'TEST000001'); |
|
|
128 |
my $itemnumber = $item->{itemnumber}; |
129 |
$item->{itype} = $itemtype; |
130 |
C4::Items::ModItem($item, $biblionumber, $itemnumber); |
126 |
|
131 |
|
127 |
my $biblionumber2 = create_biblio('RESTful Web APIs'); |
132 |
my $biblionumber2 = create_biblio('RESTful Web APIs'); |
128 |
my $itemnumber2 = create_item($biblionumber2, 'TEST000002'); |
133 |
my $item2 = create_item($biblionumber2, 'TEST000002'); |
|
|
134 |
my $itemnumber2 = $item2->{itemnumber}; |
129 |
|
135 |
|
130 |
my $dbh = C4::Context->dbh; |
136 |
my $dbh = C4::Context->dbh; |
131 |
$dbh->do('DELETE FROM reserves'); |
137 |
$dbh->do('DELETE FROM reserves'); |
Lines 318-323
subtest "Test endpoints with permission" => sub {
Link Here
|
318 |
->json_like('/error', qr/tooManyReserves/); |
324 |
->json_like('/error', qr/tooManyReserves/); |
319 |
}; |
325 |
}; |
320 |
|
326 |
|
|
|
327 |
|
328 |
subtest 'Reserves with itemtype' => sub { |
329 |
plan tests => 9; |
330 |
|
331 |
my $post_data = { |
332 |
borrowernumber => int($patron_1->borrowernumber), |
333 |
biblionumber => int($biblionumber), |
334 |
branchcode => $branchcode, |
335 |
itemtype => $itemtype, |
336 |
}; |
337 |
|
338 |
$tx = $t->ua->build_tx(DELETE => "/api/v1/holds/$reserve_id"); |
339 |
$tx->req->cookies({name => 'CGISESSID', value => $session3->id}); |
340 |
$t->request_ok($tx) |
341 |
->status_is(200); |
342 |
|
343 |
$tx = $t->ua->build_tx(POST => "/api/v1/holds" => json => $post_data); |
344 |
$tx->req->cookies({name => 'CGISESSID', value => $session3->id}); |
345 |
$t->request_ok($tx) |
346 |
->status_is(201) |
347 |
->json_has('/reserve_id'); |
348 |
|
349 |
$reserve_id = $t->tx->res->json->{reserve_id}; |
350 |
|
351 |
$tx = $t->ua->build_tx(GET => "/api/v1/holds?borrowernumber=" . $patron_1->borrowernumber); |
352 |
$tx->req->cookies({name => 'CGISESSID', value => $session->id}); |
353 |
$t->request_ok($tx) |
354 |
->status_is(200) |
355 |
->json_is('/0/reserve_id', $reserve_id) |
356 |
->json_is('/0/itemtype', $itemtype); |
357 |
}; |
358 |
|
321 |
$schema->storage->txn_rollback; |
359 |
$schema->storage->txn_rollback; |
322 |
|
360 |
|
323 |
sub create_biblio { |
361 |
sub create_biblio { |
Lines 344-348
sub create_item {
Link Here
|
344 |
} |
382 |
} |
345 |
); |
383 |
); |
346 |
|
384 |
|
347 |
return $item->{itemnumber}; |
385 |
return $item; |
348 |
} |
386 |
} |
349 |
- |
|
|