Commit e6cdfb607a3ac87d110d5d200b5900f531d1669e

Authored by Valeriy Sizov
1 parent 77bc1101

API: tests for merge_requests

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])
... ...
spec/requests/api/merge_requests_spec.rb 0 → 100644
... ... @@ -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
... ...