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