git_reflow 0.8.9 → 0.8.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,10 @@
1
- class FlatMerge < GitReflow::Workflows::Core
2
- def self.deliver(**params)
3
- base_branch = params[:base] || 'master'
4
- params[:squash] = false
5
-
6
- super(**params)
7
- end
8
- end
9
-
10
- FlatMerge
1
+ class FlatMerge < GitReflow::Workflows::Core
2
+ def self.deliver(**params)
3
+ base_branch = params[:base] || 'master'
4
+ params[:squash] = false
5
+
6
+ super(**params)
7
+ end
8
+ end
9
+
10
+ FlatMerge
@@ -1,7 +1,7 @@
1
- class AwesomeWorkflow < GitReflow::Workflows::Core
2
- def self.start(**args)
3
- GitReflow.say "Awesome."
4
- end
5
- end
6
-
7
- AwesomeWorkflow
1
+ class AwesomeWorkflow < GitReflow::Workflows::Core
2
+ def self.start(**args)
3
+ GitReflow.say "Awesome."
4
+ end
5
+ end
6
+
7
+ AwesomeWorkflow
@@ -1,8 +1,8 @@
1
- class WorkflowWithSuper < GitReflow::Workflows::Core
2
- def self.start(**args)
3
- GitReflow.say "Super."
4
- super(feature_branch: args[:feature_branch], base: args[:base])
5
- end
6
- end
7
-
8
- WorkflowWithSuper
1
+ class WorkflowWithSuper < GitReflow::Workflows::Core
2
+ def self.start(**args)
3
+ GitReflow.say "Super."
4
+ super(feature_branch: args[:feature_branch], base: args[:base])
5
+ end
6
+ end
7
+
8
+ WorkflowWithSuper
@@ -1,81 +1,81 @@
1
- require 'spec_helper'
2
-
3
- describe GitReflow::GitServer::BitBucket do
4
- let(:user) { 'reenhanced' }
5
- let(:password) { 'shazam' }
6
- let(:repo) { 'repo' }
7
- let(:api_key) { 'a1b2c3d4e5f6g7h8i9j0' }
8
- let(:hostname) { 'hostname.local' }
9
- let(:api_endpoint) { 'https://bitbucket.org/api/1.0' }
10
- let(:site) { 'https://bitbucket.org' }
11
- let(:remote_url) { "git@bitbucket.org:#{user}/#{repo}.git" }
12
-
13
- before do
14
- allow_any_instance_of(HighLine).to receive(:ask) do |terminal, question|
15
- values = {
16
- "Please enter your BitBucket username: " => user
17
- }
18
- return_value = values[question]
19
- question = ""
20
- return_value
21
- end
22
- end
23
-
24
- describe '#initialize(options)' do
25
- subject { GitReflow::GitServer::BitBucket.new({}) }
26
-
27
- it 'sets the reflow git server provider to BitBucket in the git config' do
28
- expect(GitReflow::Config).to receive(:set).once.with('reflow.git-server', 'BitBucket', local: false)
29
- subject
30
- end
31
-
32
- context 'storing git config settings only for this project' do
33
- subject { GitReflow::GitServer::BitBucket.new(project_only: true) }
34
-
35
- it 'sets the enterprise site and api as the site and api endpoints for the BitBucket provider in the git config' do
36
- expect(GitReflow::Config).to receive(:set).once.with('reflow.git-server', 'BitBucket', local: true)
37
- subject
38
- end
39
- end
40
-
41
- end
42
-
43
- describe '#authenticate' do
44
- let(:bitbucket) { GitReflow::GitServer::BitBucket.new( { }) }
45
- let!(:bitbucket_api) { BitBucket.new }
46
- subject { bitbucket.authenticate }
47
-
48
- context 'already authenticated' do
49
- it "notifies the user of successful setup" do
50
- allow(GitReflow::Config).to receive(:set).with('reflow.git-server', 'BitBucket', local: false)
51
- allow(GitReflow::Config).to receive(:get).with('remote.origin.url').and_return(remote_url)
52
- allow(GitReflow::Config).to receive(:get).with('bitbucket.user', local: false).and_return(user)
53
- allow(GitReflow::Config).to receive(:get).with('bitbucket.api-key', reload: true, local: false).and_return(api_key)
54
- allow(GitReflow::Config).to receive(:get).with('reflow.local-projects', all: true).and_return('')
55
- expect { subject }.to have_said "\nYour BitBucket account was already setup with:"
56
- expect { subject }.to have_said "\tUser Name: #{user}"
57
- end
58
- end
59
-
60
- context 'not yet authenticated' do
61
- context 'with valid BitBucket credentials' do
62
- before do
63
- allow(GitReflow::Config).to receive(:get).and_return('')
64
- allow(GitReflow::Config).to receive(:set)
65
- allow(GitReflow::Config).to receive(:set).with('bitbucket.api-key', reload: true).and_return(api_key)
66
- allow(GitReflow::Config).to receive(:get).with('bitbucket.api-key', reload: true).and_return('')
67
- allow(GitReflow::Config).to receive(:get).with('remote.origin.url').and_return(remote_url)
68
- allow(GitReflow::Config).to receive(:get).with('reflow.local-projects').and_return('')
69
- allow(bitbucket).to receive(:connection).and_return double(repos: double(all: []))
70
- end
71
-
72
- it "prompts me to setup an API key" do
73
- expect { subject }.to have_said "\nIn order to connect your BitBucket account,"
74
- expect { subject }.to have_said "you'll need to generate an API key for your team"
75
- expect { subject }.to have_said "Visit https://bitbucket.org/account/user/reenhanced/api-key/, to generate it\n"
76
- end
77
- end
78
- end
79
- end
80
-
81
- end
1
+ require 'spec_helper'
2
+
3
+ describe GitReflow::GitServer::BitBucket do
4
+ let(:user) { 'reenhanced' }
5
+ let(:password) { 'shazam' }
6
+ let(:repo) { 'repo' }
7
+ let(:api_key) { 'a1b2c3d4e5f6g7h8i9j0' }
8
+ let(:hostname) { 'hostname.local' }
9
+ let(:api_endpoint) { 'https://bitbucket.org/api/1.0' }
10
+ let(:site) { 'https://bitbucket.org' }
11
+ let(:remote_url) { "git@bitbucket.org:#{user}/#{repo}.git" }
12
+
13
+ before do
14
+ allow_any_instance_of(HighLine).to receive(:ask) do |terminal, question|
15
+ values = {
16
+ "Please enter your BitBucket username: " => user
17
+ }
18
+ return_value = values[question]
19
+ question = ""
20
+ return_value
21
+ end
22
+ end
23
+
24
+ describe '#initialize(options)' do
25
+ subject { GitReflow::GitServer::BitBucket.new({}) }
26
+
27
+ it 'sets the reflow git server provider to BitBucket in the git config' do
28
+ expect(GitReflow::Config).to receive(:set).once.with('reflow.git-server', 'BitBucket', local: false)
29
+ subject
30
+ end
31
+
32
+ context 'storing git config settings only for this project' do
33
+ subject { GitReflow::GitServer::BitBucket.new(project_only: true) }
34
+
35
+ it 'sets the enterprise site and api as the site and api endpoints for the BitBucket provider in the git config' do
36
+ expect(GitReflow::Config).to receive(:set).once.with('reflow.git-server', 'BitBucket', local: true)
37
+ subject
38
+ end
39
+ end
40
+
41
+ end
42
+
43
+ describe '#authenticate' do
44
+ let(:bitbucket) { GitReflow::GitServer::BitBucket.new( { }) }
45
+ let!(:bitbucket_api) { BitBucket.new }
46
+ subject { bitbucket.authenticate }
47
+
48
+ context 'already authenticated' do
49
+ it "notifies the user of successful setup" do
50
+ allow(GitReflow::Config).to receive(:set).with('reflow.git-server', 'BitBucket', local: false)
51
+ allow(GitReflow::Config).to receive(:get).with('remote.origin.url').and_return(remote_url)
52
+ allow(GitReflow::Config).to receive(:get).with('bitbucket.user', local: false).and_return(user)
53
+ allow(GitReflow::Config).to receive(:get).with('bitbucket.api-key', reload: true, local: false).and_return(api_key)
54
+ allow(GitReflow::Config).to receive(:get).with('reflow.local-projects', all: true).and_return('')
55
+ expect { subject }.to have_said "\nYour BitBucket account was already setup with:"
56
+ expect { subject }.to have_said "\tUser Name: #{user}"
57
+ end
58
+ end
59
+
60
+ context 'not yet authenticated' do
61
+ context 'with valid BitBucket credentials' do
62
+ before do
63
+ allow(GitReflow::Config).to receive(:get).and_return('')
64
+ allow(GitReflow::Config).to receive(:set)
65
+ allow(GitReflow::Config).to receive(:set).with('bitbucket.api-key', reload: true).and_return(api_key)
66
+ allow(GitReflow::Config).to receive(:get).with('bitbucket.api-key', reload: true).and_return('')
67
+ allow(GitReflow::Config).to receive(:get).with('remote.origin.url').and_return(remote_url)
68
+ allow(GitReflow::Config).to receive(:get).with('reflow.local-projects').and_return('')
69
+ allow(bitbucket).to receive(:connection).and_return double(repos: double(all: []))
70
+ end
71
+
72
+ it "prompts me to setup an API key" do
73
+ expect { subject }.to have_said "\nIn order to connect your BitBucket account,"
74
+ expect { subject }.to have_said "you'll need to generate an API key for your team"
75
+ expect { subject }.to have_said "Visit https://bitbucket.org/account/user/reenhanced/api-key/, to generate it\n"
76
+ end
77
+ end
78
+ end
79
+ end
80
+
81
+ end
@@ -490,10 +490,10 @@ describe GitReflow::GitServer::GitHub::PullRequest do
490
490
  context "and force-merging" do
491
491
  let(:inputs) do
492
492
  {
493
- base: "base_branch",
494
- title: "title",
495
- message: "message",
496
- skip_lgtm: true
493
+ base: "base_branch",
494
+ title: "title",
495
+ message: "message",
496
+ force: true
497
497
  }
498
498
  end
499
499
 
@@ -1,101 +1,101 @@
1
- require 'spec_helper'
2
-
3
- describe GitReflow::GitServer do
4
- let(:connection_options) { nil }
5
-
6
- subject { GitReflow::GitServer.connect connection_options }
7
-
8
- before do
9
- allow(GitReflow::GitServer::GitHub).to receive(:new)
10
-
11
- module GitReflow::GitServer
12
- class DummyHub < Base
13
- def initialize(options)
14
- "Initialized with #{options}"
15
- end
16
-
17
- def authenticate(options={})
18
- end
19
-
20
- def connection
21
- 'Connected!'
22
- end
23
- end
24
- end
25
- end
26
-
27
- describe '.connect(options)' do
28
- it 'initializes a new GitHub server provider by default' do
29
- stubbed_github = Class.new
30
- allow(stubbed_github).to receive(:authenticate)
31
- expect(GitReflow::GitServer::GitHub).to receive(:new).and_return(stubbed_github)
32
- subject
33
- end
34
-
35
- context 'provider is specified' do
36
- let(:connection_options) { {provider: 'DummyHub'}.merge(expected_server_options) }
37
- let(:expected_server_options) {{ basic_auth: 'user:pass', end_point: 'https://api.example.com' }}
38
-
39
- it 'initializes any server provider that has been implemented' do
40
- dummy_hub = GitReflow::GitServer::DummyHub.new({})
41
- expect(GitReflow::GitServer::DummyHub).to receive(:new).with(expected_server_options).and_return(dummy_hub)
42
- expect(subject).to eq(dummy_hub)
43
- expect($says).not_to include 'GitServer not setup for: DummyHub'
44
- end
45
- end
46
-
47
- context 'provider not yet implemented' do
48
- let(:connection_options) {{ provider: 'GitLab' }}
49
- it { expect{ subject }.to have_said "Error connecting to GitLab: GitServer not setup for \"GitLab\"", :error }
50
- end
51
- end
52
-
53
- describe '.current_provider' do
54
- subject { GitReflow::GitServer.current_provider }
55
-
56
- before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server', local: true).and_return(nil) }
57
-
58
- context 'Reflow setup to use GitHub' do
59
- before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GitHub') }
60
- it { is_expected.to eq(GitReflow::GitServer::GitHub) }
61
- end
62
-
63
- context 'Reflow has not yet been setup' do
64
- before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('') }
65
- it { is_expected.to be_nil }
66
- it { expect{ subject }.to have_said "Reflow hasn't been setup yet. Run 'git reflow setup' to continue", :notice }
67
- end
68
-
69
- context 'an unknown server provider is stored in the git config' do
70
- before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GittyUp') }
71
-
72
- it { is_expected.to be_nil }
73
- it { expect{ subject }.to have_said "GitServer not setup for \"GittyUp\"", :error }
74
- end
75
- end
76
-
77
- describe '.connection' do
78
- subject { GitReflow::GitServer.connection }
79
-
80
- before do
81
- allow(GitReflow::Config).to receive(:get).with('reflow.git-server', local: true).and_return(nil)
82
- allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return(nil)
83
- end
84
-
85
- it { is_expected.to be_nil }
86
-
87
- context "with a valid provider" do
88
- before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GitHub') }
89
- it 'calls connection on the provider' do
90
- expect(GitReflow::GitServer::GitHub).to receive(:connection)
91
- subject
92
- end
93
- end
94
-
95
- context "with an invalid provider" do
96
- before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GittyUp') }
97
- it { is_expected.to be_nil }
98
- it { expect{ subject }.to have_said "GitServer not setup for \"GittyUp\"", :error }
99
- end
100
- end
101
- end
1
+ require 'spec_helper'
2
+
3
+ describe GitReflow::GitServer do
4
+ let(:connection_options) { nil }
5
+
6
+ subject { GitReflow::GitServer.connect connection_options }
7
+
8
+ before do
9
+ allow(GitReflow::GitServer::GitHub).to receive(:new)
10
+
11
+ module GitReflow::GitServer
12
+ class DummyHub < Base
13
+ def initialize(options)
14
+ "Initialized with #{options}"
15
+ end
16
+
17
+ def authenticate(options={})
18
+ end
19
+
20
+ def connection
21
+ 'Connected!'
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ describe '.connect(options)' do
28
+ it 'initializes a new GitHub server provider by default' do
29
+ stubbed_github = Class.new
30
+ allow(stubbed_github).to receive(:authenticate)
31
+ expect(GitReflow::GitServer::GitHub).to receive(:new).and_return(stubbed_github)
32
+ subject
33
+ end
34
+
35
+ context 'provider is specified' do
36
+ let(:connection_options) { {provider: 'DummyHub'}.merge(expected_server_options) }
37
+ let(:expected_server_options) {{ basic_auth: 'user:pass', end_point: 'https://api.example.com' }}
38
+
39
+ it 'initializes any server provider that has been implemented' do
40
+ dummy_hub = GitReflow::GitServer::DummyHub.new({})
41
+ expect(GitReflow::GitServer::DummyHub).to receive(:new).with(expected_server_options).and_return(dummy_hub)
42
+ expect(subject).to eq(dummy_hub)
43
+ expect($says).not_to include 'GitServer not setup for: DummyHub'
44
+ end
45
+ end
46
+
47
+ context 'provider not yet implemented' do
48
+ let(:connection_options) {{ provider: 'GitLab' }}
49
+ it { expect{ subject }.to have_said "Error connecting to GitLab: GitServer not setup for \"GitLab\"", :error }
50
+ end
51
+ end
52
+
53
+ describe '.current_provider' do
54
+ subject { GitReflow::GitServer.current_provider }
55
+
56
+ before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server', local: true).and_return(nil) }
57
+
58
+ context 'Reflow setup to use GitHub' do
59
+ before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GitHub') }
60
+ it { is_expected.to eq(GitReflow::GitServer::GitHub) }
61
+ end
62
+
63
+ context 'Reflow has not yet been setup' do
64
+ before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('') }
65
+ it { is_expected.to be_nil }
66
+ it { expect{ subject }.to have_said "Reflow hasn't been setup yet. Run 'git reflow setup' to continue", :notice }
67
+ end
68
+
69
+ context 'an unknown server provider is stored in the git config' do
70
+ before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GittyUp') }
71
+
72
+ it { is_expected.to be_nil }
73
+ it { expect{ subject }.to have_said "GitServer not setup for \"GittyUp\"", :error }
74
+ end
75
+ end
76
+
77
+ describe '.connection' do
78
+ subject { GitReflow::GitServer.connection }
79
+
80
+ before do
81
+ allow(GitReflow::Config).to receive(:get).with('reflow.git-server', local: true).and_return(nil)
82
+ allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return(nil)
83
+ end
84
+
85
+ it { is_expected.to be_nil }
86
+
87
+ context "with a valid provider" do
88
+ before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GitHub') }
89
+ it 'calls connection on the provider' do
90
+ expect(GitReflow::GitServer::GitHub).to receive(:connection)
91
+ subject
92
+ end
93
+ end
94
+
95
+ context "with an invalid provider" do
96
+ before { allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GittyUp') }
97
+ it { is_expected.to be_nil }
98
+ it { expect{ subject }.to have_said "GitServer not setup for \"GittyUp\"", :error }
99
+ end
100
+ end
101
+ end
@@ -9,7 +9,7 @@ RSpec.describe GitReflow::Sandbox do
9
9
 
10
10
  it "when blocking is flagged off, the command exits silently" do
11
11
  allow(GitReflow::Sandbox).to receive(:run).and_call_original
12
- expect { GitReflow::Sandbox.run("ls wtf", blocking: false) }.to_not raise_error SystemExit
12
+ expect { GitReflow::Sandbox.run("ls wtf", blocking: false) }.to_not raise_error
13
13
  end
14
14
  end
15
15
  end
@@ -1,59 +1,59 @@
1
- require 'spec_helper'
2
-
3
- describe GitReflow::Workflow do
4
-
5
- class DummyWorkflow
6
- include GitReflow::Workflow
7
- end
8
-
9
- let(:workflow) { DummyWorkflow }
10
- let(:loader) { double() }
11
-
12
- describe ".current" do
13
- subject { GitReflow::Workflow.current }
14
-
15
- context "when no workflow is set" do
16
- before { allow(GitReflow::Config).to receive(:get).with("reflow.workflow").and_return('') }
17
- specify { expect( subject ).to eql(GitReflow::Workflows::Core) }
18
- end
19
-
20
- context "when a workflow is set" do
21
- let(:workflow_path) { File.join(File.expand_path("../../../fixtures", __FILE__), "/awesome_workflow.rb") }
22
-
23
- before { allow(GitReflow::Config).to receive(:get).with("reflow.workflow").and_return(workflow_path) }
24
- specify { expect( subject ).to eql(GitReflow::Workflow::AwesomeWorkflow) }
25
- end
26
- end
27
-
28
- describe ".command" do
29
- it "creates a class method for a bogus command" do
30
- class DummyWorkflow
31
- include GitReflow::Workflow
32
- end
33
- workflow.command :bogus do
34
- "Woohoo"
35
- end
36
-
37
- expect(DummyWorkflow.bogus).to eql("Woohoo")
38
- end
39
-
40
- it "creates a method for a bogus command with arguments" do
41
- workflow.command :bogus, arguments: [:feature_branch] do |**params|
42
- "Woohoo #{params[:feature_branch]}!"
43
- end
44
-
45
- expect(DummyWorkflow.bogus(feature_branch: "donuts")).to eql("Woohoo donuts!")
46
- end
47
-
48
- it "creates a class method for a bogus command with default options" do
49
- workflow.command :bogus, arguments: [:feature_branch], defaults: {decoration: 'sprinkles'} do |**params|
50
- donut_excitement = "Woohoo #{params[:feature_branch]}"
51
- donut_excitement += " with #{params[:decoration]}" if params[:decoration]
52
- "#{donut_excitement}!"
53
- end
54
-
55
- expect(DummyWorkflow.bogus(feature_branch: "donuts")).to eql("Woohoo donuts with sprinkles!")
56
- end
57
- end
58
-
59
- end
1
+ require 'spec_helper'
2
+
3
+ describe GitReflow::Workflow do
4
+
5
+ class DummyWorkflow
6
+ include GitReflow::Workflow
7
+ end
8
+
9
+ let(:workflow) { DummyWorkflow }
10
+ let(:loader) { double() }
11
+
12
+ describe ".current" do
13
+ subject { GitReflow::Workflow.current }
14
+
15
+ context "when no workflow is set" do
16
+ before { allow(GitReflow::Config).to receive(:get).with("reflow.workflow").and_return('') }
17
+ specify { expect( subject ).to eql(GitReflow::Workflows::Core) }
18
+ end
19
+
20
+ context "when a workflow is set" do
21
+ let(:workflow_path) { File.join(File.expand_path("../../../fixtures", __FILE__), "/awesome_workflow.rb") }
22
+
23
+ before { allow(GitReflow::Config).to receive(:get).with("reflow.workflow").and_return(workflow_path) }
24
+ specify { expect( subject ).to eql(GitReflow::Workflow::AwesomeWorkflow) }
25
+ end
26
+ end
27
+
28
+ describe ".command" do
29
+ it "creates a class method for a bogus command" do
30
+ class DummyWorkflow
31
+ include GitReflow::Workflow
32
+ end
33
+ workflow.command :bogus do
34
+ "Woohoo"
35
+ end
36
+
37
+ expect(DummyWorkflow.bogus).to eql("Woohoo")
38
+ end
39
+
40
+ it "creates a method for a bogus command with arguments" do
41
+ workflow.command :bogus, arguments: [:feature_branch] do |**params|
42
+ "Woohoo #{params[:feature_branch]}!"
43
+ end
44
+
45
+ expect(DummyWorkflow.bogus(feature_branch: "donuts")).to eql("Woohoo donuts!")
46
+ end
47
+
48
+ it "creates a class method for a bogus command with default options" do
49
+ workflow.command :bogus, arguments: [:feature_branch], defaults: {decoration: 'sprinkles'} do |**params|
50
+ donut_excitement = "Woohoo #{params[:feature_branch]}"
51
+ donut_excitement += " with #{params[:decoration]}" if params[:decoration]
52
+ "#{donut_excitement}!"
53
+ end
54
+
55
+ expect(DummyWorkflow.bogus(feature_branch: "donuts")).to eql("Woohoo donuts with sprinkles!")
56
+ end
57
+ end
58
+
59
+ end