File: pull_requests.t

package info (click to toggle)
libpithub-perl 0.01043-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,148 kB
  • sloc: perl: 9,098; makefile: 7
file content (90 lines) | stat: -rw-r--r-- 3,224 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
use FindBin ();
use lib "$FindBin::Bin/../lib";
use Pithub::Test::Factory ();
use Test::Most import => [qw( done_testing is like ok skip use_ok )];

BEGIN {
    use_ok('Pithub');
}

# Following tests require a token and should only be run on a test
# account since they will create a lot of activity in that account.
SKIP: {
    skip
        'PITHUB_TEST_TOKEN required to run this test - DO NOT DO THIS UNLESS YOU KNOW WHAT YOU ARE DOING',
        1
        unless $ENV{PITHUB_TEST_TOKEN};

    my $org      = Pithub::Test::Factory->test_account->{org};
    my $org_repo = Pithub::Test::Factory->test_account->{org_repo};
    my $repo     = Pithub::Test::Factory->test_account->{repo};
    my $user     = Pithub::Test::Factory->test_account->{user};

    # Attention! Here we use $org and $org_repo
    my $p = Pithub->new(
        user  => $org,
        repo  => $org_repo,
        token => $ENV{PITHUB_TEST_TOKEN}
    );

    {

        # Pithub::PullRequests->create
        my $pr_id = $p->pull_requests->create(
            data => {
                base  => 'buhtip-org:master',
                body  => 'Please pull this in!',
                head  => "${user}:master",
                title => 'Amazing new feature',
            }
        )->content->{number};
        like $pr_id, qr{^\d+$},
            'Pithub::PullRequests->create successful, returned pull request number';

        # Pithub::PullRequests->commits
        is $p->pull_requests->commits( pull_request_id => $pr_id )
            ->first->{sha}, '52ad3a8c84b8a480c16b616a4c1e7505aa20f64a',
            'Pithub::PullRequests->commit first SHA';

        # Pithub::PullRequests->files
        is $p->pull_requests->files( pull_request_id => $pr_id )
            ->first->{filename}, 'dist.ini',
            'Pithub::PullRequests->files first filename';

        # Pithub::PullRequests->update
        ok $p->pull_requests->update(
            pull_request_id => $pr_id,
            data            => { title => "updated title $$" }
            )->success,
            'Pithub::PullRequests->update successful';

        # Pithub::PullRequests->get
        is $p->pull_requests->get( pull_request_id => $pr_id )
            ->content->{title}, "updated title $$",
            'Pithub::PullRequests->get after update';

        # Pithub::PullRequests->list
        is $p->pull_requests->list->content->[-1]->{title},
            "updated title $$", 'Pithub::PullRequests->list after update';

        # Pithub::PullRequests->is_merged
        ok !$p->pull_requests->is_merged( pull_request_id => $pr_id )
            ->success,
            'Pithub::PullRequests->is_merged not successful yet, pull request not merged yet';

        # Pithub::PullRequests::Comments->create
        # Pithub::PullRequests::Comments->delete
        # Pithub::PullRequests::Comments->get
        # Pithub::PullRequests::Comments->list
        # Pithub::PullRequests::Comments->update

        # Pithub::PullRequests->update
        ok $p->pull_requests->update(
            pull_request_id => $pr_id,
            data            => { state => 'closed' }
            )->success,
            'Pithub::PullRequests->update closing the pull request';
    }
}

done_testing;