Pithub

 view release on metacpan or  search on metacpan

t/live/repos.t  view on Meta::CPAN

#!perl

use strict;
use warnings;

use Pithub            ();
use Test::Differences qw( eq_or_diff );
use Test::More import => [qw( done_testing is isnt like ok skip subtest )];

use lib 't/lib';
use Pithub::Test::Factory ();

# These tests may break very easily because data on Github can and will change, of course.
# And they also might fail once the ratelimit has been reached.
SKIP: {
    skip 'Set PITHUB_TEST_LIVE_DATA to true to run these tests', 1
        unless $ENV{PITHUB_TEST_LIVE_DATA};

    my $p = Pithub->new;

    # Pithub::Repos->branches
    {
        my $result = $p->repos->branches( user => 'plu', repo => 'Pithub' );
        is $result->success, 1, 'Pithub::Repos->branches successful';
        ok $result->count > 0, 'Pithub::Repos->branches has some rows';
        ok $result->content->[0]{name};
        like $result->content->[0]{commit}{sha}, qr{^[a-f0-9]+$};
    }

    # Pithub::Repos->contributors
    {
        my $result
            = $p->repos->contributors( user => 'plu', repo => 'Pithub' );
        is $result->success, 1, 'Pithub::Repos->contributors successful';
        is $result->content->[0]{login}, 'plu',
            'Pithub::Repos->contributors: Attribute login'
    }

    # Pithub::Repos->get
    {
        my $result = $p->repos->get( user => 'plu', repo => 'Pithub' );
        is $result->success, 1, 'Pithub::Repos->get successful';
        is $result->content->{name}, 'Pithub',
            'Pithub::Repos->get: Attribute name';
        is $result->content->{owner}{login}, 'plu',
            'Pithub::Repos->get: Attribute owner.login';
    }

    subtest 'Pithub::Repos->branch' => sub {
        my $result = $p->repos->branch(
            user   => 'plu',
            repo   => 'Pithub',
            branch => 'master'
        );
        ok $result->success;
        is $result->content->{name}, 'master';
        like $result->content->{commit}{sha}, qr{^[a-f0-9]+$};
    };

    # Pithub::Repos->languages
    {
        my $result = $p->repos->languages( user => 'plu', repo => 'Pithub' );
        is $result->success, 1, 'Pithub::Repos->languages successful';
        like $result->content->{Perl}, qr{^\d+$},
            'Pithub::Repos->languages: Attribute Perl';
    }



( run in 0.762 second using v1.01-cache-2.11-cpan-39bf76dae61 )