Mojar-Google-Analytics
view release on metacpan or search on metacpan
test/70-retrieval.t view on Meta::CPAN
# ============
# retrieval.t
# ============
use Mojo::Base -strict;
use Test::More;
use Mojar::Google::Analytics;
use Mojar::Util 'slurp_chomped';
use Mojo::File 'path';
plan skip_all => 'set TEST_ACCESS to enable this test (developer only!)'
unless $ENV{TEST_ACCESS};
my ($user, $pk, $profile);
subtest q{Setup} => sub {
$user = slurp_chomped 'data/auth_user.txt';
ok $user, 'user';
$pk = path('data/privatekey.pem')->slurp;
ok $pk, 'pk';
$profile = slurp_chomped 'data/profile.txt';
ok $profile, 'profile';
};
my ($analytics, $res);
subtest q{Basics} => sub {
ok $analytics = Mojar::Google::Analytics->new(
auth_user => $user,
private_key => $pk,
profile_id => $profile
), 'new(profile_id => ..)';
ok $analytics->req(
metrics => [qw(visits)]
), 'req(..)';
};
subtest q{Bad Auth} => sub {
$analytics->{auth_user} .= 'X';
delete $analytics->{jwt};
eval {
$analytics->renew_token;
fail 'Threw exception';
}
or do {
my $e = $@ // '';
like $e, qr/401 error:/, 'right code';
like $e, qr/invalid_client/, 'right message';
};
$analytics->{auth_user} = $user;
delete $analytics->{jwt};
ok $analytics->renew_token, 'renewed token';
};
subtest q{Bad Auth 2} => sub {
$analytics->{grant_type} .= 'X';
delete $analytics->{jwt};
eval {
$analytics->renew_token;
fail 'Threw exception';
}
or do {
my $e = $@ // '';
like $e, qr/400 error:/, 'right code';
like $e, qr/unsupported_grant_type/, 'right message';
};
$analytics->{grant_type} =~ s/X$//;
delete $analytics->{jwt};
ok $analytics->renew_token, 'renewed token';
};
subtest q{token} => sub {
eval {
ok $analytics->has_valid_token, 'has_valid_token';
}
or do {
my $e = $@;
diag sprintf "user: [%s]\npk: [%s]\nprofile: [%s]\nerror: %s",
$user, $pk, $profile, $e;
};
ok $analytics->renew_token, 'renew_token';
};
subtest q{fetch} => sub {
eval {
ok $res = $analytics->fetch, 'fetch';
}
or diag sprintf "profile: [%s]\nerror: %s",
$profile, $analytics->res->error->{message} // '';
( run in 1.050 second using v1.01-cache-2.11-cpan-39bf76dae61 )