View | Details | Raw Unified | Return to bug 36641
Collapse All | Expand All

(-)a/t/db_dependent/api/v1/circulation_rules.t (-2 / +68 lines)
Lines 33-39 my $t = Test::Mojo->new('Koha::REST::V1'); Link Here
33
t::lib::Mocks::mock_preference( 'RESTBasicAuth', 1 );
33
t::lib::Mocks::mock_preference( 'RESTBasicAuth', 1 );
34
34
35
subtest 'list_rules() tests' => sub {
35
subtest 'list_rules() tests' => sub {
36
    plan tests => 32;
36
    plan tests => 33;
37
37
38
    $schema->storage->txn_begin;
38
    $schema->storage->txn_begin;
39
39
Lines 202-206 subtest 'list_rules() tests' => sub { Link Here
202
    # Unauthorized access
202
    # Unauthorized access
203
    $t->get_ok("//$unauth_userid:$password@/api/v1/circulation_rules")->status_is(403);
203
    $t->get_ok("//$unauth_userid:$password@/api/v1/circulation_rules")->status_is(403);
204
204
205
    subtest 'effective=false tests' => sub {
206
207
        my $expected_keys = [ keys %{ Koha::CirculationRules->rule_kinds } ];
208
        my $count         = scalar( @{$expected_keys} );
209
210
        plan tests => ( $count * 2 ) + $count + 10;
211
212
        # All rules
213
        $t->get_ok("//$userid:$password@/api/v1/circulation_rules?effective=0")->status_is(200);
214
215
        # Extract and decode the JSON response
216
        my $json = $t->tx->res->json;
217
218
        # Check if the response is an array
219
        is( ref $json,          'ARRAY', 'Response is an array' );
220
        is( scalar( @{$json} ), 2,       'Response contains 2 rule sets' );
221
222
        # Iterate over each hash in the array
223
        my $index = 0;
224
        foreach my $hash ( @{$json} ) {
225
            my $pointer = Mojo::JSON::Pointer->new($hash);
226
227
            # First rule set should march default, default, default
228
            if ( $index == 0 ) {
229
                ok(        $pointer->get('/branchcode') eq "*"
230
                        && $pointer->get('/itemtype') eq '*'
231
                        && $pointer->get('/categorycode') eq '*', "Default rules returned first" );
232
            }
233
234
            # Iterate over the list of expected keys for each hash
235
            foreach my $key ( @{$expected_keys} ) {
236
                ok( $pointer->contains( '/' . $key ), "Hash contains key '$key'" );
237
            }
238
239
            $index++;
240
        }
241
242
        # Filter on library
243
        $t->get_ok("//$userid:$password@/api/v1/circulation_rules?effective=0&library_id=$branchcode")->status_is(200);
244
245
        # Extract and decode the JSON response
246
        $json = $t->tx->res->json;
247
248
        # Check if the response is an array
249
        is( ref $json,          'ARRAY', 'Response is an array' );
250
        is( scalar( @{$json} ), 1,       'Filtered response contains 1 rule set' );
251
252
        $index = 0;
253
        foreach my $hash ( @{$json} ) {
254
            my $pointer = Mojo::JSON::Pointer->new($hash);
255
256
            # First (and only) rule set should match branchcode, default, default.
257
            if ( $index == 0 ) {
258
                ok(        $pointer->get('/branchcode') eq $branchcode
259
                        && $pointer->get('/itemtype') eq '*'
260
                        && $pointer->get('/categorycode') eq '*', "Branchcode rule set returned when filtered" );
261
            }
262
263
            # Iterate over the list of expected keys for each hash
264
            foreach my $key ( @{$expected_keys} ) {
265
                ok( $pointer->contains( '/' . $key ), "Hash contains key '$key'" );
266
            }
267
268
            $index++;
269
        }
270
271
    };
205
    $schema->storage->txn_rollback;
272
    $schema->storage->txn_rollback;
206
};
273
};
207
- 

Return to bug 36641