Line 0
Link Here
|
0 |
- |
1 |
#!/usr/bin/env perl |
|
|
2 |
|
3 |
use Modern::Perl; |
4 |
|
5 |
use Test::More tests => 14; |
6 |
use Test::Mojo; |
7 |
|
8 |
use t::lib::Mocks; |
9 |
use t::lib::TestBuilder; |
10 |
|
11 |
my $schema = Koha::Database->new->schema; |
12 |
my $builder = t::lib::TestBuilder->new; |
13 |
|
14 |
t::lib::Mocks::mock_preference( 'RESTBasicAuth', 1 ); |
15 |
|
16 |
my $t = Test::Mojo->new('Koha::REST::V1'); |
17 |
|
18 |
$schema->storage->txn_begin; |
19 |
|
20 |
my $bookseller = $builder->build_object( |
21 |
{ |
22 |
class => 'Koha::Acquisition::Booksellers', |
23 |
} |
24 |
); |
25 |
my $patron = $builder->build_object( |
26 |
{ |
27 |
class => 'Koha::Patrons', |
28 |
value => { flags => 0 } |
29 |
} |
30 |
); |
31 |
my $password = 'thePassword123'; |
32 |
$patron->set_password( { password => $password, skip_validation => 1 } ); |
33 |
my $userid = $patron->userid; |
34 |
|
35 |
my $url = "//$userid:$password@/api/v1/acquisitions/baskets"; |
36 |
|
37 |
$t->post_ok($url, json => {}) |
38 |
->status_is(403); |
39 |
|
40 |
$schema->resultset('UserPermission')->create( |
41 |
{ |
42 |
borrowernumber => $patron->borrowernumber, |
43 |
module_bit => 11, |
44 |
code => 'order_manage', |
45 |
} |
46 |
); |
47 |
|
48 |
$t->post_ok($url, json => {}) |
49 |
->status_is(400); |
50 |
|
51 |
$t->post_ok($url, json => { vendor_id => $bookseller->id }) |
52 |
->status_is(201) |
53 |
->json_has('/basket_id') |
54 |
->json_is('/vendor_id', $bookseller->id); |
55 |
|
56 |
my $basket = { |
57 |
vendor_id => $bookseller->id, |
58 |
name => 'Basket #1', |
59 |
vendor_note => 'Vendor note', |
60 |
}; |
61 |
$t->post_ok($url, json => $basket) |
62 |
->status_is(201) |
63 |
->json_has('/basket_id') |
64 |
->json_is('/vendor_id', $basket->{vendor_id}) |
65 |
->json_is('/name', $basket->{name}) |
66 |
->json_is('/vendor_note', $basket->{vendor_note}); |
67 |
|
68 |
$schema->storage->txn_rollback; |