gitlab 4.2.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.rubocop.yml +33 -0
- data/.travis.yml +8 -3
- data/README.md +7 -7
- data/Rakefile +11 -3
- data/gitlab.gemspec +11 -11
- data/lib/gitlab.rb +2 -2
- data/lib/gitlab/api.rb +2 -1
- data/lib/gitlab/cli.rb +2 -6
- data/lib/gitlab/cli_helpers.rb +18 -20
- data/lib/gitlab/client.rb +8 -5
- data/lib/gitlab/client/branches.rb +4 -4
- data/lib/gitlab/client/build_variables.rb +64 -2
- data/lib/gitlab/client/deployments.rb +32 -0
- data/lib/gitlab/client/groups.rb +49 -0
- data/lib/gitlab/client/issues.rb +71 -0
- data/lib/gitlab/client/merge_requests.rb +1 -0
- data/lib/gitlab/client/pipeline_schedules.rb +133 -0
- data/lib/gitlab/client/pipeline_triggers.rb +2 -2
- data/lib/gitlab/client/projects.rb +1 -1
- data/lib/gitlab/client/repository_files.rb +2 -2
- data/lib/gitlab/client/users.rb +5 -5
- data/lib/gitlab/configuration.rb +2 -2
- data/lib/gitlab/error.rb +10 -2
- data/lib/gitlab/file_response.rb +1 -1
- data/lib/gitlab/help.rb +5 -6
- data/lib/gitlab/page_links.rb +2 -2
- data/lib/gitlab/request.rb +34 -50
- data/lib/gitlab/shell.rb +5 -8
- data/lib/gitlab/version.rb +1 -1
- data/spec/fixtures/deployment.json +57 -0
- data/spec/fixtures/deployments.json +116 -0
- data/spec/fixtures/group_edit.json +14 -0
- data/spec/fixtures/group_subgroups.json +16 -0
- data/spec/fixtures/pipeline_schedule.json +32 -0
- data/spec/fixtures/pipeline_schedule_create.json +21 -0
- data/spec/fixtures/pipeline_schedule_update.json +26 -0
- data/spec/fixtures/pipeline_schedule_variable.json +5 -0
- data/spec/fixtures/pipeline_schedule_variable_update.json +5 -0
- data/spec/fixtures/pipeline_schedules.json +22 -0
- data/spec/gitlab/api_spec.rb +11 -0
- data/spec/gitlab/cli_helpers_spec.rb +14 -15
- data/spec/gitlab/cli_spec.rb +11 -11
- data/spec/gitlab/client/award_emojis_spec.rb +55 -55
- data/spec/gitlab/client/boards_spec.rb +12 -12
- data/spec/gitlab/client/branches_spec.rb +22 -22
- data/spec/gitlab/client/build_variables_spec.rb +93 -10
- data/spec/gitlab/client/builds_spec.rb +36 -36
- data/spec/gitlab/client/commits_spec.rb +21 -21
- data/spec/gitlab/client/deployments_spec.rb +38 -0
- data/spec/gitlab/client/environments_spec.rb +18 -18
- data/spec/gitlab/client/groups_spec.rb +73 -22
- data/spec/gitlab/client/issues_spec.rb +121 -22
- data/spec/gitlab/client/jobs_spec.rb +13 -13
- data/spec/gitlab/client/keys_spec.rb +2 -2
- data/spec/gitlab/client/labels_spec.rb +12 -12
- data/spec/gitlab/client/merge_requests_spec.rb +23 -23
- data/spec/gitlab/client/milestones_spec.rb +12 -12
- data/spec/gitlab/client/namespaces_spec.rb +3 -3
- data/spec/gitlab/client/notes_spec.rb +40 -40
- data/spec/gitlab/client/pipeline_schedules_spec.rb +158 -0
- data/spec/gitlab/client/pipeline_triggers_spec.rb +17 -17
- data/spec/gitlab/client/pipelines_spec.rb +22 -22
- data/spec/gitlab/client/projects_spec.rb +75 -75
- data/spec/gitlab/client/repositories_spec.rb +16 -16
- data/spec/gitlab/client/repository_files_spec.rb +10 -10
- data/spec/gitlab/client/runners_spec.rb +20 -22
- data/spec/gitlab/client/services_spec.rb +6 -6
- data/spec/gitlab/client/snippets_spec.rb +12 -12
- data/spec/gitlab/client/system_hooks_spec.rb +12 -12
- data/spec/gitlab/client/tags_spec.rb +19 -20
- data/spec/gitlab/client/todos_spec.rb +12 -12
- data/spec/gitlab/client/users_spec.rb +49 -49
- data/spec/gitlab/error_spec.rb +50 -23
- data/spec/gitlab/file_response_spec.rb +6 -6
- data/spec/gitlab/help_spec.rb +5 -5
- data/spec/gitlab/objectified_hash_spec.rb +8 -8
- data/spec/gitlab/page_links_spec.rb +1 -1
- data/spec/gitlab/paginated_response_spec.rb +4 -4
- data/spec/gitlab/request_spec.rb +19 -19
- data/spec/gitlab/shell_spec.rb +12 -12
- data/spec/gitlab_spec.rb +13 -14
- data/spec/spec_helper.rb +10 -45
- metadata +46 -3
data/spec/gitlab/error_spec.rb
CHANGED
@@ -1,45 +1,72 @@
|
|
1
1
|
require "spec_helper"
|
2
|
+
require "stringio"
|
2
3
|
|
3
4
|
describe Gitlab::Error do
|
4
|
-
|
5
|
-
|
5
|
+
let(:request_object) { HTTParty::Request.new(Net::HTTP::Get, '/') }
|
6
|
+
let(:response_object) { Net::HTTPOK.new('1.1', 200, 'OK') }
|
7
|
+
let(:body) { StringIO.new("{foo:'bar'}") }
|
8
|
+
let(:parsed_response) { -> { body } }
|
6
9
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
let(:response) do
|
11
|
+
HTTParty::Response.new(
|
12
|
+
request_object,
|
13
|
+
response_object,
|
14
|
+
parsed_response,
|
15
|
+
body: body
|
16
|
+
)
|
17
|
+
end
|
12
18
|
|
13
|
-
|
14
|
-
|
15
|
-
response_object['content-length'] = "1024"
|
19
|
+
let(:error) { Gitlab::Error::ResponseError.new(response) }
|
20
|
+
let(:date) { Date.new(2010, 1, 15).to_s }
|
16
21
|
|
17
|
-
|
18
|
-
|
22
|
+
before do
|
23
|
+
def body.message
|
24
|
+
string
|
25
|
+
end
|
26
|
+
|
27
|
+
response_object['last-modified'] = date
|
28
|
+
response_object['content-length'] = "1024"
|
29
|
+
end
|
19
30
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
31
|
+
describe "#handle_message" do
|
32
|
+
let(:array) { Array.new(['First message.', 'Second message.']) }
|
33
|
+
let(:obj_h) do
|
34
|
+
Gitlab::ObjectifiedHash.new(
|
35
|
+
user: ['not set'],
|
36
|
+
password: ['too short'],
|
37
|
+
embed_entity: { foo: ['bar'], sna: ['fu'] }
|
38
|
+
)
|
24
39
|
end
|
25
40
|
|
26
41
|
context "when passed an ObjectifiedHash" do
|
27
|
-
it "
|
28
|
-
expect(
|
42
|
+
it "returns a joined string of error messages sorted by key" do
|
43
|
+
expect(error.send(:handle_message, obj_h)).
|
44
|
+
to eq(
|
45
|
+
"'embed_entity' (foo: bar) (sna: fu), 'password' too short, 'user' not set"
|
46
|
+
)
|
29
47
|
end
|
30
48
|
end
|
31
49
|
|
32
50
|
context "when passed an Array" do
|
33
|
-
it "
|
34
|
-
expect(
|
51
|
+
it "returns a joined string of messages" do
|
52
|
+
expect(error.send(:handle_message, array)).
|
53
|
+
to eq("First message. Second message.")
|
35
54
|
end
|
36
55
|
end
|
37
56
|
|
38
57
|
context "when passed a String" do
|
39
|
-
it "
|
40
|
-
|
41
|
-
|
58
|
+
it "returns the String untouched" do
|
59
|
+
error_str = 'this is an error string'
|
60
|
+
|
61
|
+
expect(error.send(:handle_message, error_str)).
|
62
|
+
to eq(error_str)
|
42
63
|
end
|
43
64
|
end
|
44
65
|
end
|
66
|
+
|
67
|
+
describe "#response_message" do
|
68
|
+
it "returns the message of the parsed_response" do
|
69
|
+
expect(error.response_message).to eq(body.string)
|
70
|
+
end
|
71
|
+
end
|
45
72
|
end
|
@@ -6,26 +6,26 @@ describe Gitlab::FileResponse do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
context '.empty?' do
|
9
|
-
it "
|
9
|
+
it "returns false" do
|
10
10
|
expect(@file_response.empty?).to be false
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context '.to_hash' do
|
15
|
-
it "
|
15
|
+
it "has `filename` key and `data` key" do
|
16
16
|
h = @file_response.to_hash
|
17
|
-
expect(h.
|
18
|
-
expect(h.
|
17
|
+
expect(h.key?(:filename)).to be_truthy
|
18
|
+
expect(h.key?(:data)).to be_truthy
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
context '.parse_headers!' do
|
23
|
-
it "
|
23
|
+
it "parses headers" do
|
24
24
|
@file_response.parse_headers!('Content-Disposition' => 'attachment; filename=artifacts.zip')
|
25
25
|
expect(@file_response.filename).to eq "artifacts.zip"
|
26
26
|
end
|
27
27
|
|
28
|
-
it "
|
28
|
+
it "handles quoted filenames" do
|
29
29
|
@file_response.parse_headers!('Content-Disposition' => 'attachment; filename="artifacts.zip"')
|
30
30
|
expect(@file_response.filename).to eq "artifacts.zip"
|
31
31
|
end
|
data/spec/gitlab/help_spec.rb
CHANGED
@@ -3,14 +3,14 @@ require 'spec_helper'
|
|
3
3
|
describe Gitlab::Help do
|
4
4
|
describe ".ri_cmd" do
|
5
5
|
context "ri command found" do
|
6
|
-
it "
|
6
|
+
it "returns the path to RI" do
|
7
7
|
allow(Gitlab::Help).to receive(:`).with(/which ri/).and_return('/usr/bin/ri')
|
8
8
|
expect(Gitlab::Help.ri_cmd).to eq('/usr/bin/ri')
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
context "ri command NOT found" do
|
13
|
-
it "
|
13
|
+
it "raises RuntimeError" do
|
14
14
|
allow(Gitlab::Help).to receive(:`).with(/which ri/).and_return('')
|
15
15
|
expect { Gitlab::Help.ri_cmd }.to raise_error RuntimeError
|
16
16
|
end
|
@@ -23,11 +23,11 @@ describe Gitlab::Help do
|
|
23
23
|
@help_output = "Gitlab.#{@cmd}(4, 'new-branch', 'master')"
|
24
24
|
@help_output_with_options = "Gitlab.groups({ per_page: 3 })"
|
25
25
|
end
|
26
|
-
it "
|
26
|
+
it "returns a String of modified output" do
|
27
27
|
Gitlab::Help.change_help_output! @cmd, @help_output
|
28
28
|
expect(@help_output).to eq("Gitlab.create_branch 4 'new-branch' 'master'")
|
29
29
|
end
|
30
|
-
it "
|
30
|
+
it "formats options hash and return a String of modified output" do
|
31
31
|
Gitlab::Help.change_help_output! 'groups', @help_output_with_options
|
32
32
|
expect(@help_output_with_options).to eq("Gitlab.groups \"{ per_page: 3 }\"")
|
33
33
|
end
|
@@ -38,7 +38,7 @@ describe Gitlab::Help do
|
|
38
38
|
@cmd = 'create_tag'
|
39
39
|
@namespace = Gitlab::Help.namespace @cmd
|
40
40
|
end
|
41
|
-
it "
|
41
|
+
it "returns the full namespace for a command" do
|
42
42
|
expect(@namespace).to be_a String
|
43
43
|
expect(@namespace).to eq("Gitlab::Client::Tags.#{@cmd}")
|
44
44
|
end
|
@@ -6,42 +6,42 @@ describe Gitlab::ObjectifiedHash do
|
|
6
6
|
@oh = Gitlab::ObjectifiedHash.new @hash
|
7
7
|
end
|
8
8
|
|
9
|
-
it "
|
9
|
+
it "objectifies a hash" do
|
10
10
|
expect(@oh.a).to eq(@hash[:a])
|
11
11
|
expect(@oh.b).to eq(@hash[:b])
|
12
12
|
end
|
13
13
|
|
14
14
|
describe "#to_hash" do
|
15
|
-
it "
|
15
|
+
it "returns an original hash" do
|
16
16
|
expect(@oh.to_hash).to eq(@hash)
|
17
17
|
end
|
18
18
|
|
19
|
-
it "
|
19
|
+
it "has an alias #to_h" do
|
20
20
|
expect(@oh.respond_to?(:to_h)).to be_truthy
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
describe "#inspect" do
|
25
|
-
it "
|
25
|
+
it "returns a formatted string" do
|
26
26
|
pretty_string = "#<#{@oh.class.name}:#{@oh.object_id} {hash: #{@hash}}"
|
27
27
|
expect(@oh.inspect).to eq(pretty_string)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
describe "#respond_to" do
|
32
|
-
it "
|
32
|
+
it "returns true for methods this object responds to through method_missing as sym" do
|
33
33
|
expect(@oh.respond_to?(:a)).to be_truthy
|
34
34
|
end
|
35
35
|
|
36
|
-
it "
|
36
|
+
it "returns true for methods this object responds to through method_missing as string" do
|
37
37
|
expect(@oh.respond_to?('string')).to be_truthy
|
38
38
|
end
|
39
39
|
|
40
|
-
it "
|
40
|
+
it "does not care if you use a string or symbol to reference a method" do
|
41
41
|
expect(@oh.respond_to?(:string)).to be_truthy
|
42
42
|
end
|
43
43
|
|
44
|
-
it "
|
44
|
+
it "does not care if you use a string or symbol to reference a method" do
|
45
45
|
expect(@oh.respond_to?('symbol')).to be_truthy
|
46
46
|
end
|
47
47
|
end
|
@@ -6,7 +6,7 @@ describe Gitlab::PageLinks do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
context '.extract_links' do
|
9
|
-
it '
|
9
|
+
it 'extracts link header appropriately' do
|
10
10
|
expect(@page_links.last).to eql 'http://example.com/api/v3/projects?page=20&per_page=5'
|
11
11
|
expect(@page_links.first).to eql 'http://example.com/api/v3/projects?page=1&per_page=5'
|
12
12
|
expect(@page_links.next).to eql 'http://example.com/api/v3/projects?page=9&per_page=5'
|
@@ -6,7 +6,7 @@ describe Gitlab::PaginatedResponse do
|
|
6
6
|
@paginated_response = Gitlab::PaginatedResponse.new array
|
7
7
|
end
|
8
8
|
|
9
|
-
it "
|
9
|
+
it "responds to *_page and has_*_page methods" do
|
10
10
|
expect(@paginated_response).to respond_to :first_page
|
11
11
|
expect(@paginated_response).to respond_to :last_page
|
12
12
|
expect(@paginated_response).to respond_to :next_page
|
@@ -18,7 +18,7 @@ describe Gitlab::PaginatedResponse do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
context '.parse_headers!' do
|
21
|
-
it "
|
21
|
+
it "parses headers" do
|
22
22
|
@paginated_response.parse_headers!('Link' => "<http://example.com/api/v3/projects?page=1&per_page=5>; rel=\"first\", <http://example.com/api/v3/projects?page=20&per_page=5>; rel=\"last\"")
|
23
23
|
client = @paginated_response.client = double('client')
|
24
24
|
first_page_response = double('first_page_response')
|
@@ -38,7 +38,7 @@ describe Gitlab::PaginatedResponse do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
context '.each_page' do
|
41
|
-
it "
|
41
|
+
it "iterates pages" do
|
42
42
|
next_page = double('next_page')
|
43
43
|
allow(@paginated_response).to receive(:has_next_page?).and_return(true)
|
44
44
|
allow(@paginated_response).to receive(:next_page).and_return(next_page)
|
@@ -48,7 +48,7 @@ describe Gitlab::PaginatedResponse do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
context '.auto_paginate' do
|
51
|
-
it "
|
51
|
+
it "returns an array if block is not given" do
|
52
52
|
next_page = double('next_page')
|
53
53
|
allow(@paginated_response).to receive(:has_next_page?).and_return(true)
|
54
54
|
allow(@paginated_response).to receive(:next_page).and_return(next_page)
|
data/spec/gitlab/request_spec.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Gitlab::Request do
|
4
|
-
it {
|
5
|
-
it {
|
6
|
-
it {
|
7
|
-
it {
|
4
|
+
it { is_expected.to respond_to :get }
|
5
|
+
it { is_expected.to respond_to :post }
|
6
|
+
it { is_expected.to respond_to :put }
|
7
|
+
it { is_expected.to respond_to :delete }
|
8
8
|
before do
|
9
9
|
@request = Gitlab::Request.new
|
10
10
|
end
|
11
11
|
|
12
12
|
describe ".default_options" do
|
13
|
-
it "
|
13
|
+
it "has default values" do
|
14
14
|
default_options = Gitlab::Request.default_options
|
15
15
|
expect(default_options).to be_a Hash
|
16
16
|
expect(default_options[:parser]).to be_a Proc
|
@@ -21,7 +21,7 @@ describe Gitlab::Request do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
describe ".parse" do
|
24
|
-
it "
|
24
|
+
it "returns ObjectifiedHash" do
|
25
25
|
body = JSON.unparse(a: 1, b: 2)
|
26
26
|
expect(Gitlab::Request.parse(body)).to be_an Gitlab::ObjectifiedHash
|
27
27
|
expect(Gitlab::Request.parse("true")).to be true
|
@@ -31,43 +31,43 @@ describe Gitlab::Request do
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
describe "#
|
34
|
+
describe "#request_defaults" do
|
35
35
|
context "when endpoint is not set" do
|
36
|
-
it "
|
36
|
+
it "raises Error::MissingCredentials" do
|
37
37
|
@request.endpoint = nil
|
38
38
|
expect do
|
39
|
-
@request.
|
39
|
+
@request.request_defaults
|
40
40
|
end.to raise_error(Gitlab::Error::MissingCredentials, 'Please set an endpoint to API')
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
context "when endpoint is set" do
|
45
45
|
before(:each) do
|
46
|
-
@request.endpoint = 'http://rabbit-hole.example.
|
46
|
+
@request.endpoint = 'http://rabbit-hole.example.com'
|
47
47
|
end
|
48
48
|
|
49
|
-
it "
|
50
|
-
@request.
|
49
|
+
it "sets default_params" do
|
50
|
+
@request.request_defaults('sudoer')
|
51
51
|
expect(Gitlab::Request.default_params).to eq(sudo: 'sudoer')
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
describe "#
|
57
|
-
it "
|
56
|
+
describe "#authorization_header" do
|
57
|
+
it "raises MissingCredentials when auth_token and private_token are not set" do
|
58
58
|
expect do
|
59
|
-
@request.send(:
|
59
|
+
@request.send(:authorization_header, {})
|
60
60
|
end.to raise_error(Gitlab::Error::MissingCredentials)
|
61
61
|
end
|
62
62
|
|
63
|
-
it "
|
63
|
+
it "sets the correct header when given a private_token" do
|
64
64
|
@request.private_token = 'ys9BtunN3rDKbaJCYXaN'
|
65
|
-
expect(@request.send(:
|
65
|
+
expect(@request.send(:authorization_header, {})).to eq("PRIVATE-TOKEN" => 'ys9BtunN3rDKbaJCYXaN')
|
66
66
|
end
|
67
67
|
|
68
|
-
it "
|
68
|
+
it "sets the correct header when setting an auth_token via the private_token config option" do
|
69
69
|
@request.private_token = '3225e2804d31fea13fc41fc83bffef00cfaedc463118646b154acc6f94747603'
|
70
|
-
expect(@request.send(:
|
70
|
+
expect(@request.send(:authorization_header, {})).to eq("Authorization" => "Bearer 3225e2804d31fea13fc41fc83bffef00cfaedc463118646b154acc6f94747603")
|
71
71
|
end
|
72
72
|
end
|
73
73
|
end
|
data/spec/gitlab/shell_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe Gitlab::Shell do
|
|
7
7
|
|
8
8
|
describe ".execute" do
|
9
9
|
context "invalid command" do
|
10
|
-
it "
|
10
|
+
it "raises RuntimeError" do
|
11
11
|
expect { Gitlab::Shell.execute 'foobar', [] }.to raise_error(RuntimeError)
|
12
12
|
end
|
13
13
|
end
|
@@ -18,27 +18,27 @@ describe Gitlab::Shell do
|
|
18
18
|
@history = Gitlab::Shell.history
|
19
19
|
end
|
20
20
|
|
21
|
-
it "
|
21
|
+
it "returns a Gitlab::Shell::History instance" do
|
22
22
|
expect(@history).to be_a Gitlab::Shell::History
|
23
23
|
end
|
24
|
-
it "
|
24
|
+
it "responds to :save" do
|
25
25
|
expect(@history).to respond_to :save
|
26
26
|
end
|
27
|
-
it "
|
27
|
+
it "responds to :load" do
|
28
28
|
expect(@history).to respond_to :load
|
29
29
|
end
|
30
|
-
it "
|
30
|
+
it "responds to :<<" do
|
31
31
|
expect(@history).to respond_to :<<
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
describe ".setup" do
|
36
|
-
it "
|
36
|
+
it "sets the Readline completion_proc" do
|
37
37
|
completion = Readline.completion_proc
|
38
38
|
expect(completion).to be_truthy
|
39
39
|
expect(completion).to be_a Proc
|
40
40
|
end
|
41
|
-
it "
|
41
|
+
it "sets the Readline completion_append_character" do
|
42
42
|
completion_character = Readline.completion_append_character
|
43
43
|
expect(completion_character).to eq(' ')
|
44
44
|
end
|
@@ -48,21 +48,21 @@ describe Gitlab::Shell do
|
|
48
48
|
before do
|
49
49
|
@comp = Gitlab::Shell.completion
|
50
50
|
end
|
51
|
-
it "
|
51
|
+
it "returns a Proc object" do
|
52
52
|
expect(@comp).to be_a Proc
|
53
53
|
end
|
54
54
|
context "called with an argument" do
|
55
|
-
it "
|
55
|
+
it "returns an Array of matching commands" do
|
56
56
|
completed_cmds = @comp.call 'group'
|
57
57
|
expect(completed_cmds).to be_a Array
|
58
|
-
expect(completed_cmds.sort).to eq(%w(group group_members group_projects group_search groups))
|
58
|
+
expect(completed_cmds.sort).to eq(%w(group group_member group_members group_projects group_search group_subgroups group_variable group_variables groups))
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
63
|
describe ".parse_input" do
|
64
64
|
context "with arguments" do
|
65
|
-
it "
|
65
|
+
it "sets command & arguments" do
|
66
66
|
Gitlab::Shell.parse_input('create_branch 1 "api" "master"')
|
67
67
|
expect(Gitlab::Shell.command).to eq('create_branch')
|
68
68
|
expect(Gitlab::Shell.arguments).to eq(%w(1 api master))
|
@@ -70,7 +70,7 @@ describe Gitlab::Shell do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
context "without arguments" do
|
73
|
-
it '
|
73
|
+
it 'sets command & empty arguments' do
|
74
74
|
Gitlab::Shell.parse_input('exit')
|
75
75
|
expect(Gitlab::Shell.command).to eq('exit')
|
76
76
|
expect(Gitlab::Shell.arguments).to be_empty
|
data/spec/gitlab_spec.rb
CHANGED
@@ -4,11 +4,11 @@ describe Gitlab do
|
|
4
4
|
after { Gitlab.reset }
|
5
5
|
|
6
6
|
describe ".client" do
|
7
|
-
it "
|
7
|
+
it "is a Gitlab::Client" do
|
8
8
|
expect(Gitlab.client).to be_a Gitlab::Client
|
9
9
|
end
|
10
10
|
|
11
|
-
it "
|
11
|
+
it "does not override each other" do
|
12
12
|
client1 = Gitlab.client(endpoint: 'https://api1.example.com', private_token: '001')
|
13
13
|
client2 = Gitlab.client(endpoint: 'https://api2.example.com', private_token: '002')
|
14
14
|
expect(client1.endpoint).to eq('https://api1.example.com')
|
@@ -17,14 +17,14 @@ describe Gitlab do
|
|
17
17
|
expect(client2.private_token).to eq('002')
|
18
18
|
end
|
19
19
|
|
20
|
-
it "
|
20
|
+
it "sets private_token to the auth_token when provided" do
|
21
21
|
client = Gitlab.client(endpoint: 'https://api2.example.com', auth_token: '3225e2804d31fea13fc41fc83bffef00cfaedc463118646b154acc6f94747603')
|
22
22
|
expect(client.private_token).to eq('3225e2804d31fea13fc41fc83bffef00cfaedc463118646b154acc6f94747603')
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
describe ".actions" do
|
27
|
-
it "
|
27
|
+
it "returns an array of client methods" do
|
28
28
|
actions = Gitlab.actions
|
29
29
|
expect(actions).to be_an Array
|
30
30
|
expect(actions.first).to be_a Symbol
|
@@ -33,41 +33,41 @@ describe Gitlab do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
describe ".endpoint=" do
|
36
|
-
it "
|
36
|
+
it "sets endpoint" do
|
37
37
|
Gitlab.endpoint = 'https://api.example.com'
|
38
38
|
expect(Gitlab.endpoint).to eq('https://api.example.com')
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
describe ".private_token=" do
|
43
|
-
it "
|
43
|
+
it "sets private_token" do
|
44
44
|
Gitlab.private_token = 'secret'
|
45
45
|
expect(Gitlab.private_token).to eq('secret')
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
describe ".auth_token=" do
|
50
|
-
it "
|
50
|
+
it "sets auth_token", focus: true do
|
51
51
|
Gitlab.auth_token = 'auth_secret'
|
52
52
|
expect(Gitlab.private_token).to eq('auth_secret')
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
56
|
describe ".sudo=" do
|
57
|
-
it "
|
57
|
+
it "sets sudo" do
|
58
58
|
Gitlab.sudo = 'user'
|
59
59
|
expect(Gitlab.sudo).to eq('user')
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
63
|
describe ".user_agent" do
|
64
|
-
it "
|
64
|
+
it "returns default user_agent" do
|
65
65
|
expect(Gitlab.user_agent).to eq(Gitlab::Configuration::DEFAULT_USER_AGENT)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
69
|
describe ".user_agent=" do
|
70
|
-
it "
|
70
|
+
it "sets user_agent" do
|
71
71
|
Gitlab.user_agent = 'Custom User Agent'
|
72
72
|
expect(Gitlab.user_agent).to eq('Custom User Agent')
|
73
73
|
end
|
@@ -75,7 +75,7 @@ describe Gitlab do
|
|
75
75
|
|
76
76
|
describe ".configure" do
|
77
77
|
Gitlab::Configuration::VALID_OPTIONS_KEYS.each do |key|
|
78
|
-
it "
|
78
|
+
it "sets #{key}" do
|
79
79
|
Gitlab.configure do |config|
|
80
80
|
config.send("#{key}=", key)
|
81
81
|
expect(Gitlab.send(key)).to eq(key)
|
@@ -89,9 +89,8 @@ describe Gitlab do
|
|
89
89
|
Gitlab.endpoint = 'https://api.example.com'
|
90
90
|
request = class_spy(Gitlab::Request).as_stubbed_const
|
91
91
|
|
92
|
-
Gitlab.http_proxy('
|
93
|
-
expect(request).to have_received(:http_proxy).
|
94
|
-
with('fazbearentertainment.com', 1987, 'ffazbear', 'itsme')
|
92
|
+
Gitlab.http_proxy('proxy.example.net', 1987, 'user', 'pass')
|
93
|
+
expect(request).to have_received(:http_proxy).with('proxy.example.net', 1987, 'user', 'pass')
|
95
94
|
end
|
96
95
|
end
|
97
96
|
end
|