github_api 0.4.11 → 0.5.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +76 -72
- data/features/cassettes/gists/starred.yml +48 -0
- data/features/cassettes/pagination/repos/commits/list.yml +193 -0
- data/features/cassettes/pagination/repos/commits/next.yml +183 -0
- data/features/cassettes/pagination/repos/diff/next.yml +45 -0
- data/features/cassettes/pagination/repos/list.yml +176 -0
- data/features/cassettes/pagination/repos/list/next.yml +222 -0
- data/features/cassettes/pagination/repos/per_page/each_page.yml +45 -0
- data/features/cassettes/repos/list.yml +92 -0
- data/features/error_codes.feature +1 -1
- data/features/gists.feature +12 -3
- data/features/gists/comments.feature +3 -3
- data/features/github_api.feature +13 -2
- data/features/pagination.feature +40 -39
- data/features/repos.feature +2 -2
- data/features/step_definitions/common_steps.rb +12 -0
- data/features/step_definitions/github_api_steps.rb +12 -1
- data/lib/github_api.rb +1 -1
- data/lib/github_api/api.rb +4 -2
- data/lib/github_api/api_factory.rb +11 -5
- data/lib/github_api/authorizations.rb +23 -32
- data/lib/github_api/client.rb +1 -0
- data/lib/github_api/events.rb +38 -38
- data/lib/github_api/filter.rb +1 -1
- data/lib/github_api/gists.rb +47 -42
- data/lib/github_api/gists/comments.rb +77 -84
- data/lib/github_api/git_data.rb +25 -6
- data/lib/github_api/git_data/blobs.rb +48 -45
- data/lib/github_api/git_data/commits.rb +76 -73
- data/lib/github_api/git_data/references.rb +137 -118
- data/lib/github_api/git_data/tags.rb +74 -70
- data/lib/github_api/git_data/trees.rb +88 -85
- data/lib/github_api/issues.rb +43 -31
- data/lib/github_api/issues/comments.rb +116 -119
- data/lib/github_api/issues/events.rb +20 -19
- data/lib/github_api/issues/labels.rb +200 -197
- data/lib/github_api/issues/milestones.rb +137 -134
- data/lib/github_api/orgs.rb +27 -23
- data/lib/github_api/orgs/members.rb +105 -108
- data/lib/github_api/orgs/teams.rb +236 -237
- data/lib/github_api/paged_request.rb +1 -1
- data/lib/github_api/pull_requests.rb +40 -42
- data/lib/github_api/pull_requests/comments.rb +140 -143
- data/lib/github_api/repos.rb +101 -67
- data/lib/github_api/repos/collaborators.rb +64 -68
- data/lib/github_api/repos/commits.rb +50 -39
- data/lib/github_api/repos/downloads.rb +107 -110
- data/lib/github_api/repos/forks.rb +38 -39
- data/lib/github_api/repos/hooks.rb +161 -167
- data/lib/github_api/repos/keys.rb +86 -86
- data/lib/github_api/repos/pub_sub_hubbub.rb +99 -87
- data/lib/github_api/repos/watching.rb +80 -82
- data/lib/github_api/request.rb +5 -9
- data/lib/github_api/users.rb +26 -16
- data/lib/github_api/users/emails.rb +47 -47
- data/lib/github_api/users/followers.rb +85 -86
- data/lib/github_api/users/keys.rb +73 -75
- data/lib/github_api/validations.rb +25 -0
- data/lib/github_api/validations/format.rb +23 -0
- data/lib/github_api/validations/presence.rb +25 -0
- data/lib/github_api/validations/required.rb +21 -0
- data/lib/github_api/validations/token.rb +41 -0
- data/lib/github_api/version.rb +3 -3
- data/spec/fixtures/repos/commit_comparison.json +112 -0
- data/spec/github/api_factory_spec.rb +17 -1
- data/spec/github/authorizations_spec.rb +36 -34
- data/spec/github/gists/comments_spec.rb +39 -45
- data/spec/github/gists_spec.rb +50 -53
- data/spec/github/git_data/blobs_spec.rb +27 -20
- data/spec/github/git_data/commits_spec.rb +20 -19
- data/spec/github/git_data/references_spec.rb +83 -46
- data/spec/github/git_data/tags_spec.rb +16 -15
- data/spec/github/git_data/trees_spec.rb +20 -19
- data/spec/github/git_data_spec.rb +10 -1
- data/spec/github/issues/comments_spec.rb +78 -68
- data/spec/github/issues/events_spec.rb +42 -34
- data/spec/github/issues/labels_spec.rb +89 -101
- data/spec/github/issues/milestones_spec.rb +76 -54
- data/spec/github/issues_spec.rb +53 -57
- data/spec/github/orgs/members_spec.rb +64 -49
- data/spec/github/orgs/teams_spec.rb +112 -101
- data/spec/github/orgs_spec.rb +41 -31
- data/spec/github/paged_request_spec.rb +6 -5
- data/spec/github/pull_requests/comments_spec.rb +39 -44
- data/spec/github/pull_requests_spec.rb +32 -48
- data/spec/github/repos/collaborators_spec.rb +40 -29
- data/spec/github/repos/commits_spec.rb +108 -64
- data/spec/github/repos/downloads_spec.rb +46 -45
- data/spec/github/repos/forks_spec.rb +23 -24
- data/spec/github/repos/hooks_spec.rb +69 -71
- data/spec/github/repos/keys_spec.rb +39 -34
- data/spec/github/repos/pub_sub_hubbub_spec.rb +4 -4
- data/spec/github/repos/watching_spec.rb +31 -33
- data/spec/github/repos_spec.rb +74 -83
- data/spec/github/request_spec.rb +31 -2
- data/spec/github/users/emails_spec.rb +19 -17
- data/spec/github/users/followers_spec.rb +30 -28
- data/spec/github/users/keys_spec.rb +37 -33
- data/spec/github/users_spec.rb +124 -125
- data/spec/github/validations/format_spec.rb +42 -0
- data/spec/github/validations/presence_spec.rb +18 -0
- data/spec/github/validations/required_spec.rb +28 -0
- data/spec/github/validations/token_spec.rb +19 -0
- data/spec/github/validations_spec.rb +23 -0
- metadata +33 -10
- data/features/cassettes/pagination/repos.yml +0 -177
- data/features/cassettes/pagination/repos/next.yml +0 -177
- data/lib/github_api/validation.rb +0 -53
- data/spec/github/validation_spec.rb +0 -62
@@ -12,9 +12,8 @@ describe Github::GitData::Tags do
|
|
12
12
|
|
13
13
|
it { described_class::VALID_TAG_PARAM_NAMES.should_not be_nil }
|
14
14
|
|
15
|
-
describe "
|
16
|
-
it { github.git_data.should respond_to :
|
17
|
-
it { github.git_data.should respond_to :get_tag }
|
15
|
+
describe "#get" do
|
16
|
+
it { github.git_data.tags.should respond_to :find }
|
18
17
|
|
19
18
|
context "resource found" do
|
20
19
|
before do
|
@@ -23,21 +22,23 @@ describe Github::GitData::Tags do
|
|
23
22
|
end
|
24
23
|
|
25
24
|
it "should fail to get resource without sha" do
|
26
|
-
expect {
|
25
|
+
expect {
|
26
|
+
github.git_data.tags.get user, repo, nil
|
27
|
+
}.to raise_error(ArgumentError)
|
27
28
|
end
|
28
29
|
|
29
30
|
it "should get the resource" do
|
30
|
-
github.git_data.
|
31
|
+
github.git_data.tags.get user, repo, sha
|
31
32
|
a_get("/repos/#{user}/#{repo}/git/tags/#{sha}").should have_been_made
|
32
33
|
end
|
33
34
|
|
34
35
|
it "should get tag information" do
|
35
|
-
tag = github.git_data.
|
36
|
+
tag = github.git_data.tags.get user, repo, sha
|
36
37
|
tag.tag.should eql "v0.0.1"
|
37
38
|
end
|
38
39
|
|
39
40
|
it "should return mash" do
|
40
|
-
tag = github.git_data.
|
41
|
+
tag = github.git_data.tags.get user, repo, sha
|
41
42
|
tag.should be_a Hashie::Mash
|
42
43
|
end
|
43
44
|
end
|
@@ -50,13 +51,13 @@ describe Github::GitData::Tags do
|
|
50
51
|
|
51
52
|
it "should fail to retrive resource" do
|
52
53
|
expect {
|
53
|
-
github.git_data.
|
54
|
+
github.git_data.tags.get user, repo, sha
|
54
55
|
}.to raise_error(Github::Error::NotFound)
|
55
56
|
end
|
56
57
|
end
|
57
|
-
end #
|
58
|
+
end # get
|
58
59
|
|
59
|
-
describe "
|
60
|
+
describe "#create" do
|
60
61
|
let(:inputs) {
|
61
62
|
{
|
62
63
|
"tag" => "v0.0.1",
|
@@ -83,17 +84,17 @@ describe Github::GitData::Tags do
|
|
83
84
|
end
|
84
85
|
|
85
86
|
it "should create resource successfully" do
|
86
|
-
github.git_data.
|
87
|
+
github.git_data.tags.create user, repo, inputs
|
87
88
|
a_post("/repos/#{user}/#{repo}/git/tags").with(inputs).should have_been_made
|
88
89
|
end
|
89
90
|
|
90
91
|
it "should return the resource" do
|
91
|
-
tag = github.git_data.
|
92
|
+
tag = github.git_data.tags.create user, repo, inputs
|
92
93
|
tag.should be_a Hashie::Mash
|
93
94
|
end
|
94
95
|
|
95
96
|
it "should get the tag information" do
|
96
|
-
tag = github.git_data.
|
97
|
+
tag = github.git_data.tags.create user, repo, inputs
|
97
98
|
tag.sha.should == sha
|
98
99
|
end
|
99
100
|
end
|
@@ -107,10 +108,10 @@ describe Github::GitData::Tags do
|
|
107
108
|
|
108
109
|
it "should faile to retrieve resource" do
|
109
110
|
expect {
|
110
|
-
github.git_data.
|
111
|
+
github.git_data.tags.create user, repo, inputs
|
111
112
|
}.to raise_error(Github::Error::NotFound)
|
112
113
|
end
|
113
114
|
end
|
114
|
-
end #
|
115
|
+
end # create
|
115
116
|
|
116
117
|
end # Github::GitData::Tags
|
@@ -12,9 +12,8 @@ describe Github::GitData::Trees do
|
|
12
12
|
|
13
13
|
it { described_class::VALID_TREE_PARAM_NAMES.should_not be_nil }
|
14
14
|
|
15
|
-
describe "
|
16
|
-
it { github.git_data.should respond_to :
|
17
|
-
it { github.git_data.should respond_to :get_tree }
|
15
|
+
describe "#get" do
|
16
|
+
it { github.git_data.trees.should respond_to :find }
|
18
17
|
|
19
18
|
context "non-resursive" do
|
20
19
|
before do
|
@@ -23,21 +22,23 @@ describe Github::GitData::Trees do
|
|
23
22
|
end
|
24
23
|
|
25
24
|
it "should fail to get resource without sha" do
|
26
|
-
expect {
|
25
|
+
expect {
|
26
|
+
github.git_data.trees.get user, repo, nil
|
27
|
+
}.to raise_error(ArgumentError)
|
27
28
|
end
|
28
29
|
|
29
30
|
it "should get the resource" do
|
30
|
-
github.git_data.
|
31
|
+
github.git_data.trees.get user, repo, sha
|
31
32
|
a_get("/repos/#{user}/#{repo}/git/trees/#{sha}").should have_been_made
|
32
33
|
end
|
33
34
|
|
34
35
|
it "should get tree information" do
|
35
|
-
tree = github.git_data.
|
36
|
+
tree = github.git_data.trees.get user, repo, sha
|
36
37
|
tree.sha.should eql sha
|
37
38
|
end
|
38
39
|
|
39
40
|
it "should return mash" do
|
40
|
-
tree = github.git_data.
|
41
|
+
tree = github.git_data.trees.get user, repo, sha
|
41
42
|
tree.should be_a Hashie::Mash
|
42
43
|
end
|
43
44
|
end
|
@@ -49,17 +50,17 @@ describe Github::GitData::Trees do
|
|
49
50
|
end
|
50
51
|
|
51
52
|
it "should get the resource" do
|
52
|
-
github.git_data.
|
53
|
+
github.git_data.trees.get user, repo, sha, 'recursive' => true
|
53
54
|
a_get("/repos/#{user}/#{repo}/git/trees/#{sha}?recursive=1").should have_been_made
|
54
55
|
end
|
55
56
|
|
56
57
|
it "should get tree information" do
|
57
|
-
tree = github.git_data.
|
58
|
+
tree = github.git_data.trees.get user, repo, sha, 'recursive' => true
|
58
59
|
tree.sha.should eql sha
|
59
60
|
end
|
60
61
|
|
61
62
|
it "should return mash" do
|
62
|
-
tree = github.git_data.
|
63
|
+
tree = github.git_data.trees.get user, repo, sha, 'recursive' => true
|
63
64
|
tree.should be_a Hashie::Mash
|
64
65
|
end
|
65
66
|
end
|
@@ -72,13 +73,13 @@ describe Github::GitData::Trees do
|
|
72
73
|
|
73
74
|
it "should fail to retrive resource" do
|
74
75
|
expect {
|
75
|
-
github.git_data.
|
76
|
+
github.git_data.trees.get user, repo, sha
|
76
77
|
}.to raise_error(Github::Error::NotFound)
|
77
78
|
end
|
78
79
|
end
|
79
|
-
end #
|
80
|
+
end # get
|
80
81
|
|
81
|
-
describe "
|
82
|
+
describe "#create" do
|
82
83
|
let(:inputs) {
|
83
84
|
{
|
84
85
|
"tree" => [
|
@@ -101,22 +102,22 @@ describe Github::GitData::Trees do
|
|
101
102
|
|
102
103
|
it "should fail to create resource if 'content' input is missing" do
|
103
104
|
expect {
|
104
|
-
github.git_data.
|
105
|
+
github.git_data.trees.create user, repo, inputs.except('tree')
|
105
106
|
}.to raise_error(Github::Error::RequiredParams)
|
106
107
|
end
|
107
108
|
|
108
109
|
it "should create resource successfully" do
|
109
|
-
github.git_data.
|
110
|
+
github.git_data.trees.create user, repo, inputs
|
110
111
|
a_post("/repos/#{user}/#{repo}/git/trees").with(inputs).should have_been_made
|
111
112
|
end
|
112
113
|
|
113
114
|
it "should return the resource" do
|
114
|
-
tree_sha = github.git_data.
|
115
|
+
tree_sha = github.git_data.trees.create user, repo, inputs
|
115
116
|
tree_sha.should be_a Hashie::Mash
|
116
117
|
end
|
117
118
|
|
118
119
|
it "should get the tree information" do
|
119
|
-
tree_sha = github.git_data.
|
120
|
+
tree_sha = github.git_data.trees.create user, repo, inputs
|
120
121
|
tree_sha.sha.should == sha
|
121
122
|
end
|
122
123
|
end
|
@@ -130,10 +131,10 @@ describe Github::GitData::Trees do
|
|
130
131
|
|
131
132
|
it "should faile to retrieve resource" do
|
132
133
|
expect {
|
133
|
-
github.git_data.
|
134
|
+
github.git_data.trees.create user, repo, inputs
|
134
135
|
}.to raise_error(Github::Error::NotFound)
|
135
136
|
end
|
136
137
|
end
|
137
|
-
end #
|
138
|
+
end # create
|
138
139
|
|
139
140
|
end # Github::GitData::Trees
|
@@ -1,4 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Github::GitData do
|
4
|
-
|
4
|
+
|
5
|
+
context 'access to apis' do
|
6
|
+
it { subject.blobs.should be_a Github::GitData::Blobs }
|
7
|
+
it { subject.commits.should be_a Github::GitData::Commits }
|
8
|
+
it { subject.references.should be_a Github::GitData::References }
|
9
|
+
it { subject.tags.should be_a Github::GitData::Tags }
|
10
|
+
it { subject.trees.should be_a Github::GitData::Trees }
|
11
|
+
end
|
12
|
+
|
13
|
+
end # Github::GitData
|
@@ -13,48 +13,49 @@ describe Github::Issues::Comments do
|
|
13
13
|
|
14
14
|
it { described_class::VALID_ISSUE_COMMENT_PARAM_NAME.should_not be_nil }
|
15
15
|
|
16
|
-
describe '
|
17
|
-
|
18
|
-
it { github.issues.should respond_to :comments }
|
19
|
-
it { github.issues.should respond_to :issue_comments }
|
20
|
-
it { github.issues.should respond_to :list_comments }
|
21
|
-
it { github.issues.should respond_to :list_issue_comments }
|
16
|
+
describe '#list' do
|
17
|
+
it { github.issues.should respond_to :all }
|
22
18
|
|
23
19
|
context "resource found" do
|
24
20
|
before do
|
25
21
|
stub_get("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").
|
26
|
-
to_return(:body => fixture('issues/comments.json'),
|
22
|
+
to_return(:body => fixture('issues/comments.json'),
|
23
|
+
:status => 200,
|
24
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
27
25
|
end
|
28
26
|
|
29
27
|
it "should fail to get resource without username" do
|
30
|
-
|
31
|
-
|
28
|
+
expect {
|
29
|
+
github.issues.comments.list user, repo, nil
|
30
|
+
}.to raise_error(ArgumentError)
|
32
31
|
end
|
33
32
|
|
34
33
|
it "should get the resources" do
|
35
|
-
github.issues.comments user, repo, issue_id
|
34
|
+
github.issues.comments.list user, repo, issue_id
|
36
35
|
a_get("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").should have_been_made
|
37
36
|
end
|
38
37
|
|
39
38
|
it "should return array of resources" do
|
40
|
-
comments = github.issues.comments user, repo, issue_id
|
39
|
+
comments = github.issues.comments.list user, repo, issue_id
|
41
40
|
comments.should be_an Array
|
42
41
|
comments.should have(1).items
|
43
42
|
end
|
44
43
|
|
45
44
|
it "should be a mash type" do
|
46
|
-
comments = github.issues.comments user, repo, issue_id
|
45
|
+
comments = github.issues.comments.list user, repo, issue_id
|
47
46
|
comments.first.should be_a Hashie::Mash
|
48
47
|
end
|
49
48
|
|
50
49
|
it "should get issue comment information" do
|
51
|
-
comments = github.issues.comments user, repo, issue_id
|
50
|
+
comments = github.issues.comments.list user, repo, issue_id
|
52
51
|
comments.first.user.login.should == 'octocat'
|
53
52
|
end
|
54
53
|
|
55
54
|
it "should yield to a block" do
|
56
|
-
github.issues.should_receive(:
|
57
|
-
|
55
|
+
github.issues.comments.should_receive(:list).
|
56
|
+
with(user, repo, issue_id).and_yield('web')
|
57
|
+
github.issues.comments.list(user, repo, issue_id) { |param| 'web' }.
|
58
|
+
should == 'web'
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
@@ -66,17 +67,14 @@ describe Github::Issues::Comments do
|
|
66
67
|
|
67
68
|
it "should return 404 with a message 'Not Found'" do
|
68
69
|
expect {
|
69
|
-
github.issues.comments user, repo, issue_id
|
70
|
+
github.issues.comments.list user, repo, issue_id
|
70
71
|
}.to raise_error(Github::Error::NotFound)
|
71
72
|
end
|
72
73
|
end
|
73
|
-
end #
|
74
|
+
end # list
|
74
75
|
|
75
|
-
describe "
|
76
|
-
|
77
|
-
it { github.issues.should respond_to :comment }
|
78
|
-
it { github.issues.should respond_to :issue_comment }
|
79
|
-
it { github.issues.should respond_to :get_comment }
|
76
|
+
describe "#get" do
|
77
|
+
it { github.issues.comments.should respond_to :find }
|
80
78
|
|
81
79
|
context "resource found" do
|
82
80
|
before do
|
@@ -85,22 +83,24 @@ describe Github::Issues::Comments do
|
|
85
83
|
end
|
86
84
|
|
87
85
|
it "should fail to get resource without comment id" do
|
88
|
-
expect {
|
86
|
+
expect {
|
87
|
+
github.issues.comments.get user, repo, nil
|
88
|
+
}.to raise_error(ArgumentError)
|
89
89
|
end
|
90
90
|
|
91
91
|
it "should get the resource" do
|
92
|
-
github.issues.
|
92
|
+
github.issues.comments.get user, repo, comment_id
|
93
93
|
a_get("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").should have_been_made
|
94
94
|
end
|
95
95
|
|
96
96
|
it "should get comment information" do
|
97
|
-
comment = github.issues.
|
97
|
+
comment = github.issues.comments.get user, repo, comment_id
|
98
98
|
comment.user.id.should == comment_id
|
99
99
|
comment.user.login.should == 'octocat'
|
100
100
|
end
|
101
101
|
|
102
102
|
it "should return mash" do
|
103
|
-
comment = github.issues.
|
103
|
+
comment = github.issues.comments.get user, repo, comment_id
|
104
104
|
comment.should be_a Hashie::Mash
|
105
105
|
end
|
106
106
|
end
|
@@ -108,136 +108,146 @@ describe Github::Issues::Comments do
|
|
108
108
|
context "resource not found" do
|
109
109
|
before do
|
110
110
|
stub_get("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
111
|
-
to_return(:body => fixture('issues/comment.json'),
|
111
|
+
to_return(:body => fixture('issues/comment.json'),
|
112
|
+
:status => 404,
|
113
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
112
114
|
end
|
113
115
|
|
114
116
|
it "should fail to retrive resource" do
|
115
117
|
expect {
|
116
|
-
github.issues.
|
118
|
+
github.issues.comments.get user, repo, comment_id
|
117
119
|
}.to raise_error(Github::Error::NotFound)
|
118
120
|
end
|
119
121
|
end
|
120
|
-
end #
|
122
|
+
end # get
|
121
123
|
|
122
|
-
describe "
|
124
|
+
describe "#create" do
|
123
125
|
let(:issue_id) { 1 }
|
124
126
|
let(:inputs) { { 'body' => 'a new comment' } }
|
125
127
|
|
126
|
-
it { github.issues.should respond_to :create_comment }
|
127
|
-
it { github.issues.should respond_to :create_issue_comment }
|
128
|
-
|
129
128
|
context "resouce created" do
|
130
129
|
before do
|
131
|
-
stub_post("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").
|
132
|
-
|
130
|
+
stub_post("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").
|
131
|
+
with(:body => inputs).
|
132
|
+
to_return(:body => fixture('issues/comment.json'),
|
133
|
+
:status => 201,
|
134
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
133
135
|
end
|
134
136
|
|
135
137
|
it "should fail to create resource if 'body' input is missing" do
|
136
138
|
expect {
|
137
|
-
github.issues.
|
139
|
+
github.issues.comments.create user, repo, issue_id, inputs.except('body')
|
138
140
|
}.to raise_error(Github::Error::RequiredParams)
|
139
141
|
end
|
140
142
|
|
141
143
|
it "should create resource successfully" do
|
142
|
-
github.issues.
|
143
|
-
a_post("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").
|
144
|
+
github.issues.comments.create user, repo, issue_id, inputs
|
145
|
+
a_post("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").
|
146
|
+
with(inputs).should have_been_made
|
144
147
|
end
|
145
148
|
|
146
149
|
it "should return the resource" do
|
147
|
-
comment = github.issues.
|
150
|
+
comment = github.issues.comments.create user, repo, issue_id, inputs
|
148
151
|
comment.should be_a Hashie::Mash
|
149
152
|
end
|
150
153
|
|
151
154
|
it "should get the comment information" do
|
152
|
-
comment = github.issues.
|
155
|
+
comment = github.issues.comments.create user, repo, issue_id, inputs
|
153
156
|
comment.user.login.should == 'octocat'
|
154
157
|
end
|
155
158
|
end
|
156
159
|
|
157
160
|
context "failed to create resource" do
|
158
161
|
before do
|
159
|
-
stub_post("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").
|
160
|
-
|
162
|
+
stub_post("/repos/#{user}/#{repo}/issues/#{issue_id}/comments").
|
163
|
+
with(inputs).
|
164
|
+
to_return(:body => fixture('issues/comment.json'),
|
165
|
+
:status => 404,
|
166
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
161
167
|
end
|
162
168
|
|
163
169
|
it "should fail to retrieve resource" do
|
164
170
|
expect {
|
165
|
-
github.issues.
|
171
|
+
github.issues.comments.create user, repo, issue_id, inputs
|
166
172
|
}.to raise_error(Github::Error::NotFound)
|
167
173
|
end
|
168
174
|
end
|
169
|
-
end #
|
175
|
+
end # create
|
170
176
|
|
171
177
|
describe "edit_comment" do
|
172
178
|
let(:comment_id) { 1 }
|
173
179
|
let(:inputs) { { 'body' => 'a new comment' } }
|
174
180
|
|
175
|
-
it { github.issues.should respond_to :edit_comment }
|
176
|
-
it { github.issues.should respond_to :edit_issue_comment }
|
177
|
-
|
178
181
|
context "resouce edited" do
|
179
182
|
before do
|
180
|
-
stub_patch("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
181
|
-
|
183
|
+
stub_patch("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
184
|
+
with(inputs).
|
185
|
+
to_return(:body => fixture('issues/comment.json'),
|
186
|
+
:status => 201,
|
187
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
182
188
|
end
|
183
189
|
|
184
190
|
it "should fail to create resource if 'body' input is missing" do
|
185
191
|
expect {
|
186
|
-
github.issues.
|
192
|
+
github.issues.comments.edit user, repo, comment_id, inputs.except('body')
|
187
193
|
}.to raise_error(Github::Error::RequiredParams)
|
188
194
|
end
|
189
195
|
|
190
196
|
it "should create resource successfully" do
|
191
|
-
github.issues.
|
192
|
-
a_patch("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
197
|
+
github.issues.comments.edit user, repo, comment_id, inputs
|
198
|
+
a_patch("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
199
|
+
with(inputs).should have_been_made
|
193
200
|
end
|
194
201
|
|
195
202
|
it "should return the resource" do
|
196
|
-
comment = github.issues.
|
203
|
+
comment = github.issues.comments.edit user, repo, comment_id, inputs
|
197
204
|
comment.should be_a Hashie::Mash
|
198
205
|
end
|
199
206
|
|
200
207
|
it "should get the comment information" do
|
201
|
-
comment = github.issues.
|
208
|
+
comment = github.issues.comments.edit user, repo, comment_id, inputs
|
202
209
|
comment.user.login.should == 'octocat'
|
203
210
|
end
|
204
211
|
end
|
205
212
|
|
206
213
|
context "failed to create resource" do
|
207
214
|
before do
|
208
|
-
stub_patch("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
209
|
-
|
215
|
+
stub_patch("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
216
|
+
with(inputs).
|
217
|
+
to_return(:body => fixture('issues/comment.json'),
|
218
|
+
:status => 404,
|
219
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
210
220
|
end
|
211
221
|
|
212
222
|
it "should fail to retrieve resource" do
|
213
223
|
expect {
|
214
|
-
github.issues.
|
224
|
+
github.issues.comments.edit user, repo, comment_id, inputs
|
215
225
|
}.to raise_error(Github::Error::NotFound)
|
216
226
|
end
|
217
227
|
end
|
218
|
-
end #
|
228
|
+
end # edit
|
219
229
|
|
220
|
-
describe "
|
230
|
+
describe "#delete" do
|
221
231
|
let(:comment_id) { 1 }
|
222
232
|
|
223
|
-
it { github.issues.should respond_to :delete_comment }
|
224
|
-
it { github.issues.should respond_to :delete_issue_comment }
|
225
|
-
|
226
233
|
context "resouce deleted" do
|
227
234
|
before do
|
228
235
|
stub_delete("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
229
|
-
to_return(:body => fixture('issues/comment.json'),
|
236
|
+
to_return(:body => fixture('issues/comment.json'),
|
237
|
+
:status => 204,
|
238
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
230
239
|
end
|
231
240
|
|
232
241
|
it "should fail to delete resource if comment_id is missing" do
|
233
242
|
expect {
|
234
|
-
github.issues.
|
243
|
+
github.issues.comments.delete user, repo, nil
|
235
244
|
}.to raise_error(ArgumentError)
|
236
245
|
end
|
237
246
|
|
238
247
|
it "should create resource successfully" do
|
239
|
-
github.issues.
|
240
|
-
a_delete("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
248
|
+
github.issues.comments.delete user, repo, comment_id
|
249
|
+
a_delete("/repos/#{user}/#{repo}/issues/comments/#{comment_id}").
|
250
|
+
should have_been_made
|
241
251
|
end
|
242
252
|
end
|
243
253
|
|
@@ -249,10 +259,10 @@ describe Github::Issues::Comments do
|
|
249
259
|
|
250
260
|
it "should fail to retrieve resource" do
|
251
261
|
expect {
|
252
|
-
github.issues.
|
262
|
+
github.issues.comments.delete user, repo, comment_id
|
253
263
|
}.to raise_error(Github::Error::NotFound)
|
254
264
|
end
|
255
265
|
end
|
256
|
-
end #
|
266
|
+
end # delete
|
257
267
|
|
258
268
|
end # Github::Issues::Comments
|