Commit e6cdfb607a3ac87d110d5d200b5900f531d1669e

Authored by Valeriy Sizov
1 parent 77bc1101

API: tests for merge_requests

doc/api/merge_requests.md
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 Get all MR for this project. 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 Parameters: 9 Parameters:
@@ -43,7 +43,7 @@ Parameters: @@ -43,7 +43,7 @@ Parameters:
43 Show information about MR. 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 Parameters: 49 Parameters:
@@ -83,7 +83,7 @@ Parameters: @@ -83,7 +83,7 @@ Parameters:
83 Create MR. 83 Create MR.
84 84
85 ``` 85 ```
86 -POST /:id/merge_requests 86 +POST /projects/:id/merge_requests
87 ``` 87 ```
88 88
89 Parameters: 89 Parameters:
@@ -125,7 +125,7 @@ Parameters: @@ -125,7 +125,7 @@ Parameters:
125 Update MR. You can change branches, title, or even close the MR. 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 Parameters: 131 Parameters:
@@ -169,7 +169,7 @@ Parameters: @@ -169,7 +169,7 @@ Parameters:
169 Post comment to MR 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 Parameters: 175 Parameters:
lib/api/merge_requests.rb
@@ -11,7 +11,7 @@ module Gitlab @@ -11,7 +11,7 @@ module Gitlab
11 # id (required) - The ID or code name of a project 11 # id (required) - The ID or code name of a project
12 # 12 #
13 # Example: 13 # Example:
14 - # GET /:id/merge_requests 14 + # GET /projects/:id/merge_requests
15 # 15 #
16 get ":id/merge_requests" do 16 get ":id/merge_requests" do
17 authorize! :read_merge_request, user_project 17 authorize! :read_merge_request, user_project
@@ -26,7 +26,7 @@ module Gitlab @@ -26,7 +26,7 @@ module Gitlab
26 # merge_request_id (required) - The ID of MR 26 # merge_request_id (required) - The ID of MR
27 # 27 #
28 # Example: 28 # Example:
29 - # GET /:id/merge_request/:merge_request_id 29 + # GET /projects/:id/merge_request/:merge_request_id
30 # 30 #
31 get ":id/merge_request/:merge_request_id" do 31 get ":id/merge_request/:merge_request_id" do
32 merge_request = user_project.merge_requests.find(params[:merge_request_id]) 32 merge_request = user_project.merge_requests.find(params[:merge_request_id])
@@ -47,7 +47,7 @@ module Gitlab @@ -47,7 +47,7 @@ module Gitlab
47 # title (required) - Title of MR 47 # title (required) - Title of MR
48 # 48 #
49 # Example: 49 # Example:
50 - # POST /:id/merge_requests 50 + # POST /projects/:id/merge_requests
51 # 51 #
52 post ":id/merge_requests" do 52 post ":id/merge_requests" do
53 attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title] 53 attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title]
@@ -75,7 +75,7 @@ module Gitlab @@ -75,7 +75,7 @@ module Gitlab
75 # title - Title of MR 75 # title - Title of MR
76 # closed - Status of MR. true - closed 76 # closed - Status of MR. true - closed
77 # Example: 77 # Example:
78 - # PUT /:id/merge_request/:merge_request_id 78 + # PUT /projects/:id/merge_request/:merge_request_id
79 # 79 #
80 put ":id/merge_request/:merge_request_id" do 80 put ":id/merge_request/:merge_request_id" do
81 attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title, :closed] 81 attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title, :closed]
@@ -99,7 +99,7 @@ module Gitlab @@ -99,7 +99,7 @@ module Gitlab
99 # merge_request_id (required) - ID of MR 99 # merge_request_id (required) - ID of MR
100 # note (required) - Text of comment 100 # note (required) - Text of comment
101 # Examples: 101 # Examples:
102 - # POST /:id/merge_request/:merge_request_id/comments 102 + # POST /projects/:id/merge_request/:merge_request_id/comments
103 # 103 #
104 post ":id/merge_request/:merge_request_id/comments" do 104 post ":id/merge_request/:merge_request_id/comments" do
105 merge_request = user_project.merge_requests.find(params[:merge_request_id]) 105 merge_request = user_project.merge_requests.find(params[:merge_request_id])
spec/requests/api/merge_requests_spec.rb 0 → 100644
@@ -0,0 +1,62 @@ @@ -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