Bug 33227: Unit tests

This patch adds a unit test that launches the swagger-cli validator
against our spec.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Tomás Cohen Arazi 2023-03-15 11:14:19 -03:00
parent 02392b0c2b
commit 502e34e9b0
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F

View file

@ -14,11 +14,14 @@
use Modern::Perl;
use Test::More tests => 2;
use Test::More tests => 3;
use Test::Mojo;
use Data::Dumper;
use FindBin();
use IPC::Cmd qw(can_run);
my $t = Test::Mojo->new('Koha::REST::V1');
my $spec = $t->get_ok( '/api/v1/', 'Correctly fetched the spec' )->tx->res->json;
@ -75,3 +78,18 @@ foreach my $route ( keys %{$paths} ) {
is( scalar @missing_additionalProperties, 0 )
or diag Dumper \@missing_additionalProperties;
subtest 'The spec passes the swagger-cli validation' => sub {
plan tests => 1;
SKIP: {
skip "Skipping tests, swagger-cli missing", 1
unless can_run('swagger-cli');
my $spec_dir = "$FindBin::Bin/../api/v1/swagger";
my $var = qx{swagger-cli validate $spec_dir/swagger.yaml 2>&1};
is( $?, 0, 'Validation exit code is 0' )
or diag $var;
}
};