Commit e6cdfb607a3ac87d110d5d200b5900f531d1669e
1 parent
77bc1101
Exists in
master
and in
4 other branches
API: tests for merge_requests
Showing
3 changed files
with
72 additions
and
10 deletions
Show diff stats
doc/api/merge_requests.md
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | Get all MR for this project. |
4 | 4 | |
5 | 5 | ``` |
6 | -GET /:id/merge_requests | |
6 | +GET /projects/:id/merge_requests | |
7 | 7 | ``` |
8 | 8 | |
9 | 9 | Parameters: |
... | ... | @@ -43,7 +43,7 @@ Parameters: |
43 | 43 | Show information about MR. |
44 | 44 | |
45 | 45 | ``` |
46 | -GET /:id/merge_request/:merge_request_id | |
46 | +GET /projects/:id/merge_request/:merge_request_id | |
47 | 47 | ``` |
48 | 48 | |
49 | 49 | Parameters: |
... | ... | @@ -83,7 +83,7 @@ Parameters: |
83 | 83 | Create MR. |
84 | 84 | |
85 | 85 | ``` |
86 | -POST /:id/merge_requests | |
86 | +POST /projects/:id/merge_requests | |
87 | 87 | ``` |
88 | 88 | |
89 | 89 | Parameters: |
... | ... | @@ -125,7 +125,7 @@ Parameters: |
125 | 125 | Update MR. You can change branches, title, or even close the MR. |
126 | 126 | |
127 | 127 | ``` |
128 | -PUT /:id/merge_request/:merge_request_id | |
128 | +PUT /projects/:id/merge_request/:merge_request_id | |
129 | 129 | ``` |
130 | 130 | |
131 | 131 | Parameters: |
... | ... | @@ -169,7 +169,7 @@ Parameters: |
169 | 169 | Post comment to MR |
170 | 170 | |
171 | 171 | ``` |
172 | -POST /:id/merge_request/:merge_request_id/comments | |
172 | +POST /projects/:id/merge_request/:merge_request_id/comments | |
173 | 173 | ``` |
174 | 174 | |
175 | 175 | Parameters: | ... | ... |
lib/api/merge_requests.rb
... | ... | @@ -11,7 +11,7 @@ module Gitlab |
11 | 11 | # id (required) - The ID or code name of a project |
12 | 12 | # |
13 | 13 | # Example: |
14 | - # GET /:id/merge_requests | |
14 | + # GET /projects/:id/merge_requests | |
15 | 15 | # |
16 | 16 | get ":id/merge_requests" do |
17 | 17 | authorize! :read_merge_request, user_project |
... | ... | @@ -26,7 +26,7 @@ module Gitlab |
26 | 26 | # merge_request_id (required) - The ID of MR |
27 | 27 | # |
28 | 28 | # Example: |
29 | - # GET /:id/merge_request/:merge_request_id | |
29 | + # GET /projects/:id/merge_request/:merge_request_id | |
30 | 30 | # |
31 | 31 | get ":id/merge_request/:merge_request_id" do |
32 | 32 | merge_request = user_project.merge_requests.find(params[:merge_request_id]) |
... | ... | @@ -47,7 +47,7 @@ module Gitlab |
47 | 47 | # title (required) - Title of MR |
48 | 48 | # |
49 | 49 | # Example: |
50 | - # POST /:id/merge_requests | |
50 | + # POST /projects/:id/merge_requests | |
51 | 51 | # |
52 | 52 | post ":id/merge_requests" do |
53 | 53 | attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title] |
... | ... | @@ -75,7 +75,7 @@ module Gitlab |
75 | 75 | # title - Title of MR |
76 | 76 | # closed - Status of MR. true - closed |
77 | 77 | # Example: |
78 | - # PUT /:id/merge_request/:merge_request_id | |
78 | + # PUT /projects/:id/merge_request/:merge_request_id | |
79 | 79 | # |
80 | 80 | put ":id/merge_request/:merge_request_id" do |
81 | 81 | attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title, :closed] |
... | ... | @@ -99,7 +99,7 @@ module Gitlab |
99 | 99 | # merge_request_id (required) - ID of MR |
100 | 100 | # note (required) - Text of comment |
101 | 101 | # Examples: |
102 | - # POST /:id/merge_request/:merge_request_id/comments | |
102 | + # POST /projects/:id/merge_request/:merge_request_id/comments | |
103 | 103 | # |
104 | 104 | post ":id/merge_request/:merge_request_id/comments" do |
105 | 105 | merge_request = user_project.merge_requests.find(params[:merge_request_id]) | ... | ... |
... | ... | @@ -0,0 +1,62 @@ |
1 | +require "spec_helper" | |
2 | + | |
3 | +describe Gitlab::API do | |
4 | + include ApiHelpers | |
5 | + | |
6 | + let(:user) { Factory :user } | |
7 | + let!(:project) { Factory :project, owner: user } | |
8 | + let!(:merge_request) { Factory :merge_request, author: user, assignee: user, project: project, title: "Test" } | |
9 | + before { project.add_access(user, :read) } | |
10 | + | |
11 | + describe "GET /projects/:id/merge_requests" do | |
12 | + context "when unauthenticated" do | |
13 | + it "should return authentication error" do | |
14 | + get api("/projects/#{project.id}/merge_requests") | |
15 | + response.status.should == 401 | |
16 | + end | |
17 | + end | |
18 | + | |
19 | + context "when authenticated" do | |
20 | + it "should return an array of merge_requests" do | |
21 | + get api("/projects/#{project.id}/merge_requests", user) | |
22 | + response.status.should == 200 | |
23 | + json_response.should be_an Array | |
24 | + json_response.first['title'].should == merge_request.title | |
25 | + end | |
26 | + end | |
27 | + end | |
28 | + | |
29 | + describe "GET /projects/:id/merge_request/:merge_request_id" do | |
30 | + it "should return merge_request" do | |
31 | + get api("/projects/#{project.id}/merge_request/#{merge_request.id}", user) | |
32 | + response.status.should == 200 | |
33 | + json_response['title'].should == merge_request.title | |
34 | + end | |
35 | + end | |
36 | + | |
37 | + describe "POST /projects/:id/merge_requests" do | |
38 | + it "should return merge_request" do | |
39 | + post api("/projects/#{project.id}/merge_requests", user), | |
40 | + title: 'Test merge_request', source_branch: "stable", target_branch: "master", author: user | |
41 | + response.status.should == 201 | |
42 | + json_response['title'].should == 'Test merge_request' | |
43 | + end | |
44 | + end | |
45 | + | |
46 | + describe "PUT /projects/:id/merge_request/:merge_request_id" do | |
47 | + it "should return merge_request" do | |
48 | + put api("/projects/#{project.id}/merge_request/#{merge_request.id}", user), title: "New title" | |
49 | + response.status.should == 200 | |
50 | + json_response['title'].should == 'New title' | |
51 | + end | |
52 | + end | |
53 | + | |
54 | + describe "POST /projects/:id/merge_request/:merge_request_id/comments" do | |
55 | + it "should return comment" do | |
56 | + post api("/projects/#{project.id}/merge_request/#{merge_request.id}/comments", user), note: "My comment" | |
57 | + response.status.should == 201 | |
58 | + json_response['note'].should == 'My comment' | |
59 | + end | |
60 | + end | |
61 | + | |
62 | +end | ... | ... |