twig 1.6 → 1.7
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/.travis.yml +2 -0
- data/HISTORY.md +27 -0
- data/README.md +41 -22
- data/bin/twig +12 -4
- data/bin/twig-checkout-child +56 -25
- data/bin/twig-checkout-parent +54 -26
- data/bin/twig-create-branch +40 -15
- data/bin/twig-diff +44 -25
- data/bin/twig-gh-open +43 -17
- data/bin/twig-gh-open-issue +51 -23
- data/bin/twig-gh-update +46 -20
- data/bin/twig-help +49 -5
- data/bin/twig-init +46 -13
- data/bin/twig-init-completion +46 -19
- data/bin/twig-init-completion-bash +50 -25
- data/bin/twig-init-config +77 -0
- data/bin/twig-rebase +85 -33
- data/config/twigconfig +47 -0
- data/lib/twig.rb +16 -10
- data/lib/twig/branch.rb +19 -12
- data/lib/twig/cli.rb +118 -183
- data/lib/twig/cli/help.rb +174 -0
- data/lib/twig/commit_time.rb +69 -14
- data/lib/twig/display.rb +19 -6
- data/lib/twig/github.rb +10 -8
- data/lib/twig/options.rb +22 -14
- data/lib/twig/subcommands.rb +13 -1
- data/lib/twig/system.rb +0 -2
- data/lib/twig/util.rb +0 -2
- data/lib/twig/version.rb +1 -1
- data/spec/spec_helper.rb +4 -3
- data/spec/twig/branch_spec.rb +100 -13
- data/spec/twig/cli/help_spec.rb +187 -0
- data/spec/twig/cli_spec.rb +34 -189
- data/spec/twig/commit_time_spec.rb +185 -16
- data/spec/twig/display_spec.rb +69 -48
- data/spec/twig/github_spec.rb +29 -15
- data/spec/twig/options_spec.rb +42 -13
- data/spec/twig/subcommands_spec.rb +35 -2
- data/spec/twig/system_spec.rb +5 -6
- data/spec/twig/util_spec.rb +20 -20
- data/spec/twig_spec.rb +21 -6
- data/twig.gemspec +14 -16
- metadata +23 -27
data/spec/twig/display_spec.rb
CHANGED
@@ -5,6 +5,37 @@ describe Twig::Display do
|
|
5
5
|
@twig = Twig.new
|
6
6
|
end
|
7
7
|
|
8
|
+
describe '.unformat_string' do
|
9
|
+
it 'unformats a plain text string' do
|
10
|
+
string = 'foo'
|
11
|
+
expect(Twig::Display.unformat_string(string)).to eq(string)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'unformats a string with color' do
|
15
|
+
string = 'foo'
|
16
|
+
formatted_string = @twig.format_string(string, :color => :red)
|
17
|
+
expect(formatted_string.size).to be > 3
|
18
|
+
|
19
|
+
expect(Twig::Display.unformat_string(formatted_string)).to eq(string)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'unformats a string with weight' do
|
23
|
+
string = 'foo'
|
24
|
+
formatted_string = @twig.format_string(string, :weight => :bold)
|
25
|
+
expect(formatted_string.size).to be > 3
|
26
|
+
|
27
|
+
expect(Twig::Display.unformat_string(formatted_string)).to eq(string)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'unformats a string with color and weight' do
|
31
|
+
string = 'foo'
|
32
|
+
formatted_string = @twig.format_string(string, :color => :red, :weight => :bold)
|
33
|
+
expect(formatted_string.size).to be > 3
|
34
|
+
|
35
|
+
expect(Twig::Display.unformat_string(formatted_string)).to eq(string)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
8
39
|
describe '#column' do
|
9
40
|
it 'returns a string with an exact fixed width' do
|
10
41
|
expect(@twig.column('foo', :width => 8)).to eq('foo' + (' ' * 5))
|
@@ -153,8 +184,8 @@ describe Twig::Display do
|
|
153
184
|
header_line = result.split("\n").first
|
154
185
|
color = Twig::Display::COLORS[:green]
|
155
186
|
expect(header_line.gsub(/\s/, '')).to eq(
|
156
|
-
"\e[#{color}mfoo\e[0m"
|
157
|
-
"\e[#{color}mquux\e[0m"
|
187
|
+
"\e[#{color}mfoo\e[0m" \
|
188
|
+
"\e[#{color}mquux\e[0m" \
|
158
189
|
"\e[#{color}mbranch\e[0m"
|
159
190
|
)
|
160
191
|
end
|
@@ -164,8 +195,8 @@ describe Twig::Display do
|
|
164
195
|
header_line = result.split("\n").first
|
165
196
|
weight = Twig::Display::WEIGHTS[:bold]
|
166
197
|
expect(header_line.gsub(/\s/, '')).to eq(
|
167
|
-
"\e[#{weight}mfoo\e[0m"
|
168
|
-
"\e[#{weight}mquux\e[0m"
|
198
|
+
"\e[#{weight}mfoo\e[0m" \
|
199
|
+
"\e[#{weight}mquux\e[0m" \
|
169
200
|
"\e[#{weight}mbranch\e[0m"
|
170
201
|
)
|
171
202
|
end
|
@@ -175,8 +206,8 @@ describe Twig::Display do
|
|
175
206
|
header_line = result.split("\n").first
|
176
207
|
color, weight = Twig::Display::COLORS[:red], Twig::Display::WEIGHTS[:bold]
|
177
208
|
expect(header_line.gsub(/\s/, '')).to eq(
|
178
|
-
"\e[#{color};#{weight}mfoo\e[0m"
|
179
|
-
"\e[#{color};#{weight}mquux\e[0m"
|
209
|
+
"\e[#{color};#{weight}mfoo\e[0m" \
|
210
|
+
"\e[#{color};#{weight}mquux\e[0m" \
|
180
211
|
"\e[#{color};#{weight}mbranch\e[0m"
|
181
212
|
)
|
182
213
|
end
|
@@ -194,7 +225,7 @@ describe Twig::Display do
|
|
194
225
|
allow(@other_branch).to receive(:get_properties) do
|
195
226
|
{ 'foo' => 'foo!', 'bar' => 'bar!' }
|
196
227
|
end
|
197
|
-
commit_time = Twig::CommitTime.new(Time.now
|
228
|
+
commit_time = Twig::CommitTime.new(Time.now)
|
198
229
|
expect(commit_time).to receive(:to_s).and_return('2000-01-01')
|
199
230
|
allow(@current_branch).to receive(:last_commit_time) { commit_time }
|
200
231
|
allow(@other_branch).to receive(:last_commit_time) { commit_time }
|
@@ -286,12 +317,11 @@ describe Twig::Display do
|
|
286
317
|
end
|
287
318
|
|
288
319
|
it 'returns a line for the current branch' do
|
289
|
-
indicator
|
290
|
-
branch
|
291
|
-
branch_regexp = /#{Regexp.escape(indicator)}#{Regexp.escape(branch.name)}/
|
320
|
+
indicator = Twig::Display::CURRENT_BRANCH_INDICATOR
|
321
|
+
branch = @current_branch
|
292
322
|
|
293
323
|
result = @twig.branch_list_line(branch)
|
294
|
-
unformatted_result =
|
324
|
+
unformatted_result = Twig::Display.unformat_string(result)
|
295
325
|
|
296
326
|
column_gutter = @twig.column_gutter
|
297
327
|
expect(unformatted_result).to eq(
|
@@ -303,6 +333,7 @@ describe Twig::Display do
|
|
303
333
|
end
|
304
334
|
|
305
335
|
it 'returns a line for a branch other than the current branch' do
|
336
|
+
no_indicator = ' ' * (Twig::Display::CURRENT_BRANCH_INDICATOR.size)
|
306
337
|
branch = @other_branch
|
307
338
|
|
308
339
|
result = @twig.branch_list_line(branch)
|
@@ -312,7 +343,7 @@ describe Twig::Display do
|
|
312
343
|
'2000-01-01' + (' ' * 25) + column_gutter +
|
313
344
|
'foo!' + (' ' * 12) + column_gutter +
|
314
345
|
'bar!' + (' ' * 12) + column_gutter +
|
315
|
-
|
346
|
+
no_indicator + 'other...'
|
316
347
|
)
|
317
348
|
end
|
318
349
|
end
|
@@ -353,11 +384,32 @@ describe Twig::Display do
|
|
353
384
|
end
|
354
385
|
end
|
355
386
|
|
387
|
+
describe '#format_strings?' do
|
388
|
+
before :each do
|
389
|
+
@twig = Twig.new
|
390
|
+
end
|
391
|
+
|
392
|
+
it 'returns false if using Windows' do
|
393
|
+
expect(Twig::System).to receive(:windows?) { true }
|
394
|
+
expect(@twig.format_strings?).to eql(false)
|
395
|
+
end
|
396
|
+
|
397
|
+
it 'returns true if expected conditions pass' do
|
398
|
+
expect(Twig::System).to receive(:windows?) { false }
|
399
|
+
expect(@twig.format_strings?).to eql(true)
|
400
|
+
end
|
401
|
+
end
|
402
|
+
|
356
403
|
describe '#format_string' do
|
357
404
|
it 'returns a plain string' do
|
358
405
|
expect(@twig.format_string('foo', {})).to eq('foo')
|
359
406
|
end
|
360
407
|
|
408
|
+
it 'returns a plain string if formatting is disabled' do
|
409
|
+
expect(@twig).to receive(:format_strings?) { false }
|
410
|
+
expect(@twig.format_string('foo', :color => :red)).to eql('foo')
|
411
|
+
end
|
412
|
+
|
361
413
|
it 'returns a string with a color code' do
|
362
414
|
expect(@twig.format_string('foo', :color => :red)).to eq(
|
363
415
|
"\e[#{Twig::Display::COLORS[:red]}mfoo\e[0m"
|
@@ -371,43 +423,12 @@ describe Twig::Display do
|
|
371
423
|
end
|
372
424
|
|
373
425
|
it 'returns a string with a color and weight code 'do
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
expect(@twig.format_string('foo', :color => :red, :weight => :bold)).to eq(
|
378
|
-
"\e[#{color_code};#{weight_code}mfoo\e[0m"
|
379
|
-
)
|
380
|
-
end
|
381
|
-
end
|
382
|
-
|
383
|
-
describe '#unformat_string' do
|
384
|
-
it 'unformats a plain text string' do
|
385
|
-
string = 'foo'
|
386
|
-
expect(@twig.unformat_string(string)).to eq(string)
|
387
|
-
end
|
388
|
-
|
389
|
-
it 'unformats a string with color' do
|
390
|
-
string = 'foo'
|
391
|
-
formatted_string = @twig.format_string(string, :color => :red)
|
392
|
-
expect(formatted_string.size).to be > 3
|
426
|
+
color_code = Twig::Display::COLORS[:red]
|
427
|
+
weight_code = Twig::Display::WEIGHTS[:bold]
|
393
428
|
|
394
|
-
expect(@twig.
|
395
|
-
|
396
|
-
|
397
|
-
it 'unformats a string with weight' do
|
398
|
-
string = 'foo'
|
399
|
-
formatted_string = @twig.format_string(string, :weight => :bold)
|
400
|
-
expect(formatted_string.size).to be > 3
|
401
|
-
|
402
|
-
expect(@twig.unformat_string(formatted_string)).to eq(string)
|
403
|
-
end
|
404
|
-
|
405
|
-
it 'unformats a string with color and weight' do
|
406
|
-
string = 'foo'
|
407
|
-
formatted_string = @twig.format_string(string, :color => :red, :weight => :bold)
|
408
|
-
expect(formatted_string.size).to be > 3
|
409
|
-
|
410
|
-
expect(@twig.unformat_string(formatted_string)).to eq(string)
|
429
|
+
expect(@twig.format_string('foo', :color => :red, :weight => :bold)).to eq(
|
430
|
+
"\e[#{color_code};#{weight_code}mfoo\e[0m"
|
431
|
+
)
|
411
432
|
end
|
412
433
|
end
|
413
434
|
end
|
data/spec/twig/github_spec.rb
CHANGED
@@ -26,7 +26,7 @@ describe Twig::GithubRepo do
|
|
26
26
|
block_has_run = true
|
27
27
|
end
|
28
28
|
|
29
|
-
expect(block_has_run).to
|
29
|
+
expect(block_has_run).to eql(true)
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'aborts if this is not a Git repo' do
|
@@ -35,7 +35,7 @@ describe Twig::GithubRepo do
|
|
35
35
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { origin_url }
|
36
36
|
allow_any_instance_of(Twig::GithubRepo).to receive(:username) { 'username' }
|
37
37
|
allow_any_instance_of(Twig::GithubRepo).to receive(:repository) { 'repository' }
|
38
|
-
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |message|
|
38
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
39
39
|
expect(message).to include('not a git repository')
|
40
40
|
end
|
41
41
|
|
@@ -47,7 +47,9 @@ describe Twig::GithubRepo do
|
|
47
47
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { '' }
|
48
48
|
allow_any_instance_of(Twig::GithubRepo).to receive(:username) { 'username' }
|
49
49
|
allow_any_instance_of(Twig::GithubRepo).to receive(:repository) { 'repository' }
|
50
|
-
expect_any_instance_of(Twig::GithubRepo).to receive(:
|
50
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
51
|
+
expect(message).to include('GitHub repository')
|
52
|
+
end
|
51
53
|
|
52
54
|
Twig::GithubRepo.new { |gh_repo| } # Do nothing
|
53
55
|
end
|
@@ -58,7 +60,9 @@ describe Twig::GithubRepo do
|
|
58
60
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { origin_url }
|
59
61
|
allow_any_instance_of(Twig::GithubRepo).to receive(:username) { '' }
|
60
62
|
allow_any_instance_of(Twig::GithubRepo).to receive(:repository) { 'repository' }
|
61
|
-
expect_any_instance_of(Twig::GithubRepo).to receive(:
|
63
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
64
|
+
expect(message).to include('GitHub repository')
|
65
|
+
end
|
62
66
|
|
63
67
|
Twig::GithubRepo.new { |gh_repo| } # Do nothing
|
64
68
|
end
|
@@ -69,7 +73,9 @@ describe Twig::GithubRepo do
|
|
69
73
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { origin_url }
|
70
74
|
allow_any_instance_of(Twig::GithubRepo).to receive(:username) { 'username' }
|
71
75
|
allow_any_instance_of(Twig::GithubRepo).to receive(:repository) { '' }
|
72
|
-
expect_any_instance_of(Twig::GithubRepo).to receive(:
|
76
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
77
|
+
expect(message).to include('GitHub repository')
|
78
|
+
end
|
73
79
|
|
74
80
|
Twig::GithubRepo.new { |gh_repo| } # Do nothing
|
75
81
|
end
|
@@ -80,7 +86,9 @@ describe Twig::GithubRepo do
|
|
80
86
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { origin_url }
|
81
87
|
allow_any_instance_of(Twig::GithubRepo).to receive(:username) { 'username' }
|
82
88
|
allow_any_instance_of(Twig::GithubRepo).to receive(:repository) { 'repository' }
|
83
|
-
expect_any_instance_of(Twig::GithubRepo).to receive(:
|
89
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
90
|
+
expect(message).to include('GitHub repository')
|
91
|
+
end
|
84
92
|
|
85
93
|
Twig::GithubRepo.new { |gh_repo| } # Do nothing
|
86
94
|
end
|
@@ -145,7 +153,7 @@ describe Twig::GithubRepo do
|
|
145
153
|
is_github_repo = gh_repo.github_repo?
|
146
154
|
end
|
147
155
|
|
148
|
-
expect(is_github_repo).to
|
156
|
+
expect(is_github_repo).to eql(true)
|
149
157
|
end
|
150
158
|
end
|
151
159
|
|
@@ -161,7 +169,7 @@ describe Twig::GithubRepo do
|
|
161
169
|
is_github_repo = gh_repo.github_repo?
|
162
170
|
end
|
163
171
|
|
164
|
-
expect(is_github_repo).to
|
172
|
+
expect(is_github_repo).to eql(true)
|
165
173
|
end
|
166
174
|
end
|
167
175
|
|
@@ -177,7 +185,7 @@ describe Twig::GithubRepo do
|
|
177
185
|
is_github_repo = gh_repo.github_repo?
|
178
186
|
end
|
179
187
|
|
180
|
-
expect(is_github_repo).to
|
188
|
+
expect(is_github_repo).to eql(true)
|
181
189
|
end
|
182
190
|
end
|
183
191
|
|
@@ -185,7 +193,9 @@ describe Twig::GithubRepo do
|
|
185
193
|
before :each do
|
186
194
|
origin_url = @generic_https_url
|
187
195
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { origin_url }
|
188
|
-
|
196
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
197
|
+
expect(message).to include('GitHub repository')
|
198
|
+
end
|
189
199
|
end
|
190
200
|
|
191
201
|
it 'returns false' do
|
@@ -194,7 +204,7 @@ describe Twig::GithubRepo do
|
|
194
204
|
is_github_repo = gh_repo.github_repo?
|
195
205
|
end
|
196
206
|
|
197
|
-
expect(is_github_repo).to
|
207
|
+
expect(is_github_repo).to eql(false)
|
198
208
|
end
|
199
209
|
end
|
200
210
|
|
@@ -202,7 +212,9 @@ describe Twig::GithubRepo do
|
|
202
212
|
before :each do
|
203
213
|
origin_url = @generic_git_read_only_url
|
204
214
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { origin_url }
|
205
|
-
|
215
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
216
|
+
expect(message).to include('GitHub repository')
|
217
|
+
end
|
206
218
|
end
|
207
219
|
|
208
220
|
it 'returns false' do
|
@@ -211,7 +223,7 @@ describe Twig::GithubRepo do
|
|
211
223
|
is_github_repo = gh_repo.github_repo?
|
212
224
|
end
|
213
225
|
|
214
|
-
expect(is_github_repo).to
|
226
|
+
expect(is_github_repo).to eql(false)
|
215
227
|
end
|
216
228
|
end
|
217
229
|
|
@@ -219,7 +231,9 @@ describe Twig::GithubRepo do
|
|
219
231
|
before :each do
|
220
232
|
origin_url = @generic_ssh_read_write_url
|
221
233
|
allow_any_instance_of(Twig::GithubRepo).to receive(:origin_url) { origin_url }
|
222
|
-
|
234
|
+
expect_any_instance_of(Twig::GithubRepo).to receive(:abort) do |repo, message|
|
235
|
+
expect(message).to include('GitHub repository')
|
236
|
+
end
|
223
237
|
end
|
224
238
|
|
225
239
|
it 'returns false' do
|
@@ -228,7 +242,7 @@ describe Twig::GithubRepo do
|
|
228
242
|
is_github_repo = gh_repo.github_repo?
|
229
243
|
end
|
230
244
|
|
231
|
-
expect(is_github_repo).to
|
245
|
+
expect(is_github_repo).to eql(false)
|
232
246
|
end
|
233
247
|
end
|
234
248
|
end
|
data/spec/twig/options_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe Twig::Options do
|
|
13
13
|
|
14
14
|
context 'with a config path that exists' do
|
15
15
|
before :each do
|
16
|
-
expect(File).to receive(:
|
16
|
+
expect(File).to receive(:exist?).with(Twig::CONFIG_PATH).and_return(true)
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'returns the config path if is readable' do
|
@@ -41,14 +41,14 @@ describe Twig::Options do
|
|
41
41
|
|
42
42
|
context 'with a config path that does not exist' do
|
43
43
|
before :each do
|
44
|
-
expect(File).to receive(:
|
44
|
+
expect(File).to receive(:exist?).with(Twig::CONFIG_PATH).and_return(false)
|
45
45
|
expect(File).to receive(:expand_path).with(Twig::DEPRECATED_CONFIG_PATH).
|
46
46
|
and_return(Twig::DEPRECATED_CONFIG_PATH)
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'prints a deprecation warning and returns the deprecated config path if it exists and is readable' do
|
50
50
|
path = Twig::DEPRECATED_CONFIG_PATH
|
51
|
-
expect(File).to receive(:
|
51
|
+
expect(File).to receive(:exist?).with(path).and_return(true)
|
52
52
|
expect(File).to receive(:readable?).with(path).and_return(true)
|
53
53
|
expect($stderr).to receive(:puts) do |message|
|
54
54
|
expect(message).to match(/^DEPRECATED:/)
|
@@ -63,7 +63,7 @@ describe Twig::Options do
|
|
63
63
|
|
64
64
|
it 'prints a deprecation warning and returns nil if the deprecated config path exists but is not readable' do
|
65
65
|
path = Twig::DEPRECATED_CONFIG_PATH
|
66
|
-
expect(File).to receive(:
|
66
|
+
expect(File).to receive(:exist?).with(path).and_return(true)
|
67
67
|
expect(File).to receive(:readable?).with(path).and_return(false)
|
68
68
|
expect($stderr).to receive(:puts) do |message|
|
69
69
|
expect(message).to match(/^DEPRECATED:/)
|
@@ -78,7 +78,7 @@ describe Twig::Options do
|
|
78
78
|
|
79
79
|
it 'returns nil if the deprecated config path does not exist' do
|
80
80
|
path = Twig::DEPRECATED_CONFIG_PATH
|
81
|
-
expect(File).to receive(:
|
81
|
+
expect(File).to receive(:exist?).with(path).and_return(false)
|
82
82
|
|
83
83
|
result = @twig.readable_config_file_path
|
84
84
|
|
@@ -248,7 +248,10 @@ describe Twig::Options do
|
|
248
248
|
|
249
249
|
# GitHub integration:
|
250
250
|
'github-api-uri-prefix' => 'https://github-enterprise.example.com/api/v3',
|
251
|
-
'github-uri-prefix' => 'https://github-enterprise.example.com'
|
251
|
+
'github-uri-prefix' => 'https://github-enterprise.example.com',
|
252
|
+
|
253
|
+
# Subcommands:
|
254
|
+
'twig-rebase-autoconfirm' => 'true'
|
252
255
|
)
|
253
256
|
|
254
257
|
# Check preconditions
|
@@ -269,6 +272,7 @@ describe Twig::Options do
|
|
269
272
|
expect(@twig.options[:property_only_name]).to be_nil
|
270
273
|
expect(@twig.options[:property_width]).to be_nil
|
271
274
|
expect(@twig.options[:reverse]).to be_nil
|
275
|
+
expect(@twig.options[:twig_rebase_autoconfirm]).to be_nil
|
272
276
|
|
273
277
|
@twig.read_config_file!
|
274
278
|
|
@@ -294,7 +298,8 @@ describe Twig::Options do
|
|
294
298
|
expect(@twig.options[:property_except_name]).to eq(/foo/)
|
295
299
|
expect(@twig.options[:property_only_name]).to eq(/bar/)
|
296
300
|
expect(@twig.options[:property_width]).to eq(:foo => 4)
|
297
|
-
expect(@twig.options[:reverse]).to
|
301
|
+
expect(@twig.options[:reverse]).to eql(true)
|
302
|
+
expect(@twig.options[:twig_rebase_autoconfirm]).to eql(true)
|
298
303
|
end
|
299
304
|
end
|
300
305
|
|
@@ -306,7 +311,7 @@ describe Twig::Options do
|
|
306
311
|
|
307
312
|
it 'succeeds' do
|
308
313
|
branch_name = 'foo'
|
309
|
-
expect(Twig::Branch).to receive(:all_branch_names).and_return(%[foo bar])
|
314
|
+
expect(Twig::Branch).to receive(:all_branch_names).and_return(%w[foo bar])
|
310
315
|
|
311
316
|
@twig.set_option(:branch, branch_name)
|
312
317
|
|
@@ -426,7 +431,7 @@ describe Twig::Options do
|
|
426
431
|
|
427
432
|
@twig.set_option(:reverse, input)
|
428
433
|
|
429
|
-
expect(@twig.options[:reverse]).to
|
434
|
+
expect(@twig.options[:reverse]).to eql(true)
|
430
435
|
end
|
431
436
|
|
432
437
|
it 'sets the option to false when input is not truthy' do
|
@@ -435,7 +440,31 @@ describe Twig::Options do
|
|
435
440
|
|
436
441
|
@twig.set_option(:reverse, input)
|
437
442
|
|
438
|
-
expect(@twig.options[:reverse]).to
|
443
|
+
expect(@twig.options[:reverse]).to eql(false)
|
444
|
+
end
|
445
|
+
end
|
446
|
+
|
447
|
+
context 'when setting a :twig_rebase_autoconfirm option' do
|
448
|
+
before :each do
|
449
|
+
expect(@twig.options[:twig_rebase_autoconfirm]).to be_nil
|
450
|
+
end
|
451
|
+
|
452
|
+
it 'sets the option to true when input is truthy' do
|
453
|
+
input = 'yes'
|
454
|
+
expect(Twig::Util).to receive(:truthy?).with(input).and_call_original
|
455
|
+
|
456
|
+
@twig.set_option(:twig_rebase_autoconfirm, input)
|
457
|
+
|
458
|
+
expect(@twig.options[:twig_rebase_autoconfirm]).to eql(true)
|
459
|
+
end
|
460
|
+
|
461
|
+
it 'sets the option to false when input is not truthy' do
|
462
|
+
input = 'blargh'
|
463
|
+
expect(Twig::Util).to receive(:truthy?).with(input).and_call_original
|
464
|
+
|
465
|
+
@twig.set_option(:twig_rebase_autoconfirm, input)
|
466
|
+
|
467
|
+
expect(@twig.options[:twig_rebase_autoconfirm]).to eql(false)
|
439
468
|
end
|
440
469
|
end
|
441
470
|
|
@@ -549,7 +578,7 @@ describe Twig::Options do
|
|
549
578
|
|
550
579
|
begin
|
551
580
|
@twig.set_property_width_option(:branch => width)
|
552
|
-
rescue SystemExit
|
581
|
+
rescue SystemExit
|
553
582
|
end
|
554
583
|
|
555
584
|
expect(@twig.options[:property_width]).to eq({})
|
@@ -566,7 +595,7 @@ describe Twig::Options do
|
|
566
595
|
|
567
596
|
begin
|
568
597
|
@twig.set_property_width_option(:x => width)
|
569
|
-
rescue SystemExit
|
598
|
+
rescue SystemExit
|
570
599
|
end
|
571
600
|
|
572
601
|
expect(@twig.options[:property_width]).to eq({})
|
@@ -583,7 +612,7 @@ describe Twig::Options do
|
|
583
612
|
|
584
613
|
begin
|
585
614
|
@twig.set_property_width_option(property_name => width)
|
586
|
-
rescue SystemExit
|
615
|
+
rescue SystemExit
|
587
616
|
end
|
588
617
|
|
589
618
|
expect(@twig.options[:property_width]).to eq({})
|