You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							125 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							125 lines
						
					
					
						
							4.2 KiB
						
					
					
				| require 'spec_helper'
 | |
| 
 | |
| describe Gitlab::Client do
 | |
|   describe ".merge_requests" do
 | |
|     before do
 | |
|       stub_get("/projects/3/merge_requests", "merge_requests")
 | |
|       @merge_requests = Gitlab.merge_requests(3)
 | |
|     end
 | |
| 
 | |
|     it "should get the correct resource" do
 | |
|       expect(a_get("/projects/3/merge_requests")).to have_been_made
 | |
|     end
 | |
| 
 | |
|     it "should return an array of project's merge requests" do
 | |
|       expect(@merge_requests).to be_an Array
 | |
|       expect(@merge_requests.first.project_id).to eq(3)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe ".merge_request" do
 | |
|     before do
 | |
|       stub_get("/projects/3/merge_request/1", "merge_request")
 | |
|       @merge_request = Gitlab.merge_request(3, 1)
 | |
|     end
 | |
| 
 | |
|     it "should get the correct resource" do
 | |
|       expect(a_get("/projects/3/merge_request/1")).to have_been_made
 | |
|     end
 | |
| 
 | |
|     it "should return information about a merge request" do
 | |
|       expect(@merge_request.project_id).to eq(3)
 | |
|       expect(@merge_request.assignee.name).to eq("Jack Smith")
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe ".create_merge_request" do
 | |
|     before do
 | |
|       stub_post("/projects/3/merge_requests", "create_merge_request")
 | |
|     end
 | |
| 
 | |
|     it "should fail if it doesn't have a source_branch" do
 | |
|       expect {
 | |
|         Gitlab.create_merge_request(3, 'New merge request', :target_branch => 'master')
 | |
|       }.to raise_error Gitlab::Error::MissingAttributes
 | |
|     end
 | |
| 
 | |
|     it "should fail if it doesn't have a target_branch" do
 | |
|       expect {
 | |
|         Gitlab.create_merge_request(3, 'New merge request', :source_branch => 'dev')
 | |
|       }.to raise_error Gitlab::Error::MissingAttributes
 | |
|     end
 | |
| 
 | |
|     it "should return information about a merge request" do
 | |
|       @merge_request = Gitlab.create_merge_request(3, 'New feature',
 | |
|         :source_branch => 'api',
 | |
|         :target_branch => 'master'
 | |
|       )
 | |
|       expect(@merge_request.project_id).to eq(3)
 | |
|       expect(@merge_request.assignee.name).to eq("Jack Smith")
 | |
|       expect(@merge_request.title).to eq('New feature')
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe ".update_merge_request" do
 | |
|     before do
 | |
|       stub_put("/projects/3/merge_request/2", "update_merge_request")
 | |
|       @merge_request = Gitlab.update_merge_request(3, 2,
 | |
|         :assignee_id   => '1',
 | |
|         :target_branch => 'master',
 | |
|         :title         => 'A different new feature'
 | |
|       )
 | |
|     end
 | |
| 
 | |
|     it "should return information about a merge request" do
 | |
|       expect(@merge_request.project_id).to eq(3)
 | |
|       expect(@merge_request.assignee.name).to eq("Jack Smith")
 | |
|       expect(@merge_request.title).to eq('A different new feature')
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe ".merge_request_comments" do
 | |
|     before do
 | |
|       stub_get("/projects/3/merge_request/2/comments", "merge_request_comments")
 | |
|       @merge_request = Gitlab.merge_request_comments(3, 2)
 | |
|     end
 | |
| 
 | |
|     it "should return merge request's comments" do
 | |
|       expect(@merge_request).to be_an Array
 | |
|       expect(@merge_request.length).to eq(2)
 | |
|       expect(@merge_request[0].note).to eq("this is the 1st comment on the 2merge merge request")
 | |
|       expect(@merge_request[0].author.id).to eq(11)
 | |
|       expect(@merge_request[1].note).to eq("another discussion point on the 2merge request")
 | |
|       expect(@merge_request[1].author.id).to eq(12)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe ".merge_request_comments" do
 | |
|     before do
 | |
|       stub_get("/projects/3/merge_request/2/comments", "merge_request_comments")
 | |
|       @merge_request = Gitlab.merge_request_comments(3, 2)
 | |
|     end
 | |
| 
 | |
|     it "should return merge request's comments" do
 | |
|       expect(@merge_request).to be_an Array
 | |
|       expect(@merge_request.length).to eq(2)
 | |
|       expect(@merge_request[0].note).to eq("this is the 1st comment on the 2merge merge request")
 | |
|       expect(@merge_request[0].author.id).to eq(11)
 | |
|       expect(@merge_request[1].note).to eq("another discussion point on the 2merge request")
 | |
|       expect(@merge_request[1].author.id).to eq(12)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe ".create_merge_request_comment" do
 | |
|     before do
 | |
|       stub_post("/projects/3/merge_request/2/comments", "comment_merge_request")
 | |
|     end
 | |
| 
 | |
|     it "should return information about a merge request" do
 | |
|       @merge_request = Gitlab.create_merge_request_comment(3, 2, 'Cool Merge Request!')
 | |
|       expect(@merge_request.note).to eq('Cool Merge Request!')
 | |
|       @merge_request.author.id == 1
 | |
|     end
 | |
|   end
 | |
| end
 |