App-Kritika
view release on metacpan or search on metacpan
t/kritika.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::MonkeyMock;
use Test::Fatal;
use Test::TempDir::Tiny;
use Test::Deep;
use JSON ();
use_ok 'App::Kritika';
subtest 'validate: submits correct file' => sub {
my $tempdir = tempdir();
my $ua = _mock_ua();
my $kritika = _build_kritika(
base_url => 'http://localhost',
token => 'deadbeef',
root => $tempdir,
branch => 'master',
revision => 'deadbeef',
ua => $ua
);
_touch_file( "$tempdir/file.txt", 'hello there' );
$kritika->validate("$tempdir/file.txt");
my ( $url, $options ) = $ua->mocked_call_args('post');
cmp_deeply $options,
{
headers =>
{ Authorization => 'Token deadbeef', Accept => 'application/json', 'X-Version' => ignore() },
content => JSON->new->canonical(1)->encode(
{
branch => 'master',
revision => 'deadbeef',
files => [
{
path => 'file.txt',
content => 'hello there'
}
]
}
)
};
};
subtest 'validate: returns parsed issues' => sub {
my $tempdir = tempdir();
my $ua = _mock_ua();
my $kritika = _build_kritika(
base_url => 'http://localhost',
token => 'deadbeef',
root => $tempdir,
branch => 'master',
revision => 'deadbeef',
ua => $ua
);
_touch_file( "$tempdir/file.txt", 'hello there' );
my $issues = $kritika->validate("$tempdir/file.txt");
( run in 0.719 second using v1.01-cache-2.11-cpan-54e63673c56 )