Lines 19-24
use Modern::Perl;
Link Here
|
19 |
|
19 |
|
20 |
use Test::More tests => 2; |
20 |
use Test::More tests => 2; |
21 |
use Test::Mojo; |
21 |
use Test::Mojo; |
|
|
22 |
use Test::MockModule; |
22 |
|
23 |
|
23 |
use t::lib::TestBuilder; |
24 |
use t::lib::TestBuilder; |
24 |
use t::lib::Mocks; |
25 |
use t::lib::Mocks; |
Lines 26-36
use t::lib::Mocks;
Link Here
|
26 |
my $schema = Koha::Database->new->schema; |
27 |
my $schema = Koha::Database->new->schema; |
27 |
my $builder = t::lib::TestBuilder->new; |
28 |
my $builder = t::lib::TestBuilder->new; |
28 |
|
29 |
|
|
|
30 |
my $mock = create_a_test_endpoint(); |
31 |
|
29 |
my $t = Test::Mojo->new('Koha::REST::V1'); |
32 |
my $t = Test::Mojo->new('Koha::REST::V1'); |
30 |
|
33 |
|
31 |
subtest 'success tests' => sub { |
34 |
subtest 'success tests' => sub { |
32 |
|
35 |
|
33 |
plan tests => 5; |
36 |
plan tests => 9; |
34 |
|
37 |
|
35 |
$schema->storage->txn_begin; |
38 |
$schema->storage->txn_begin; |
36 |
|
39 |
|
Lines 46-51
subtest 'success tests' => sub {
Link Here
|
46 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
49 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
47 |
->status_is( 200, 'Successful authentication and permissions check' ); |
50 |
->status_is( 200, 'Successful authentication and permissions check' ); |
48 |
|
51 |
|
|
|
52 |
$t->post_ok("//$userid:$password@/api/v1/oauth/token") |
53 |
->status_is( 418, 'Successful authentication and not enough permissions' ) |
54 |
->json_is('/userenv/number' => $patron->borrowernumber) |
55 |
->json_is('/userenv/id' => $userid); |
56 |
|
49 |
$patron->flags(undef)->store; |
57 |
$patron->flags(undef)->store; |
50 |
|
58 |
|
51 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
59 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
Lines 90-93
subtest 'failure tests' => sub {
Link Here
|
90 |
$schema->storage->txn_rollback; |
98 |
$schema->storage->txn_rollback; |
91 |
}; |
99 |
}; |
92 |
|
100 |
|
|
|
101 |
sub create_a_test_endpoint { |
102 |
# Mock POST /oauth/token endpoint to return userenv |
103 |
# (it could be any other endpoint that doesn't require authentication too) |
104 |
my $mock = Test::MockModule->new('Koha::REST::V1::OAuth'); |
105 |
$mock->mock(token => sub { |
106 |
my $c = shift; |
107 |
return $c->render( status => 418, |
108 |
json => { userenv => C4::Context->userenv }); |
109 |
}); |
110 |
return $mock; |
111 |
} |
112 |
|
93 |
1; |
113 |
1; |
94 |
- |
|
|