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::DateUtils; |
32 |
use Koha::DateUtils; |
Lines 49-54
my $tx;
Link Here
|
49 |
|
50 |
|
50 |
my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; |
51 |
my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; |
51 |
my $branchcode = $builder->build({ source => 'Branch' })->{branchcode}; |
52 |
my $branchcode = $builder->build({ source => 'Branch' })->{branchcode}; |
|
|
53 |
my $itemtype = $builder->build({ source => 'Itemtype' })->{itemtype}; |
52 |
|
54 |
|
53 |
# User without any permissions |
55 |
# User without any permissions |
54 |
my $nopermission = $builder->build({ |
56 |
my $nopermission = $builder->build({ |
Lines 123-132
$session3->param('lasttime', time());
Link Here
|
123 |
$session3->flush; |
125 |
$session3->flush; |
124 |
|
126 |
|
125 |
my $biblionumber = create_biblio('RESTful Web APIs'); |
127 |
my $biblionumber = create_biblio('RESTful Web APIs'); |
126 |
my $itemnumber = create_item($biblionumber, 'TEST000001'); |
128 |
my $item = create_item($biblionumber, 'TEST000001'); |
|
|
129 |
my $itemnumber = $item->{itemnumber}; |
130 |
$item->{itype} = $itemtype; |
131 |
C4::Items::ModItem($item, $biblionumber, $itemnumber); |
127 |
|
132 |
|
128 |
my $biblionumber2 = create_biblio('RESTful Web APIs'); |
133 |
my $biblionumber2 = create_biblio('RESTful Web APIs'); |
129 |
my $itemnumber2 = create_item($biblionumber2, 'TEST000002'); |
134 |
my $item2 = create_item($biblionumber2, 'TEST000002'); |
|
|
135 |
my $itemnumber2 = $item2->{itemnumber}; |
130 |
|
136 |
|
131 |
my $dbh = C4::Context->dbh; |
137 |
my $dbh = C4::Context->dbh; |
132 |
$dbh->do('DELETE FROM reserves'); |
138 |
$dbh->do('DELETE FROM reserves'); |
Lines 331-336
subtest "Test endpoints with permission" => sub {
Link Here
|
331 |
->json_like('/error', qr/tooManyReserves/); |
337 |
->json_like('/error', qr/tooManyReserves/); |
332 |
}; |
338 |
}; |
333 |
|
339 |
|
|
|
340 |
|
341 |
subtest 'Reserves with itemtype' => sub { |
342 |
plan tests => 9; |
343 |
|
344 |
my $post_data = { |
345 |
borrowernumber => int($patron_1->borrowernumber), |
346 |
biblionumber => int($biblionumber), |
347 |
branchcode => $branchcode, |
348 |
itemtype => $itemtype, |
349 |
}; |
350 |
|
351 |
$tx = $t->ua->build_tx(DELETE => "/api/v1/holds/$reserve_id"); |
352 |
$tx->req->cookies({name => 'CGISESSID', value => $session3->id}); |
353 |
$t->request_ok($tx) |
354 |
->status_is(200); |
355 |
|
356 |
$tx = $t->ua->build_tx(POST => "/api/v1/holds" => json => $post_data); |
357 |
$tx->req->cookies({name => 'CGISESSID', value => $session3->id}); |
358 |
$t->request_ok($tx) |
359 |
->status_is(201) |
360 |
->json_has('/reserve_id'); |
361 |
|
362 |
$reserve_id = $t->tx->res->json->{reserve_id}; |
363 |
|
364 |
$tx = $t->ua->build_tx(GET => "/api/v1/holds?borrowernumber=" . $patron_1->borrowernumber); |
365 |
$tx->req->cookies({name => 'CGISESSID', value => $session->id}); |
366 |
$t->request_ok($tx) |
367 |
->status_is(200) |
368 |
->json_is('/0/reserve_id', $reserve_id) |
369 |
->json_is('/0/itemtype', $itemtype); |
370 |
}; |
371 |
|
334 |
$schema->storage->txn_rollback; |
372 |
$schema->storage->txn_rollback; |
335 |
|
373 |
|
336 |
sub create_biblio { |
374 |
sub create_biblio { |
Lines 357-361
sub create_item {
Link Here
|
357 |
} |
395 |
} |
358 |
); |
396 |
); |
359 |
|
397 |
|
360 |
return $item->{itemnumber}; |
398 |
return $item; |
361 |
} |
399 |
} |
362 |
- |
|
|