Commit c7e00aca2d68a15c901506f1af4242df92670b6a
1 parent
10ee137e
Exists in
spb-stable
and in
2 other branches
Better specs for Compare API
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
2 changed files
with
28 additions
and
10 deletions
Show diff stats
lib/api/entities.rb
... | ... | @@ -202,7 +202,9 @@ module API |
202 | 202 | |
203 | 203 | class Compare < Grape::Entity |
204 | 204 | expose :commit, using: Entities::RepoCommit do |compare, options| |
205 | - Commit.new compare.commit | |
205 | + if compare.commit | |
206 | + Commit.new compare.commit | |
207 | + end | |
206 | 208 | end |
207 | 209 | expose :commits, using: Entities::RepoCommit do |compare, options| |
208 | 210 | Commit.decorate compare.commits | ... | ... |
spec/requests/api/repositories_spec.rb
... | ... | @@ -114,25 +114,41 @@ describe API::API, api: true do |
114 | 114 | end |
115 | 115 | |
116 | 116 | describe 'GET /GET /projects/:id/repository/compare' do |
117 | - it "should compare 2 branches" do | |
117 | + it "should compare branches" do | |
118 | 118 | get api("/projects/#{project.id}/repository/compare", user), from: 'master', to: 'simple_merge_request' |
119 | 119 | response.status.should == 200 |
120 | - json_response['commits'].size.should == 3 | |
121 | - json_response['diffs'].size.should == 1 | |
120 | + json_response['commits'].should be_present | |
121 | + json_response['diffs'].should be_present | |
122 | 122 | end |
123 | 123 | |
124 | - it "should compare 2 commits" do | |
124 | + it "should compare tags" do | |
125 | + get api("/projects/#{project.id}/repository/compare", user), from: 'v1.0.1', to: 'v1.0.2' | |
126 | + response.status.should == 200 | |
127 | + json_response['commits'].should be_present | |
128 | + json_response['diffs'].should be_present | |
129 | + end | |
130 | + | |
131 | + it "should compare commits" do | |
125 | 132 | get api("/projects/#{project.id}/repository/compare", user), from: 'b1e6a9dbf1c85', to: '1e689bfba395' |
126 | 133 | response.status.should == 200 |
127 | - json_response['commits'].size.should == 0 | |
128 | - json_response['diffs'].size.should == 0 | |
134 | + json_response['commits'].should be_empty | |
135 | + json_response['diffs'].should be_empty | |
136 | + json_response['compare_same_ref'].should be_false | |
129 | 137 | end |
130 | 138 | |
131 | - it "should compare 2 commits" do | |
139 | + it "should compare commits in reverse order" do | |
132 | 140 | get api("/projects/#{project.id}/repository/compare", user), from: '1e689bfba395', to: 'b1e6a9dbf1c85' |
133 | 141 | response.status.should == 200 |
134 | - json_response['commits'].size.should == 4 | |
135 | - json_response['diffs'].size.should == 9 | |
142 | + json_response['commits'].should be_present | |
143 | + json_response['diffs'].should be_present | |
144 | + end | |
145 | + | |
146 | + it "should compare same refs" do | |
147 | + get api("/projects/#{project.id}/repository/compare", user), from: 'master', to: 'master' | |
148 | + response.status.should == 200 | |
149 | + json_response['commits'].should be_empty | |
150 | + json_response['diffs'].should be_empty | |
151 | + json_response['compare_same_ref'].should be_true | |
136 | 152 | end |
137 | 153 | end |
138 | 154 | end | ... | ... |