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.
		
		
		
		
		
			
		
			
				
					
					
						
							81 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
	
	
							81 lines
						
					
					
						
							2.4 KiB
						
					
					
				| require 'spec_helper'
 | |
| 
 | |
| describe Gitlab::CLI do
 | |
|   describe ".run" do
 | |
|     context "when command is version" do
 | |
|       it "should show gem version" do
 | |
|         output = capture_output { Gitlab::CLI.run('-v') }
 | |
|         expect(output).to eq("Gitlab Ruby Gem #{Gitlab::VERSION}\n")
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context "when command is info" do
 | |
|       it "should show environment info" do
 | |
|         output = capture_output { Gitlab::CLI.run('info') }
 | |
|         expect(output).to include("Gitlab endpoint is")
 | |
|         expect(output).to include("Gitlab private token is")
 | |
|         expect(output).to include("Ruby Version is")
 | |
|         expect(output).to include("Gitlab Ruby Gem")
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context "when command is help" do
 | |
|       it "should show available actions" do
 | |
|         output = capture_output { Gitlab::CLI.run('help') }
 | |
|         expect(output).to include('Available commands')
 | |
|         expect(output).to include('MergeRequests')
 | |
|         expect(output).to include('team_members')
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context "when command is user" do
 | |
|       before do
 | |
|         stub_get("/user", "user")
 | |
|         @output = capture_output { Gitlab::CLI.run('user') }
 | |
|       end
 | |
| 
 | |
|       it "should show executed command" do
 | |
|         expect(@output).to include('Gitlab.user')
 | |
|       end
 | |
| 
 | |
|       it "should show user data" do
 | |
|         expect(@output).to include('name')
 | |
|         expect(@output).to include('John Smith')
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe ".start" do
 | |
|     context "when command with excluded fields" do
 | |
|       before do
 | |
|         stub_get("/user", "user")
 | |
|         args = ['user', '--except=id,email,name']
 | |
|         @output = capture_output { Gitlab::CLI.start(args) }
 | |
|       end
 | |
| 
 | |
|       it "should show user data with excluded fields" do
 | |
|         expect(@output).to_not include('John Smith')
 | |
|         expect(@output).to include('bio')
 | |
|         expect(@output).to include('created_at')
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context "when command with required fields" do
 | |
|       before do
 | |
|         stub_get("/user", "user")
 | |
|         args = ['user', '--only=id,email,name']
 | |
|         @output = capture_output { Gitlab::CLI.start(args) }
 | |
|       end
 | |
| 
 | |
|       it "should show user data with required fields" do
 | |
|         expect(@output).to include('id')
 | |
|         expect(@output).to include('name')
 | |
|         expect(@output).to include('email')
 | |
|         expect(@output).to include('John Smith')
 | |
|         expect(@output).to_not include('bio')
 | |
|         expect(@output).to_not include('created_at')
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |