startling 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,19 +0,0 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # Require this file using `require "spec_helper"` to ensure that it is only
4
- # loaded once.
5
- #
6
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
- RSpec.configure do |config|
8
- config.run_all_when_everything_filtered = true
9
- config.filter_run :focus
10
-
11
- # Run specs in random order to surface order dependencies. If you find an
12
- # order dependency and want to debug it, you can fix the order by providing
13
- # the seed, which is printed after each run.
14
- # --seed 1234
15
- config.order = 'random'
16
- end
17
-
18
- require 'pry'
19
- Dir['./spec/support/**/*.rb'].map {|f| require f}
@@ -1,85 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'startling/command'
4
-
5
- describe Startling::Command do
6
- let(:command) { Startling::Command.new }
7
-
8
- describe '#execute' do
9
- before do
10
- allow(Startling::Commands::CheckForLocalMods).to receive(Startling::Command::RUN)
11
-
12
- allow(Startling)
13
- .to receive_message_chain(:hook_commands, :before_story_start) { [] }
14
-
15
- allow(Startling)
16
- .to receive_message_chain(:hook_commands, :after_story_start) { [] }
17
-
18
- allow(Startling)
19
- .to receive_message_chain(:hook_commands, :before_pull_request) { [] }
20
-
21
- allow(Startling)
22
- .to receive_message_chain(:hook_commands, :after_pull_request) { [] }
23
-
24
- allow(Startling).to receive(:story_handler) { nil }
25
-
26
- allow(Startling::Commands::CreatePullRequest).to receive(Startling::Command::RUN)
27
- end
28
-
29
- it 'should check for local modifications' do
30
- expect(Startling::Commands::CheckForLocalMods).to receive(Startling::Command::RUN)
31
-
32
- command.execute
33
- end
34
-
35
- it 'should run before story start commands' do
36
- allow(Startling)
37
- .to receive_message_chain(:hook_commands, :before_story_start) { [:create_branch] }
38
-
39
- expect(Startling::Commands::CreateBranch).to receive(Startling::Command::RUN)
40
-
41
- command.execute
42
- end
43
-
44
- it 'should start the story if a story handler is defined' do
45
- allow(Startling).to receive(:story_handler) { Startling::Commands::CreateBranch }
46
-
47
- expect(Startling::Commands::CreateBranch).to receive(Startling::Command::RUN)
48
-
49
- command.execute
50
- end
51
-
52
- it 'should run after story start commands' do
53
- allow(Startling)
54
- .to receive_message_chain(:hook_commands, :after_story_start) { [:create_branch] }
55
-
56
- expect(Startling::Commands::CreateBranch).to receive(Startling::Command::RUN)
57
-
58
- command.execute
59
- end
60
-
61
- it 'should run before pull request commands' do
62
- allow(Startling)
63
- .to receive_message_chain(:hook_commands, :before_pull_request) { [:create_branch] }
64
-
65
- expect(Startling::Commands::CreateBranch).to receive(Startling::Command::RUN)
66
-
67
- command.execute
68
- end
69
-
70
- it 'should create the pull request' do
71
- expect(Startling::Commands::CreatePullRequest).to receive(Startling::Command::RUN)
72
-
73
- command.execute
74
- end
75
-
76
- it 'should run after pull request commands' do
77
- allow(Startling)
78
- .to receive_message_chain(:hook_commands, :after_pull_request) { [:create_branch] }
79
-
80
- expect(Startling::Commands::CreateBranch).to receive(Startling::Command::RUN)
81
-
82
- command.execute
83
- end
84
- end
85
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'startling/commands/base'
4
-
5
- describe Startling::Commands::Base do
6
- it "should assigns key/values passed in as attributes" do
7
- base = Startling::Commands::Base.new(foo: 'bar', baz: 'qux')
8
- expect(base.foo).to eq 'bar'
9
- expect(base.baz).to eq 'qux'
10
- end
11
-
12
- describe '#execute' do
13
- subject { Startling::Commands::Base.new }
14
- it 'should throws NotImplementedError' do
15
- expect{ subject.execute }.to raise_error(NotImplementedError)
16
- end
17
- end
18
-
19
- describe '#run' do
20
- subject { Startling::Commands::Base.run(foo: 'bar')}
21
-
22
- it 'should assign attributes and call execute' do
23
- base = double :base_command
24
- allow(Startling::Commands::Base).to receive(:new).and_return(base)
25
-
26
- expect(Startling::Commands::Base).to receive(:new).with(foo: 'bar')
27
- expect(base).to receive(:execute)
28
-
29
- subject
30
- end
31
- end
32
- end
@@ -1,105 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'startling/commands/create_branch'
4
-
5
- describe Startling::Commands::CreateBranch do
6
- let(:git) { double('GitLocal') }
7
- let(:attrs) { { args: [], git: git } }
8
- let(:create_branch) { Startling::Commands::CreateBranch.new(attrs) }
9
-
10
- describe '#execute' do
11
- let(:branch_name) { 'my-branch' }
12
- let(:attrs) { { args: [1, branch_name], git: git } }
13
-
14
- before do
15
- allow(create_branch).to receive(:valid_branch_name?) { true }
16
- allow(git).to receive(:current_branch) { 'current-branch' }
17
- allow(create_branch).to receive(:create_branch)
18
- end
19
-
20
- it 'returns an error if the branch name is invalid' do
21
- allow(create_branch).to receive(:valid_branch_name?) { false }
22
-
23
- expect { create_branch.execute }.to raise_exception(SystemExit)
24
- end
25
-
26
- it 'creates the branch if it is not the current branch' do
27
- allow(git).to receive(:current_branch) { 'current-branch' }
28
-
29
- expect(create_branch).to receive(:create_branch)
30
- create_branch.execute
31
- end
32
-
33
- it 'does not create the branch if it is the current branch' do
34
- allow(git).to receive(:current_branch) { branch_name }
35
-
36
- expect(create_branch).not_to receive(:create_branch)
37
- create_branch.execute
38
- end
39
-
40
- it 'returns the branch name' do
41
- expect(create_branch.execute).to eq(branch_name)
42
- end
43
- end
44
-
45
- describe '#branch_name' do
46
- subject { create_branch.branch_name }
47
-
48
- context 'when branch command line option is set' do
49
- let(:attrs) { { args: [1, 'test everything'] } }
50
-
51
- it 'returns the command line option' do
52
- expect(subject).to eq('test-everything')
53
- end
54
- end
55
-
56
- context 'when branch command line option is not set' do
57
- let(:default_branch) { 'master' }
58
-
59
- before do
60
- allow(create_branch).to receive(:default_branch) { default_branch }
61
- end
62
-
63
- it 'returns the branch entered through the prompt' do
64
- allow_any_instance_of(Startling::Commands::CreateBranch).to receive(:ask) { 'entered branch' }
65
-
66
- expect(subject).to eq('entered-branch')
67
- end
68
-
69
- it 'returns the current branch when no branch is entered through the prompt' do
70
- allow_any_instance_of(Startling::Commands::CreateBranch).to receive(:ask) { '' }
71
- allow(git).to receive(:current_branch) { 'current-branch' }
72
-
73
- expect(subject).to eq('current-branch')
74
- end
75
- end
76
- end
77
-
78
- describe '#valid_branch_name?' do
79
- let(:branch_name) { 'validate-me' }
80
- let(:attrs) { { args: [1, branch_name] } }
81
-
82
- subject { create_branch.valid_branch_name? }
83
-
84
- before do
85
- allow(create_branch).to receive(:default_branch) { 'master' }
86
- allow(Startling).to receive(:validate_branch_name) { nil }
87
- end
88
-
89
- it 'succeeds if branch passes validation' do
90
- expect(subject).to be_truthy
91
- end
92
-
93
- it 'fails if the branch is the default branch' do
94
- allow(create_branch).to receive(:default_branch) { branch_name }
95
-
96
- expect(subject).to be_falsey
97
- end
98
-
99
- it 'fails if the custom validation Proc fails' do
100
- allow(Startling).to receive(:validate_branch_name) { -> (branch_name) { /feature\/.*/ =~ branch_name } }
101
-
102
- expect(subject).to be_falsey
103
- end
104
- end
105
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'startling/commands/create_pull_request'
4
-
5
- describe Startling::Commands::CreatePullRequest do
6
- let(:git) { double('GitLocal') }
7
- let(:attrs) { { git: git } }
8
- let(:create_pull_request) { Startling::Commands::CreatePullRequest.new(attrs) }
9
-
10
- describe '#open_pull_request' do
11
- let(:commit_message) { 'test' }
12
- let(:pull_request_handler) do
13
- double(:pull_request_handler,
14
- commit_message: commit_message,
15
- title: 'title',
16
- body: 'body'
17
- )
18
- end
19
-
20
- let(:pull_request) { double(:pull_request, url: 'pull request URL') }
21
- let(:repo) { double(:repo, open_pull_request: pull_request) }
22
-
23
- before do
24
- allow(create_pull_request).to receive(:pull_request_handler) { pull_request_handler }
25
- allow(create_pull_request).to receive(:repo) { repo }
26
-
27
- allow(git).to receive(:current_branch_has_no_commits?) { false }
28
- allow(git).to receive(:create_empty_commit)
29
- allow(git).to receive(:push_origin_head)
30
- end
31
-
32
- it 'should create an empty commit when the branch has no commits' do
33
- allow(git).to receive(:current_branch_has_no_commits?) { true }
34
-
35
- expect(git).to receive(:create_empty_commit).with(commit_message)
36
- create_pull_request.open_pull_request
37
- end
38
-
39
- it 'should not create an empty commit when the branch has commits' do
40
- allow(git).to receive(:current_branch_has_no_commits?) { false }
41
-
42
- expect(git).not_to receive(:create_empty_commit)
43
- create_pull_request.open_pull_request
44
- end
45
- end
46
- end
@@ -1,189 +0,0 @@
1
- require 'spec_helper'
2
- require 'startling'
3
-
4
- module Startling
5
- describe Configuration do
6
- let(:configuration) { Configuration.new }
7
- let(:current_repo) { 'current' }
8
-
9
- before do
10
- allow_any_instance_of(GitLocal).to receive(:repo_name) { current_repo }
11
- end
12
-
13
- describe "Default settings" do
14
- it "sets the default cache_dir to pwd" do
15
- expect(configuration.cache_dir).to eql(Dir.pwd)
16
- end
17
-
18
- it "sets the default root_dir to pwd" do
19
- expect(configuration.root_dir).to eql(Dir.pwd)
20
- end
21
-
22
- it "sets the default wip limit to WIP_LIMIT" do
23
- expect(configuration.wip_limit)
24
- .to eql(Configuration::DEFAULT_WIP_LIMIT)
25
- end
26
-
27
- it "sets the WIP labels to empty" do
28
- expect(configuration.wip_labels).to eql([])
29
- end
30
-
31
- it "sets the default repos to the current repo" do
32
- expect(configuration.repos).to eql([current_repo])
33
- end
34
-
35
- it "sets the default story handler to nil" do
36
- expect(configuration.story_handler).to eql(nil)
37
- end
38
-
39
- it "sets the default branch name validator to nil" do
40
- expect(configuration.validate_branch_name).to eql(nil)
41
- end
42
-
43
- it "sets the default pull request handler to nil" do
44
- expect(configuration.pull_request_handler).to eql(nil)
45
- end
46
-
47
- it "sets the default pull request body" do
48
- expect(configuration.pull_request_body)
49
- .to eql(Configuration::DEFAULT_BODY)
50
- end
51
-
52
- it "sets the default pull request commit message" do
53
- expect(configuration.pull_request_commit_message)
54
- .to eql(Configuration::DEFAULT_COMMIT_MESSAGE)
55
- end
56
-
57
- it "sets the default pull request labels" do
58
- expect(configuration.pull_request_labels).to eql([])
59
- end
60
- end
61
-
62
- describe "#cache_dir" do
63
- it "can set the value" do
64
- configuration.cache_dir = "new dir"
65
- expect(configuration.cache_dir).to eql("new dir")
66
- end
67
- end
68
-
69
- describe "#root_dir" do
70
- it "can set the value" do
71
- configuration.root_dir = "new dir"
72
- expect(configuration.root_dir).to eql("new dir")
73
- end
74
- end
75
-
76
- describe "#wip_limit" do
77
- it "can set the value" do
78
- configuration.wip_limit = 6
79
- expect(configuration.wip_limit).to eql(6)
80
- end
81
- end
82
-
83
- describe "#wip_labels" do
84
- it "can set the value" do
85
- configuration.wip_labels = ['WIP']
86
- expect(configuration.wip_labels).to eql(['WIP'])
87
- end
88
- end
89
-
90
- describe "#repos" do
91
- it "can set the value" do
92
- configuration.repos << "repo path"
93
- expect(configuration.repos).to eql([current_repo, "repo path"])
94
- end
95
- end
96
-
97
- describe "#story_handler" do
98
- it "can set the value" do
99
- configuration.story_handler = :pivotal_start
100
- expect(configuration.story_handler).to eql(:pivotal_start)
101
- end
102
- end
103
-
104
- describe "#validate_branch_name" do
105
- it "can set the value" do
106
- validate_branch_name = -> (branch_name) { /feature\/.*/ =~ branch_name }
107
- configuration.validate_branch_name = validate_branch_name
108
- expect(configuration.validate_branch_name).to eql(validate_branch_name)
109
- end
110
- end
111
-
112
- describe "#pull_request_handler" do
113
- it "can set the value" do
114
- configuration.pull_request_handler = :custom
115
- expect(configuration.pull_request_handler).to eql(:custom)
116
- end
117
- end
118
-
119
- describe "#pull_request_body" do
120
- it "can set the value" do
121
- configuration.pull_request_body = "Startling Body"
122
- expect(configuration.pull_request_body).to eql("Startling Body")
123
- end
124
- end
125
-
126
- describe "#pull_request_commit_message" do
127
- it "can set the value" do
128
- configuration.pull_request_commit_message = "The Commit"
129
- expect(configuration.pull_request_commit_message).to eql("The Commit")
130
- end
131
- end
132
-
133
- describe "#pull_request_labels" do
134
- it "can set the value" do
135
- configuration.pull_request_labels = ["WIP", "REVIEW"]
136
- expect(configuration.pull_request_labels).to eql(["WIP", "REVIEW"])
137
- end
138
- end
139
-
140
- describe ".load_configuration" do
141
- let(:git) { double(GitLocal) }
142
- let(:config_files) {
143
- {
144
- caps: "Startlingfile.rb",
145
- lower: "startlingfile.rb"
146
- }
147
- }
148
- let(:caps_config_file) { "Startlingfile.rb" }
149
- let(:lower_config_file) { "startlingfile.rb" }
150
-
151
- before do
152
- allow(Startling::GitLocal).to receive(:new) { git }
153
- allow(git).to receive(:project_root) { Dir.pwd }
154
- end
155
-
156
- after do
157
- config_files.each do |_, v|
158
- delete_config_file(v)
159
- end
160
- end
161
-
162
- context "when no configuration file exists" do
163
- it "uses default configuration" do
164
- expect(Configuration.load_configuration).to eql(nil)
165
- end
166
- end
167
-
168
- context "when a configuration file exists" do
169
- it "loads configuration from Startlingfile.rb" do
170
- create_config_file(config_files[:caps])
171
- expect(Configuration.load_configuration).to eql(config_files[:caps])
172
- end
173
-
174
- it "loads configuration from startlingfile.rb" do
175
- create_config_file(config_files[:lower])
176
- expect(Configuration.load_configuration).to eql(config_files[:lower])
177
- end
178
- end
179
- end
180
-
181
- def create_config_file(config_file)
182
- File.open(config_file, "w")
183
- end
184
-
185
- def delete_config_file(config_file)
186
- File.delete(config_file) if File.exists? config_file
187
- end
188
- end
189
- end