lemonldap-ng/lemonldap-ng-manager/t/04-misc-api.t

36 lines
1.2 KiB
Perl

# Test Providers API
use Test::More;
use strict;
use JSON;
use IO::String;
require 't/test-lib.pm';
sub getStatus {
my ( $test, $expectCode ) = @_;
my $res;
ok( $res = &client->_get( "/api/v1/status", '' ),
"$test: Request succeed" );
is( $res->[0], $expectCode || 200, "$test: correct status code" );
count(1);
return from_json( $res->[2]->[0] );
}
# "break" config file
rename 't/conf/lmConf-1.json', 't/conf/lmConf-1.json.broken';
my $brokenconfig = getStatus( "Broken config backend", 503 );
is( $brokenconfig->{status}, 'ko', 'Got expected global status' );
is( $brokenconfig->{status_config}, 'ko', 'Got expected config status' );
rename 't/conf/lmConf-1.json.broken', 't/conf/lmConf-1.json';
my $allfine = getStatus("Back to normal");
is( $allfine->{status}, 'ok', 'Got expected global status' );
is( $allfine->{status_config}, 'ok', 'Got expected config status' );
is( $allfine->{status_sessions}, 'unknown', 'Not implemented yet' );
is( $allfine->{status_psessions}, 'unknown', 'Not implemented yet' );
# Clean up generated files, except for "lmConf-1.json"
unlink grep { $_ ne "t/conf/lmConf-1.json" } glob "t/conf/lmConf-*.json";
done_testing();