git_helper 2.0.2 → 3.1.3
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 +4 -4
- data/Gemfile.lock +29 -20
- data/Guardfile +2 -2
- data/README.md +43 -21
- data/Rakefile +1 -1
- data/bin/git-helper +12 -16
- data/lib/git_helper.rb +6 -1
- data/lib/git_helper/git_config_reader.rb +1 -3
- data/lib/git_helper/gitlab_client.rb +0 -2
- data/lib/git_helper/highline_cli.rb +0 -2
- data/lib/git_helper/local_code.rb +17 -13
- data/lib/git_helper/merge_request.rb +1 -0
- data/lib/git_helper/octokit_client.rb +0 -2
- data/lib/git_helper/pull_request.rb +1 -0
- data/lib/git_helper/version.rb +1 -1
- data/plugins.zip +0 -0
- data/spec/git_helper/change_remote_spec.rb +18 -15
- data/spec/git_helper/code_request_spec.rb +20 -17
- data/spec/git_helper/git_config_reader_spec.rb +9 -7
- data/spec/git_helper/highline_cli_spec.rb +38 -36
- data/spec/git_helper/local_code_spec.rb +63 -26
- data/spec/git_helper/merge_request_spec.rb +49 -32
- data/spec/git_helper/new_branch_spec.rb +1 -0
- data/spec/git_helper/pull_request_spec.rb +39 -31
- data/spec/spec_helper.rb +2 -0
- metadata +19 -4
@@ -3,20 +3,23 @@ require 'git_helper'
|
|
3
3
|
|
4
4
|
describe GitHelper::CodeRequest do
|
5
5
|
let(:highline_cli) { double(:highline_cli) }
|
6
|
-
let(:local_code) { double(:local_code, project_name:
|
6
|
+
let(:local_code) { double(:local_code, project_name: Faker::Lorem.word, branch: Faker::Lorem.word) }
|
7
7
|
let(:process_project) { double(:process_project, create: :created, merge: :merged) }
|
8
|
+
let(:base_branch) { Faker::Lorem.word }
|
9
|
+
let(:title) { Faker::Lorem.sentence }
|
8
10
|
|
9
11
|
subject { GitHelper::CodeRequest.new }
|
10
12
|
|
11
13
|
before do
|
12
14
|
allow(GitHelper::LocalCode).to receive(:new).and_return(local_code)
|
13
15
|
allow(GitHelper::HighlineCli).to receive(:new).and_return(highline_cli)
|
16
|
+
allow(subject).to receive(:puts)
|
14
17
|
end
|
15
18
|
|
16
19
|
describe '#create' do
|
17
20
|
before do
|
18
|
-
allow(subject).to receive(:base_branch).and_return(
|
19
|
-
allow(subject).to receive(:new_code_request_title).and_return(
|
21
|
+
allow(subject).to receive(:base_branch).and_return(base_branch)
|
22
|
+
allow(subject).to receive(:new_code_request_title).and_return(title)
|
20
23
|
end
|
21
24
|
|
22
25
|
it 'should call to process the project' do
|
@@ -31,8 +34,8 @@ describe GitHelper::CodeRequest do
|
|
31
34
|
end
|
32
35
|
|
33
36
|
it 'should call base_branch and new_code_request_title' do
|
34
|
-
expect(subject).to receive(:base_branch).and_return(
|
35
|
-
expect(subject).to receive(:new_code_request_title).and_return(
|
37
|
+
expect(subject).to receive(:base_branch).and_return(base_branch)
|
38
|
+
expect(subject).to receive(:new_code_request_title).and_return(title)
|
36
39
|
allow(subject).to receive(:process_project).and_return(process_project)
|
37
40
|
allow(process_project).to receive(:create)
|
38
41
|
subject.create
|
@@ -132,7 +135,7 @@ describe GitHelper::CodeRequest do
|
|
132
135
|
|
133
136
|
context 'when response is neither' do
|
134
137
|
it 'should raise an error' do
|
135
|
-
allow(highline_cli).to receive(:conflicting_remote_clarification).and_return(
|
138
|
+
allow(highline_cli).to receive(:conflicting_remote_clarification).and_return(Faker::Lorem.word)
|
136
139
|
expect(subject).to receive(:exit)
|
137
140
|
subject.send(:ask_for_clarification)
|
138
141
|
end
|
@@ -171,28 +174,28 @@ describe GitHelper::CodeRequest do
|
|
171
174
|
it 'should call the default branch' do
|
172
175
|
expect(subject).to receive(:default_branch)
|
173
176
|
allow(highline_cli).to receive(:base_branch_default?).at_least(:once)
|
174
|
-
allow(highline_cli).to receive(:base_branch).at_least(:once).and_return(
|
177
|
+
allow(highline_cli).to receive(:base_branch).at_least(:once).and_return(base_branch)
|
175
178
|
subject.send(:base_branch)
|
176
179
|
end
|
177
180
|
|
178
181
|
it 'should ask the CLI to ask the user' do
|
179
182
|
allow(subject).to receive(:default_branch)
|
180
183
|
expect(highline_cli).to receive(:base_branch_default?).at_least(:once)
|
181
|
-
allow(highline_cli).to receive(:base_branch).at_least(:once).and_return(
|
184
|
+
allow(highline_cli).to receive(:base_branch).at_least(:once).and_return(base_branch)
|
182
185
|
subject.send(:base_branch)
|
183
186
|
end
|
184
187
|
|
185
188
|
context 'if the user says no' do
|
186
|
-
it
|
189
|
+
it 'definitely asks for the users base branch' do
|
187
190
|
allow(subject).to receive(:default_branch)
|
188
191
|
expect(highline_cli).to receive(:base_branch_default?).at_least(:once).and_return(false)
|
189
|
-
expect(highline_cli).to receive(:base_branch).at_least(:once).and_return(
|
192
|
+
expect(highline_cli).to receive(:base_branch).at_least(:once).and_return(base_branch)
|
190
193
|
subject.send(:base_branch)
|
191
194
|
end
|
192
195
|
end
|
193
196
|
|
194
197
|
context 'if the user says yes' do
|
195
|
-
it
|
198
|
+
it 'does not ask for the users base branch' do
|
196
199
|
allow(subject).to receive(:default_branch)
|
197
200
|
expect(highline_cli).to receive(:base_branch_default?).at_least(:once).and_return(true)
|
198
201
|
expect(highline_cli).not_to receive(:base_branch)
|
@@ -203,7 +206,7 @@ describe GitHelper::CodeRequest do
|
|
203
206
|
|
204
207
|
describe '#autogenerated_title' do
|
205
208
|
it 'should generate a title based on the branch' do
|
206
|
-
expect(subject).to receive(:local_branch).and_return(
|
209
|
+
expect(subject).to receive(:local_branch).and_return(Faker::Lorem.word)
|
207
210
|
expect(local_code).to receive(:generate_title)
|
208
211
|
subject.send(:autogenerated_title)
|
209
212
|
end
|
@@ -213,28 +216,28 @@ describe GitHelper::CodeRequest do
|
|
213
216
|
it 'should call autogenerated title method' do
|
214
217
|
expect(subject).to receive(:autogenerated_title)
|
215
218
|
allow(highline_cli).to receive(:accept_autogenerated_title?).at_least(:once)
|
216
|
-
allow(highline_cli).to receive(:title).at_least(:once).and_return(
|
219
|
+
allow(highline_cli).to receive(:title).at_least(:once).and_return(title)
|
217
220
|
subject.send(:new_code_request_title)
|
218
221
|
end
|
219
222
|
|
220
223
|
it 'should ask the CLI to ask the user' do
|
221
224
|
allow(subject).to receive(:autogenerated_title)
|
222
225
|
expect(highline_cli).to receive(:accept_autogenerated_title?).at_least(:once)
|
223
|
-
allow(highline_cli).to receive(:title).at_least(:once).and_return(
|
226
|
+
allow(highline_cli).to receive(:title).at_least(:once).and_return(title)
|
224
227
|
subject.send(:new_code_request_title)
|
225
228
|
end
|
226
229
|
|
227
230
|
context 'if the user says no' do
|
228
|
-
it
|
231
|
+
it 'definitely asks for the users title' do
|
229
232
|
allow(subject).to receive(:autogenerated_title)
|
230
233
|
expect(highline_cli).to receive(:accept_autogenerated_title?).at_least(:once).and_return(false)
|
231
|
-
expect(highline_cli).to receive(:title).at_least(:once).and_return(
|
234
|
+
expect(highline_cli).to receive(:title).at_least(:once).and_return(title)
|
232
235
|
subject.send(:new_code_request_title)
|
233
236
|
end
|
234
237
|
end
|
235
238
|
|
236
239
|
context 'if the user says yes to original title' do
|
237
|
-
it
|
240
|
+
it 'does not ask for the users chosen title' do
|
238
241
|
allow(subject).to receive(:autogenerated_title)
|
239
242
|
expect(highline_cli).to receive(:accept_autogenerated_title?).at_least(:once).and_return(true)
|
240
243
|
expect(highline_cli).not_to receive(:title)
|
@@ -2,13 +2,14 @@ require 'spec_helper'
|
|
2
2
|
require 'git_helper'
|
3
3
|
|
4
4
|
describe GitHelper::GitConfigReader do
|
5
|
-
let(:github_token) {
|
6
|
-
let(:gitlab_token) {
|
5
|
+
let(:github_token) { Faker::Internet.password(max_length: 10) }
|
6
|
+
let(:gitlab_token) { Faker::Internet.password(max_length: 10) }
|
7
|
+
|
7
8
|
let(:config_file) {
|
8
9
|
{
|
9
|
-
github_user:
|
10
|
+
github_user: Faker::Internet.username,
|
10
11
|
github_token: github_token,
|
11
|
-
gitlab_user:
|
12
|
+
gitlab_user: Faker::Internet.username,
|
12
13
|
gitlab_token: gitlab_token
|
13
14
|
}
|
14
15
|
}
|
@@ -48,13 +49,14 @@ describe GitHelper::GitConfigReader do
|
|
48
49
|
|
49
50
|
describe '#git_config_file_path' do
|
50
51
|
it 'should look in the current directory' do
|
51
|
-
expect(Dir).to receive(:pwd).and_return(
|
52
|
+
expect(Dir).to receive(:pwd).and_return("/Users/#{Faker::Name.first_name}/#{Faker::Lorem.word}")
|
52
53
|
subject.send(:git_config_file_path)
|
53
54
|
end
|
54
55
|
|
55
56
|
it 'should return the base path with the git config file at the end' do
|
56
|
-
|
57
|
-
|
57
|
+
user = Faker::Name.first_name
|
58
|
+
allow(Dir).to receive(:pwd).and_return("/Users/#{user}/#{Faker::Lorem.word}")
|
59
|
+
expect(subject.send(:git_config_file_path)).to eq("/Users/#{user}/.git_helper/config.yml")
|
58
60
|
end
|
59
61
|
end
|
60
62
|
end
|
@@ -12,7 +12,7 @@ describe GitHelper::HighlineCli do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
describe '#new_branch_name' do
|
15
|
-
it
|
15
|
+
it 'should ask the subjects ask method' do
|
16
16
|
expect(subject).to receive(:ask).with('New branch name?')
|
17
17
|
subject.new_branch_name
|
18
18
|
end
|
@@ -23,34 +23,34 @@ describe GitHelper::HighlineCli do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
describe '#process_directory_remotes' do
|
26
|
-
it
|
26
|
+
it 'should ask the subjects ask method' do
|
27
27
|
expect(subject).to receive(:ask).and_return('y')
|
28
|
-
subject.process_directory_remotes?(
|
28
|
+
subject.process_directory_remotes?(Faker::Lorem.word)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should be a boolean at the end' do
|
32
32
|
allow(subject).to receive(:ask).and_return('y')
|
33
|
-
expect([true, false]).to include(subject.process_directory_remotes?(
|
33
|
+
expect([true, false]).to include(subject.process_directory_remotes?(Faker::Lorem.word))
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'should come out as a true boolean if somebody responds y' do
|
37
37
|
allow(subject).to receive(:ask).and_return('y')
|
38
|
-
expect(subject.process_directory_remotes?(
|
38
|
+
expect(subject.process_directory_remotes?(Faker::Lorem.word)).to eq(true)
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'should come out as a false boolean if somebody responds n' do
|
42
42
|
allow(subject).to receive(:ask).and_return('n')
|
43
|
-
expect(subject.process_directory_remotes?(
|
43
|
+
expect(subject.process_directory_remotes?(Faker::Lorem.word)).to eq(false)
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'should come out as true if somebody presses enter' do
|
47
47
|
allow(subject).to receive(:ask).and_return('')
|
48
|
-
expect(subject.accept_autogenerated_title?(
|
48
|
+
expect(subject.accept_autogenerated_title?(Faker::Lorem.word)).to eq(true)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
describe '#conflicting_remote_clarification' do
|
53
|
-
it
|
53
|
+
it 'should ask the subjects ask method' do
|
54
54
|
expect(subject).to receive(:ask).with('Found git remotes for both GitHub and GitLab. Would you like to proceed with GitLab or GitHub? (github/gitlab)').and_return('gitlab')
|
55
55
|
subject.conflicting_remote_clarification
|
56
56
|
end
|
@@ -61,7 +61,7 @@ describe GitHelper::HighlineCli do
|
|
61
61
|
end
|
62
62
|
|
63
63
|
describe '#title' do
|
64
|
-
it
|
64
|
+
it 'should ask the subjects ask method' do
|
65
65
|
expect(subject).to receive(:ask).with('Title?')
|
66
66
|
subject.title
|
67
67
|
end
|
@@ -72,7 +72,7 @@ describe GitHelper::HighlineCli do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
describe '#base_branch' do
|
75
|
-
it
|
75
|
+
it 'should ask the subjects ask method' do
|
76
76
|
expect(subject).to receive(:ask).with('Base branch?')
|
77
77
|
subject.base_branch
|
78
78
|
end
|
@@ -83,92 +83,94 @@ describe GitHelper::HighlineCli do
|
|
83
83
|
end
|
84
84
|
|
85
85
|
describe '#code_request_id' do
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
let(:phrase) { Faker::Lorem.sentence }
|
87
|
+
|
88
|
+
it 'should ask the subjects ask method' do
|
89
|
+
expect(subject).to receive(:ask).with("#{phrase} Request ID?")
|
90
|
+
subject.code_request_id(phrase)
|
89
91
|
end
|
90
92
|
|
91
93
|
it 'should come out a string' do
|
92
|
-
expect(subject.code_request_id(
|
94
|
+
expect(subject.code_request_id(phrase)).to be_a(String)
|
93
95
|
end
|
94
96
|
end
|
95
97
|
|
96
98
|
describe '#accept_autogenerated_title' do
|
97
|
-
it
|
99
|
+
it 'should ask the subjects ask method' do
|
98
100
|
expect(subject).to receive(:ask).and_return('y')
|
99
|
-
subject.accept_autogenerated_title?(
|
101
|
+
subject.accept_autogenerated_title?(Faker::Lorem.sentence)
|
100
102
|
end
|
101
103
|
|
102
104
|
it 'should be a boolean at the end' do
|
103
105
|
allow(subject).to receive(:ask).and_return('y')
|
104
|
-
expect([true, false]).to include(subject.accept_autogenerated_title?(
|
106
|
+
expect([true, false]).to include(subject.accept_autogenerated_title?(Faker::Lorem.sentence))
|
105
107
|
end
|
106
108
|
|
107
109
|
it 'should come out as a true boolean if somebody responds y' do
|
108
110
|
allow(subject).to receive(:ask).and_return('y')
|
109
|
-
expect(subject.accept_autogenerated_title?(
|
111
|
+
expect(subject.accept_autogenerated_title?(Faker::Lorem.sentence)).to eq(true)
|
110
112
|
end
|
111
113
|
|
112
114
|
it 'should come out as a true boolean if somebody responds n' do
|
113
115
|
allow(subject).to receive(:ask).and_return('n')
|
114
|
-
expect(subject.accept_autogenerated_title?(
|
116
|
+
expect(subject.accept_autogenerated_title?(Faker::Lorem.sentence)).to eq(false)
|
115
117
|
end
|
116
118
|
|
117
119
|
it 'should come out as a true boolean if somebody responds yes' do
|
118
120
|
allow(subject).to receive(:ask).and_return('yes')
|
119
|
-
expect(subject.accept_autogenerated_title?(
|
121
|
+
expect(subject.accept_autogenerated_title?(Faker::Lorem.sentence)).to eq(true)
|
120
122
|
end
|
121
123
|
|
122
124
|
it 'should come out as a false boolean if somebody responds no' do
|
123
125
|
allow(subject).to receive(:ask).and_return('no')
|
124
|
-
expect(subject.accept_autogenerated_title?(
|
126
|
+
expect(subject.accept_autogenerated_title?(Faker::Lorem.sentence)).to eq(false)
|
125
127
|
end
|
126
128
|
|
127
129
|
it 'should come out as true if somebody presses enter' do
|
128
130
|
allow(subject).to receive(:ask).and_return('')
|
129
|
-
expect(subject.accept_autogenerated_title?(
|
131
|
+
expect(subject.accept_autogenerated_title?(Faker::Lorem.sentence)).to eq(true)
|
130
132
|
end
|
131
133
|
end
|
132
134
|
|
133
135
|
describe '#base_branch_default' do
|
134
|
-
it
|
136
|
+
it 'should ask the subjects ask method' do
|
135
137
|
expect(subject).to receive(:ask).and_return('y')
|
136
|
-
subject.base_branch_default?(
|
138
|
+
subject.base_branch_default?(Faker::Lorem.word)
|
137
139
|
end
|
138
140
|
|
139
141
|
it 'should be a boolean at the end' do
|
140
142
|
allow(subject).to receive(:ask).and_return('y')
|
141
|
-
expect([true, false]).to include(subject.base_branch_default?(
|
143
|
+
expect([true, false]).to include(subject.base_branch_default?(Faker::Lorem.word))
|
142
144
|
end
|
143
145
|
|
144
146
|
it 'should come out as a true boolean if somebody responds y' do
|
145
147
|
allow(subject).to receive(:ask).and_return('y')
|
146
|
-
expect(subject.base_branch_default?(
|
148
|
+
expect(subject.base_branch_default?(Faker::Lorem.word)).to eq(true)
|
147
149
|
end
|
148
150
|
|
149
151
|
it 'should come out as a true boolean if somebody responds n' do
|
150
152
|
allow(subject).to receive(:ask).and_return('n')
|
151
|
-
expect(subject.base_branch_default?(
|
153
|
+
expect(subject.base_branch_default?(Faker::Lorem.word)).to eq(false)
|
152
154
|
end
|
153
155
|
|
154
156
|
it 'should come out as a true boolean if somebody responds yes' do
|
155
157
|
allow(subject).to receive(:ask).and_return('yes')
|
156
|
-
expect(subject.base_branch_default?(
|
158
|
+
expect(subject.base_branch_default?(Faker::Lorem.word)).to eq(true)
|
157
159
|
end
|
158
160
|
|
159
161
|
it 'should come out as a false boolean if somebody responds no' do
|
160
162
|
allow(subject).to receive(:ask).and_return('no')
|
161
|
-
expect(subject.base_branch_default?(
|
163
|
+
expect(subject.base_branch_default?(Faker::Lorem.word)).to eq(false)
|
162
164
|
end
|
163
165
|
|
164
166
|
it 'should come out as true if somebody presses enter' do
|
165
167
|
allow(subject).to receive(:ask).and_return('')
|
166
|
-
expect(subject.base_branch_default?(
|
168
|
+
expect(subject.base_branch_default?(Faker::Lorem.word)).to eq(true)
|
167
169
|
end
|
168
170
|
end
|
169
171
|
|
170
172
|
describe '#merge_method' do
|
171
|
-
it
|
173
|
+
it 'should ask the subjects ask_options method' do
|
172
174
|
expect(subject).to receive(:ask_options).and_return(3)
|
173
175
|
subject.merge_method(['1', '2', '3'])
|
174
176
|
end
|
@@ -180,7 +182,7 @@ describe GitHelper::HighlineCli do
|
|
180
182
|
end
|
181
183
|
|
182
184
|
describe '#template_to_apply' do
|
183
|
-
it
|
185
|
+
it 'should ask the subjects ask_options method' do
|
184
186
|
expect(subject).to receive(:ask_options).and_return(3)
|
185
187
|
subject.template_to_apply(['option1', 'option2', 'option3'], 'example type')
|
186
188
|
end
|
@@ -194,22 +196,22 @@ describe GitHelper::HighlineCli do
|
|
194
196
|
describe '#ask' do
|
195
197
|
it 'should ask the highline client ask'do
|
196
198
|
expect(highline_client).to receive(:ask)
|
197
|
-
subject.send(:ask,
|
199
|
+
subject.send(:ask, Faker::Lorem.sentence)
|
198
200
|
end
|
199
201
|
|
200
202
|
it 'should return a string' do
|
201
|
-
expect(subject.send(:ask,
|
203
|
+
expect(subject.send(:ask, Faker::Lorem.sentence)).to be_a(String)
|
202
204
|
end
|
203
205
|
end
|
204
206
|
|
205
207
|
describe '#ask_options' do
|
206
208
|
it 'should ask the highline client ask'do
|
207
209
|
expect(highline_client).to receive(:ask)
|
208
|
-
subject.send(:ask_options,
|
210
|
+
subject.send(:ask_options, Faker::Lorem.sentence, ['1', '2', '3'])
|
209
211
|
end
|
210
212
|
|
211
213
|
it 'should return an integer' do
|
212
|
-
expect(subject.send(:ask_options,
|
214
|
+
expect(subject.send(:ask_options, Faker::Lorem.sentence, ['1', '2', '3'])).to be_a(Integer)
|
213
215
|
end
|
214
216
|
end
|
215
217
|
end
|
@@ -4,11 +4,24 @@ require 'git_helper'
|
|
4
4
|
describe GitHelper::LocalCode do
|
5
5
|
let(:response) { double(:response, readline: true, to_i: 5) }
|
6
6
|
let(:local_codeent) { double(:local_code, ask: response) }
|
7
|
-
let(:
|
8
|
-
let(:
|
9
|
-
let(:
|
10
|
-
let(:
|
7
|
+
let(:project_name) { Faker::Lorem.word }
|
8
|
+
let(:owner) { Faker::Name.first_name }
|
9
|
+
let(:ssh_remote) { "origin\tgit@github.com:#{owner}/#{project_name}.git (fetch)" }
|
10
|
+
let(:https_remote) { "origin\thttps://github.com/#{owner}/#{project_name}.git (fetch)" }
|
11
|
+
|
12
|
+
let(:github_remotes) do
|
13
|
+
[
|
14
|
+
"origin\tgit@github.com:#{owner}/#{project_name}.git (fetch)",
|
15
|
+
"origin\thttps://github.com/#{owner}/#{project_name}.git (fetch)"
|
16
|
+
]
|
17
|
+
end
|
11
18
|
|
19
|
+
let(:gitlab_remotes) do
|
20
|
+
[
|
21
|
+
"origin\tgit@gitlab.com:#{owner}/#{project_name}.git (fetch)",
|
22
|
+
"origin\thttps://gitlab.com/#{owner}/#{project_name}.git (fetch)"
|
23
|
+
]
|
24
|
+
end
|
12
25
|
|
13
26
|
subject { GitHelper::LocalCode.new }
|
14
27
|
|
@@ -51,13 +64,14 @@ describe GitHelper::LocalCode do
|
|
51
64
|
describe '#new_branch' do
|
52
65
|
it 'should make a system call' do
|
53
66
|
expect(subject).to receive(:system).exactly(4).times
|
54
|
-
subject.new_branch(
|
67
|
+
subject.new_branch(Faker::Lorem.word)
|
55
68
|
end
|
56
69
|
end
|
57
70
|
|
58
71
|
describe '#change_remote' do
|
59
72
|
it 'should return a string' do
|
60
|
-
|
73
|
+
allow(subject).to receive(:`).and_return(Faker::Lorem.word)
|
74
|
+
expect(subject.change_remote(Faker::Lorem.word, Faker::Internet.url)).to be_a(String)
|
61
75
|
end
|
62
76
|
end
|
63
77
|
|
@@ -96,11 +110,11 @@ describe GitHelper::LocalCode do
|
|
96
110
|
|
97
111
|
describe '#remote_project' do
|
98
112
|
it 'should return just the plain project if ssh' do
|
99
|
-
expect(subject.remote_project(ssh_remote)).to eq(
|
113
|
+
expect(subject.remote_project(ssh_remote)).to eq(project_name)
|
100
114
|
end
|
101
115
|
|
102
116
|
it 'should return just the plain project if https' do
|
103
|
-
expect(subject.remote_project(https_remote)).to eq(
|
117
|
+
expect(subject.remote_project(https_remote)).to eq(project_name)
|
104
118
|
end
|
105
119
|
end
|
106
120
|
|
@@ -144,8 +158,8 @@ describe GitHelper::LocalCode do
|
|
144
158
|
end
|
145
159
|
|
146
160
|
it 'should equal this project name' do
|
147
|
-
allow_any_instance_of(String).to receive(:scan).and_return([[
|
148
|
-
expect(subject.project_name).to eq(
|
161
|
+
allow_any_instance_of(String).to receive(:scan).and_return([["#{owner}/#{project_name}"]])
|
162
|
+
expect(subject.project_name).to eq("#{owner}/#{project_name}")
|
149
163
|
end
|
150
164
|
end
|
151
165
|
|
@@ -164,6 +178,7 @@ describe GitHelper::LocalCode do
|
|
164
178
|
describe '#template_options' do
|
165
179
|
let(:template_identifiers) do
|
166
180
|
{
|
181
|
+
template_directory: '.github',
|
167
182
|
nested_directory_name: 'PULL_REQUEST_TEMPLATE',
|
168
183
|
non_nested_file_name: 'pull_request_template'
|
169
184
|
}
|
@@ -189,43 +204,65 @@ describe GitHelper::LocalCode do
|
|
189
204
|
|
190
205
|
describe '#generate_title' do
|
191
206
|
it 'should return a title based on the branch' do
|
192
|
-
|
193
|
-
|
207
|
+
prefix = Faker::Lorem.word
|
208
|
+
word1 = Faker::Lorem.word
|
209
|
+
word2 = Faker::Lorem.word
|
210
|
+
description = [word1, word2].join('-')
|
211
|
+
branch = "#{prefix}-123-#{description}"
|
212
|
+
expect(subject.generate_title(branch)).to eq("#{prefix.upcase}-123 #{[word1.capitalize, word2].join(' ')}")
|
194
213
|
end
|
195
214
|
|
196
215
|
it 'should return a title based on the branch' do
|
197
|
-
|
198
|
-
|
216
|
+
prefix = Faker::Lorem.word
|
217
|
+
word1 = Faker::Lorem.word
|
218
|
+
word2 = Faker::Lorem.word
|
219
|
+
description = [word1, word2].join('_')
|
220
|
+
branch = "#{prefix}_123_#{description}"
|
221
|
+
expect(subject.generate_title(branch)).to eq("#{prefix.upcase}-123 #{[word1.capitalize, word2].join(' ')}")
|
199
222
|
end
|
200
223
|
|
201
224
|
it 'should return a title based on the branch' do
|
202
|
-
|
203
|
-
|
225
|
+
prefix = Faker::Lorem.word
|
226
|
+
word1 = Faker::Lorem.word
|
227
|
+
word2 = Faker::Lorem.word
|
228
|
+
description = [word1, word2].join('_')
|
229
|
+
branch = "#{prefix}-123_#{description}"
|
230
|
+
expect(subject.generate_title(branch)).to eq("#{prefix.upcase}-123 #{[word1.capitalize, word2].join(' ')}")
|
204
231
|
end
|
205
232
|
|
206
233
|
it 'should return a title based on the branch' do
|
207
|
-
|
208
|
-
|
234
|
+
word1 = Faker::Lorem.word
|
235
|
+
word2 = Faker::Lorem.word
|
236
|
+
branch = [word1, word2].join('_')
|
237
|
+
expect(subject.generate_title(branch)).to eq([word1.capitalize, word2].join(' '))
|
209
238
|
end
|
210
239
|
|
211
240
|
it 'should return a title based on the branch' do
|
212
|
-
|
213
|
-
|
241
|
+
word1 = Faker::Lorem.word
|
242
|
+
word2 = Faker::Lorem.word
|
243
|
+
branch = [word1, word2].join('-')
|
244
|
+
expect(subject.generate_title(branch)).to eq([word1.capitalize, word2].join(' '))
|
214
245
|
end
|
215
246
|
|
216
247
|
it 'should return a title based on the branch' do
|
217
|
-
branch =
|
218
|
-
expect(subject.generate_title(branch)).to eq(
|
248
|
+
branch = Faker::Lorem.word
|
249
|
+
expect(subject.generate_title(branch)).to eq(branch.capitalize)
|
219
250
|
end
|
220
251
|
|
221
252
|
it 'should return a title based on the branch' do
|
222
|
-
|
223
|
-
|
253
|
+
word1 = Faker::Lorem.word
|
254
|
+
word2 = Faker::Lorem.word
|
255
|
+
word3 = Faker::Lorem.word
|
256
|
+
branch = [word1, word2, word3].join('_')
|
257
|
+
expect(subject.generate_title(branch)).to eq([word1.capitalize, word2, word3].join(' '))
|
224
258
|
end
|
225
259
|
|
226
260
|
it 'should return a title based on the branch' do
|
227
|
-
|
228
|
-
|
261
|
+
word1 = Faker::Lorem.word
|
262
|
+
word2 = Faker::Lorem.word
|
263
|
+
word3 = Faker::Lorem.word
|
264
|
+
branch = [word1, word2, word3].join('-')
|
265
|
+
expect(subject.generate_title(branch)).to eq([word1.capitalize, word2, word3].join(' '))
|
229
266
|
end
|
230
267
|
end
|
231
268
|
end
|