Lines 30-35
use C4::Circulation qw( AddIssue AddReturn CanBookBeIssued );
Link Here
|
30 |
|
30 |
|
31 |
use Koha::Database; |
31 |
use Koha::Database; |
32 |
use Koha::DateUtils qw( dt_from_string output_pref ); |
32 |
use Koha::DateUtils qw( dt_from_string output_pref ); |
|
|
33 |
use Koha::Token; |
33 |
|
34 |
|
34 |
my $schema = Koha::Database->schema; |
35 |
my $schema = Koha::Database->schema; |
35 |
my $builder = t::lib::TestBuilder->new; |
36 |
my $builder = t::lib::TestBuilder->new; |
Lines 237-243
$schema->storage->txn_rollback;
Link Here
|
237 |
|
238 |
|
238 |
subtest 'get_availability' => sub { |
239 |
subtest 'get_availability' => sub { |
239 |
|
240 |
|
240 |
plan tests => 27; |
241 |
plan tests => 28; |
241 |
|
242 |
|
242 |
$schema->storage->txn_begin; |
243 |
$schema->storage->txn_begin; |
243 |
my $librarian = $builder->build_object( |
244 |
my $librarian = $builder->build_object( |
Lines 294-300
subtest 'get_availability' => sub {
Link Here
|
294 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
295 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
295 |
)->status_is(200)->json_is( '/blockers' => {} ) |
296 |
)->status_is(200)->json_is( '/blockers' => {} ) |
296 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
297 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
297 |
->json_is( '/confirmation_token' => undef ); |
298 |
->json_has( '/confirmation_token'); |
298 |
|
299 |
|
299 |
# Blocked |
300 |
# Blocked |
300 |
%issuingimpossible = ( GNA => 1 ); |
301 |
%issuingimpossible = ( GNA => 1 ); |
Lines 302-308
subtest 'get_availability' => sub {
Link Here
|
302 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
303 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
303 |
)->status_is(200)->json_is( '/blockers' => { GNA => 1 } ) |
304 |
)->status_is(200)->json_is( '/blockers' => { GNA => 1 } ) |
304 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
305 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
305 |
->json_is( '/confirmation_token' => undef ); |
306 |
->json_has( '/confirmation_token'); |
306 |
%issuingimpossible = (); |
307 |
%issuingimpossible = (); |
307 |
|
308 |
|
308 |
# Warnings/Info |
309 |
# Warnings/Info |
Lines 314-331
subtest 'get_availability' => sub {
Link Here
|
314 |
->json_is( '/confirms' => {} ) |
315 |
->json_is( '/confirms' => {} ) |
315 |
->json_is( '/warnings' => |
316 |
->json_is( '/warnings' => |
316 |
{ alert1 => "this is an alert", message1 => "this is a message" } ) |
317 |
{ alert1 => "this is an alert", message1 => "this is a message" } ) |
317 |
->json_is( '/confirmation_token' => undef ); |
318 |
->json_has( '/confirmation_token'); |
318 |
%alerts = (); |
319 |
%alerts = (); |
319 |
%messages = (); |
320 |
%messages = (); |
320 |
|
321 |
|
321 |
# Needs confirm |
322 |
# Needs confirm |
322 |
%needsconfirmation = ( confirm1 => 1, confirm2 => 'please' ); |
323 |
%needsconfirmation = ( confirm1 => 1, confirm2 => 'please' ); |
|
|
324 |
my $token = Koha::Token->new->generate_jwt( { id => $librarian->id . ":" . $item1_id . ":confirm1:confirm2:please" }); |
323 |
$t->get_ok( |
325 |
$t->get_ok( |
324 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
326 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
325 |
)->status_is(200)->json_is( '/blockers' => {} ) |
327 |
)->status_is(200)->json_is( '/blockers' => {} ) |
326 |
->json_is( '/confirms' => { confirm1 => 1, confirm2 => 'please' } ) |
328 |
->json_is( '/confirms' => { confirm1 => 1, confirm2 => 'please' } ) |
327 |
->json_is( '/warnings' => {} ) |
329 |
->json_is( '/warnings' => {} ) |
328 |
->json_is( '/confirmation_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb25maXJtMSI6MSwiY29uZmlybTIiOjF9.4QBpITwnIGOAfohyKjaFDoeBWnGmQTdyJrPn9pavArw' ); |
330 |
->json_has( '/confirmation_token'); |
|
|
331 |
my $confirmation_token = $t->tx->res->json('/confirmation_token'); |
332 |
ok( |
333 |
Koha::Token->new->check_jwt( |
334 |
{ |
335 |
id => $librarian->id . ":" |
336 |
. $item1_id |
337 |
. ":confirm1:confirm2:please", |
338 |
token => $confirmation_token |
339 |
} |
340 |
), |
341 |
'Correct token' |
342 |
); |
329 |
|
343 |
|
330 |
$schema->storage->txn_rollback; |
344 |
$schema->storage->txn_rollback; |
331 |
}; |
345 |
}; |
Lines 397-403
subtest 'add checkout' => sub {
Link Here
|
397 |
} |
411 |
} |
398 |
)->status_is(412); |
412 |
)->status_is(412); |
399 |
|
413 |
|
400 |
my $token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb25maXJtMSI6MSwiY29uZmlybTIiOjF9.4QBpITwnIGOAfohyKjaFDoeBWnGmQTdyJrPn9pavArw"; |
414 |
my $token = Koha::Token->new->generate_jwt( |
|
|
415 |
{ |
416 |
id => $librarian->id . ":" |
417 |
. $item1_id |
418 |
. ":confirm1:confirm2:please" |
419 |
} |
420 |
); |
401 |
$t->post_ok( |
421 |
$t->post_ok( |
402 |
"//$userid:$password@/api/v1/checkouts?confirmation=$token" => json => { |
422 |
"//$userid:$password@/api/v1/checkouts?confirmation=$token" => json => { |
403 |
item_id => $item1_id, |
423 |
item_id => $item1_id, |
404 |
- |
|
|