seeing_is_believing 3.0.0.beta.4 → 3.0.0.beta.5
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 +0 -8
- data/Rakefile +1 -1
- data/Readme.md +65 -25
- data/bin/seeing_is_believing +1 -0
- data/docs/sib-streaming.gif +0 -0
- data/features/deprecated-flags.feature +62 -2
- data/features/errors.feature +12 -7
- data/features/examples.feature +143 -4
- data/features/flags.feature +89 -29
- data/features/regression.feature +58 -14
- data/features/support/env.rb +4 -0
- data/features/xmpfilter-style.feature +181 -36
- data/lib/seeing_is_believing.rb +44 -33
- data/lib/seeing_is_believing/binary.rb +31 -88
- data/lib/seeing_is_believing/binary/align_chunk.rb +30 -11
- data/lib/seeing_is_believing/binary/annotate_end_of_file.rb +10 -16
- data/lib/seeing_is_believing/binary/annotate_every_line.rb +5 -25
- data/lib/seeing_is_believing/binary/annotate_marked_lines.rb +136 -0
- data/lib/seeing_is_believing/binary/comment_lines.rb +8 -10
- data/lib/seeing_is_believing/binary/commentable_lines.rb +20 -26
- data/lib/seeing_is_believing/binary/config.rb +392 -0
- data/lib/seeing_is_believing/binary/data_structures.rb +57 -0
- data/lib/seeing_is_believing/binary/engine.rb +104 -0
- data/lib/seeing_is_believing/binary/{comment_formatter.rb → format_comment.rb} +6 -6
- data/lib/seeing_is_believing/binary/remove_annotations.rb +29 -28
- data/lib/seeing_is_believing/binary/rewrite_comments.rb +42 -43
- data/lib/seeing_is_believing/code.rb +105 -49
- data/lib/seeing_is_believing/debugger.rb +6 -5
- data/lib/seeing_is_believing/error.rb +6 -17
- data/lib/seeing_is_believing/evaluate_by_moving_files.rb +78 -129
- data/lib/seeing_is_believing/event_stream/consumer.rb +114 -64
- data/lib/seeing_is_believing/event_stream/events.rb +169 -11
- data/lib/seeing_is_believing/event_stream/handlers/debug.rb +57 -0
- data/lib/seeing_is_believing/event_stream/handlers/record_exitstatus.rb +18 -0
- data/lib/seeing_is_believing/event_stream/handlers/stream_json_events.rb +45 -0
- data/lib/seeing_is_believing/event_stream/handlers/update_result.rb +39 -0
- data/lib/seeing_is_believing/event_stream/producer.rb +25 -24
- data/lib/seeing_is_believing/hash_struct.rb +206 -0
- data/lib/seeing_is_believing/result.rb +20 -3
- data/lib/seeing_is_believing/the_matrix.rb +20 -12
- data/lib/seeing_is_believing/version.rb +1 -1
- data/lib/seeing_is_believing/wrap_expressions.rb +55 -115
- data/lib/seeing_is_believing/wrap_expressions_with_inspect.rb +14 -0
- data/seeing_is_believing.gemspec +1 -1
- data/spec/binary/alignment_specs.rb +27 -0
- data/spec/binary/comment_lines_spec.rb +3 -2
- data/spec/binary/config_spec.rb +657 -0
- data/spec/binary/engine_spec.rb +97 -0
- data/spec/binary/{comment_formatter_spec.rb → format_comment_spec.rb} +2 -2
- data/spec/binary/marker_spec.rb +71 -0
- data/spec/binary/options_spec.rb +0 -0
- data/spec/binary/remove_annotations_spec.rb +31 -18
- data/spec/binary/rewrite_comments_spec.rb +26 -11
- data/spec/code_spec.rb +190 -6
- data/spec/debugger_spec.rb +4 -0
- data/spec/evaluate_by_moving_files_spec.rb +38 -20
- data/spec/event_stream_spec.rb +265 -116
- data/spec/hash_struct_spec.rb +514 -0
- data/spec/seeing_is_believing_spec.rb +108 -46
- data/spec/spec_helper.rb +9 -0
- data/spec/wrap_expressions_spec.rb +207 -172
- metadata +30 -18
- data/docs/for-presentations +0 -33
- data/lib/seeing_is_believing/binary/annotate_xmpfilter_style.rb +0 -128
- data/lib/seeing_is_believing/binary/interpret_flags.rb +0 -156
- data/lib/seeing_is_believing/binary/parse_args.rb +0 -263
- data/lib/seeing_is_believing/event_stream/update_result.rb +0 -24
- data/lib/seeing_is_believing/inspect_expressions.rb +0 -21
- data/lib/seeing_is_believing/parser_helpers.rb +0 -82
- data/spec/binary/interpret_flags_spec.rb +0 -332
- data/spec/binary/parse_args_spec.rb +0 -415
@@ -1,415 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'seeing_is_believing/binary/parse_args'
|
3
|
-
|
4
|
-
RSpec.describe SeeingIsBelieving::Binary::ParseArgs do
|
5
|
-
RSpec::Matchers.define :have_error do |error_assertion|
|
6
|
-
match do |options|
|
7
|
-
options[:errors].find do |error|
|
8
|
-
case error_assertion
|
9
|
-
when Regexp
|
10
|
-
error_assertion =~ error
|
11
|
-
else
|
12
|
-
error_assertion == error
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
failure_message do |options|
|
18
|
-
"#{error_assertion.inspect} should have matched one of the errors: #{options[:errors].inspect}"
|
19
|
-
end
|
20
|
-
|
21
|
-
failure_message_when_negated do |options|
|
22
|
-
"#{error_assertion.inspect} should NOT have matched any of the errors: #{options[:errors].inspect}"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def parse(args)
|
27
|
-
SeeingIsBelieving::Binary::ParseArgs.call args
|
28
|
-
end
|
29
|
-
|
30
|
-
def matrix_file
|
31
|
-
'seeing_is_believing/the_matrix'
|
32
|
-
end
|
33
|
-
|
34
|
-
shared_examples 'it requires a positive int argument' do |flags|
|
35
|
-
it 'expects an integer argument' do
|
36
|
-
flags.each do |flag|
|
37
|
-
expect(parse([flag, '1'])).to_not have_error /#{flag}/
|
38
|
-
expect(parse([flag, '0'])).to have_error /#{flag}/
|
39
|
-
expect(parse([flag, '-1'])).to have_error /#{flag}/
|
40
|
-
expect(parse([flag, '1.0'])).to have_error /#{flag}/
|
41
|
-
expect(parse([flag, 'a'])).to have_error /#{flag}/
|
42
|
-
expect(parse([flag, '' ])).to have_error /#{flag}/
|
43
|
-
expect(parse([flag ])).to have_error /#{flag}/
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
shared_examples 'it requires a non-negative float or int' do |flags|
|
49
|
-
it 'expects a non-negative float or int argument' do
|
50
|
-
flags.each do |flag|
|
51
|
-
expect(parse([flag, '1'])).to_not have_error /#{flag}/
|
52
|
-
expect(parse([flag, '0'])).to_not have_error /#{flag}/
|
53
|
-
expect(parse([flag, '-1'])).to have_error /#{flag}/
|
54
|
-
expect(parse([flag,'-1.0'])).to have_error /#{flag}/
|
55
|
-
expect(parse([flag, '1.0'])).to_not have_error /#{flag}/
|
56
|
-
expect(parse([flag, 'a'])).to have_error /#{flag}/
|
57
|
-
expect(parse([flag, '' ])).to have_error /#{flag}/
|
58
|
-
expect(parse([flag ])).to have_error /#{flag}/
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'does not mutate the input array' do
|
64
|
-
ary = ['a']
|
65
|
-
parse(ary)
|
66
|
-
expect(ary).to eq ['a']
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'can interpret conjoined short-flags' do
|
70
|
-
expect(parse(['-hjg'])).to eq parse(['-h', '-j', '-g'])
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'can interpret conjoined short-flags where one of them is h+' do
|
74
|
-
expect(parse(['-h+jg'])).to eq parse(['-h+', '-j', '-g'])
|
75
|
-
expect(parse(['-jh+g'])).to eq parse(['-j', '-h+', '-g'])
|
76
|
-
expect(parse(['-jgh+'])).to eq parse(['-j', '-g', '-h+'])
|
77
|
-
end
|
78
|
-
|
79
|
-
specify 'unknown options set an error' do
|
80
|
-
expect(parse(['--xyz' ])).to have_error 'Unknown option: "--xyz"'
|
81
|
-
expect(parse(['-y' ])).to have_error 'Unknown option: "-y"'
|
82
|
-
expect(parse(['-y', 'b'])).to have_error 'Unknown option: "-y"'
|
83
|
-
expect(parse(['-+h' ])).to have_error 'Unknown option: "-+"'
|
84
|
-
end
|
85
|
-
|
86
|
-
example 'example: multiple args' do
|
87
|
-
options = parse(%w[filename -h -r torequire])
|
88
|
-
expect(options[:filename]).to eq 'filename'
|
89
|
-
expect(options[:require]).to include 'torequire'
|
90
|
-
expect(options[:help]).to be_a_kind_of String
|
91
|
-
expect(options[:errors]).to be_empty
|
92
|
-
end
|
93
|
-
|
94
|
-
describe ':filename' do
|
95
|
-
it 'defaults to nil' do
|
96
|
-
expect(parse([])[:filename]).to be_nil
|
97
|
-
end
|
98
|
-
|
99
|
-
it 'is the first non-flag' do
|
100
|
-
expect(parse(['a'])[:filename]).to eq 'a'
|
101
|
-
expect(parse(['-x', 'a'])[:filename]).to eq 'a'
|
102
|
-
expect(parse(['a', '-x'])[:filename]).to eq 'a'
|
103
|
-
end
|
104
|
-
|
105
|
-
it 'records all filenames it sees' do
|
106
|
-
expect(parse([])[:filenames]).to eq []
|
107
|
-
expect(parse(['a'])[:filenames]).to eq ['a']
|
108
|
-
expect(parse(['a', 'b'])[:filenames]).to eq ['a', 'b']
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
describe ':result_length' do
|
113
|
-
it 'defaults to infinity' do
|
114
|
-
expect(parse([])[:max_result_length]).to eq Float::INFINITY
|
115
|
-
end
|
116
|
-
|
117
|
-
it 'is set with -D and --result-length' do
|
118
|
-
expect(parse(['-D', '10'])[:max_result_length]).to eq 10
|
119
|
-
expect(parse(['--result-length', '10'])[:max_result_length]).to eq 10
|
120
|
-
end
|
121
|
-
|
122
|
-
it_behaves_like 'it requires a positive int argument', ['-D', '--result-length']
|
123
|
-
end
|
124
|
-
|
125
|
-
describe ':max_line_length' do
|
126
|
-
it 'defaults to infinity' do
|
127
|
-
expect(parse([])[:max_line_length]).to eq Float::INFINITY
|
128
|
-
end
|
129
|
-
|
130
|
-
it 'is set with -d and --line-length' do
|
131
|
-
expect(parse(['-d', '10'])[:max_line_length]).to eq 10
|
132
|
-
expect(parse(['--line-length', '10'])[:max_line_length]).to eq 10
|
133
|
-
end
|
134
|
-
|
135
|
-
it_behaves_like 'it requires a positive int argument', ['-d', '--line-length']
|
136
|
-
end
|
137
|
-
|
138
|
-
describe :require do
|
139
|
-
it 'defaults to the matrix file array' do
|
140
|
-
expect(parse([])[:require]).to eq [matrix_file]
|
141
|
-
end
|
142
|
-
|
143
|
-
it '-r and --require sets each required file into the result array' do
|
144
|
-
expect(parse(%w[-r f1 --require f2])[:require]).to eq [matrix_file, 'f1', 'f2']
|
145
|
-
end
|
146
|
-
|
147
|
-
it 'sets an error if not provided with a filename' do
|
148
|
-
expect(parse(['--require', 'f'])).to_not have_error /-r/
|
149
|
-
expect(parse(['-r'])).to have_error /-r\b/
|
150
|
-
expect(parse(['--require'])).to have_error /--require\b/
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
describe ':help' do
|
155
|
-
it 'defaults to nil' do
|
156
|
-
expect(parse([])[:help]).to be_nil
|
157
|
-
end
|
158
|
-
|
159
|
-
it 'is set to "help" with -h and --help and -help' do
|
160
|
-
expect(parse(['-h'])[:help]).to eq 'help'
|
161
|
-
expect(parse(['--help'])[:help]).to eq 'help'
|
162
|
-
end
|
163
|
-
|
164
|
-
it 'is set to "help+" with examples help screen with --help+ and -h+' do
|
165
|
-
expect(parse(['-h+'])[:help]).to eq 'help+'
|
166
|
-
expect(parse(['--help+'])[:help]).to eq 'help+'
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
describe 'short and long help_screen' do
|
171
|
-
specify 'they are the short and long help screens' do
|
172
|
-
short = parse([])[:short_help_screen]
|
173
|
-
long = parse([])[:long_help_screen]
|
174
|
-
expect(short.length).to be < long.length
|
175
|
-
expect(short).to include 'Usage'
|
176
|
-
expect(long).to include 'Usage'
|
177
|
-
expect(short).to_not include 'Examples'
|
178
|
-
expect(long).to include 'Examples'
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
describe ':program_from_args' do
|
183
|
-
it 'defaults to nil' do
|
184
|
-
expect(parse([])[:program_from_args]).to be_nil
|
185
|
-
end
|
186
|
-
|
187
|
-
it 'is set with -e or --program, and takes the next arg' do
|
188
|
-
expect(parse(['-e', '1'])[:program_from_args]).to eq '1'
|
189
|
-
expect(parse(['--program', '1'])[:program_from_args]).to eq '1'
|
190
|
-
end
|
191
|
-
|
192
|
-
it 'sets an error if not given a program' do
|
193
|
-
expect(parse([])).to_not have_error /-e/
|
194
|
-
expect(parse([])).to_not have_error /--program/
|
195
|
-
expect(parse(['-e'])).to have_error /-e/
|
196
|
-
expect(parse(['--program'])).to have_error /--program/
|
197
|
-
end
|
198
|
-
end
|
199
|
-
|
200
|
-
describe':load_path' do
|
201
|
-
it 'defaults to an empty array' do
|
202
|
-
expect(parse([])[:load_path]).to be_empty
|
203
|
-
end
|
204
|
-
|
205
|
-
specify '-I and --load-path sets each required file into the result array' do
|
206
|
-
expect(parse(%w[-I f1 --load-path f2])[:load_path]).to eq %w[f1 f2]
|
207
|
-
end
|
208
|
-
|
209
|
-
it 'sets an error if not provided with a dir' do
|
210
|
-
expect(parse(['--load-path', 'f'])).to_not have_error /-I/
|
211
|
-
expect(parse(['-I'])).to have_error /-I\b/
|
212
|
-
expect(parse(['--load-path'])).to have_error /--load-path\b/
|
213
|
-
end
|
214
|
-
end
|
215
|
-
|
216
|
-
describe ':encoding' do
|
217
|
-
it 'defaults to nil' do
|
218
|
-
expect(parse([])[:encoding]).to be_nil
|
219
|
-
end
|
220
|
-
|
221
|
-
specify '-K and --encoding sets the encoding to the next argument' do
|
222
|
-
expect(parse(%w[-K u])[:encoding]).to eq 'u'
|
223
|
-
expect(parse(%w[--encoding u])[:encoding]).to eq 'u'
|
224
|
-
end
|
225
|
-
|
226
|
-
specify 'with -K, the argument can be placed immediately after it (e.g. -Ku) because Ruby allows this' do
|
227
|
-
expect(parse(['-Ku'])[:encoding]).to eq 'u'
|
228
|
-
expect(parse(['-Ku'])).to_not have_error /-K/
|
229
|
-
end
|
230
|
-
|
231
|
-
it 'sets an error if not provided with an encoding' do
|
232
|
-
expect(parse(['-Ku'])).to_not have_error /-K/
|
233
|
-
expect(parse(['-K u'])).to_not have_error /-K/
|
234
|
-
expect(parse(['--encoding', 'u'])).to_not have_error /--encoding/
|
235
|
-
expect(parse(['-K'])).to have_error /-K/
|
236
|
-
expect(parse(['--encoding'])).to have_error /--encoding/
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
describe ':as' do
|
241
|
-
it 'defaults to nil' do
|
242
|
-
expect(parse([])[:as]).to be_nil
|
243
|
-
end
|
244
|
-
|
245
|
-
it 'can be set with -a and --as' do
|
246
|
-
expect(parse(%w[-a abc])[:as]).to eq 'abc'
|
247
|
-
expect(parse(%w[--as abc])[:as]).to eq 'abc'
|
248
|
-
end
|
249
|
-
|
250
|
-
it 'sets an error if not provided with a filename' do
|
251
|
-
expect(parse(%w[-a f])).to_not have_error /-a/
|
252
|
-
expect(parse(%w[-as f])).to_not have_error /--as/
|
253
|
-
expect(parse(%w[-a ])).to have_error /-a/
|
254
|
-
expect(parse(%w[--as ])).to have_error /--as/
|
255
|
-
end
|
256
|
-
end
|
257
|
-
|
258
|
-
describe ':clean' do
|
259
|
-
it 'defaults to false' do
|
260
|
-
expect(parse([])[:clean]).to eq false
|
261
|
-
end
|
262
|
-
|
263
|
-
it 'can be set with -c and --clean' do
|
264
|
-
expect(parse(%w[-c])[:clean]).to eq true
|
265
|
-
expect(parse(%w[--clean])[:clean]).to eq true
|
266
|
-
end
|
267
|
-
end
|
268
|
-
|
269
|
-
describe ':version' do
|
270
|
-
it 'defaults to false' do
|
271
|
-
expect(parse([])[:version]).to eq false
|
272
|
-
end
|
273
|
-
|
274
|
-
it 'can be set with -v and --version' do
|
275
|
-
expect(parse(%w[-v])[:version]).to eq true
|
276
|
-
expect(parse(%w[--version])[:version]).to eq true
|
277
|
-
end
|
278
|
-
end
|
279
|
-
|
280
|
-
describe ':timeout' do
|
281
|
-
it 'defaults to 0' do
|
282
|
-
expect(parse([])[:timeout]).to eq 0
|
283
|
-
end
|
284
|
-
|
285
|
-
it_behaves_like 'it requires a non-negative float or int', ['-t', '--timeout']
|
286
|
-
end
|
287
|
-
|
288
|
-
describe ':alignment_strategy' do
|
289
|
-
# TODO: maybe change the default?
|
290
|
-
it 'defaults to "chunk"' do
|
291
|
-
expect(parse([])[:alignment_strategy]).to eq 'chunk'
|
292
|
-
end
|
293
|
-
|
294
|
-
specify '-s and --alignment-strategy sets the alignment strategy' do
|
295
|
-
expect(parse(['-s', 'chunk'])[:alignment_strategy]).to eq 'chunk'
|
296
|
-
expect(parse(['--alignment-strategy', 'chunk'])[:alignment_strategy]).to eq 'chunk'
|
297
|
-
end
|
298
|
-
|
299
|
-
it 'accepts values: file, line, chunk' do
|
300
|
-
expect(parse(['-s', 'file'])[:alignment_strategy]).to eq 'file'
|
301
|
-
expect(parse(['-s', 'line'])[:alignment_strategy]).to eq 'line'
|
302
|
-
expect(parse(['-s', 'chunk'])[:alignment_strategy]).to eq 'chunk'
|
303
|
-
end
|
304
|
-
|
305
|
-
it 'sets an error if not provided with a strategy' do
|
306
|
-
expect(parse(['-s', 'file'])).to_not have_error /alignment-strategy/
|
307
|
-
end
|
308
|
-
end
|
309
|
-
|
310
|
-
describe ':inherit_exit_status' do
|
311
|
-
it 'defaults to false' do
|
312
|
-
expect(parse([])[:inherit_exit_status]).to eq false
|
313
|
-
end
|
314
|
-
|
315
|
-
it 'can be set with --inherit-exit-status or -i' do
|
316
|
-
expect(parse(['--inherit-exit-status'])[:inherit_exit_status]).to be true
|
317
|
-
expect(parse(['-i'])[:inherit_exit_status]).to be true
|
318
|
-
end
|
319
|
-
end
|
320
|
-
|
321
|
-
describe ':xmpfilter_style' do
|
322
|
-
it 'defaults to false' do
|
323
|
-
expect(parse([])[:xmpfilter_style]).to be false
|
324
|
-
end
|
325
|
-
|
326
|
-
it 'can be set with --xmpfilter-style or -x' do
|
327
|
-
expect(parse(['--xmpfilter-style'])[:xmpfilter_style]).to be true
|
328
|
-
expect(parse(['-x'])[:xmpfilter_style]).to be true
|
329
|
-
end
|
330
|
-
end
|
331
|
-
|
332
|
-
describe ':debug' do
|
333
|
-
it 'defaults to a false' do
|
334
|
-
expect(parse([])[:debug]).to eq false
|
335
|
-
end
|
336
|
-
|
337
|
-
it 'can be enabled with --debug or -g' do
|
338
|
-
expect(parse(['--debug'])[:debug]).to eq true
|
339
|
-
expect(parse(['-g'])[:debug]).to eq true
|
340
|
-
end
|
341
|
-
end
|
342
|
-
|
343
|
-
describe ':shebang' do
|
344
|
-
it 'is added to the list of deprecated flags' do
|
345
|
-
expect(parse([])[:deprecated_flags]).to eq []
|
346
|
-
parsed = parse(['--shebang', 'not_ruby', 'other'])
|
347
|
-
expect(parsed[:shebang]).to eq nil
|
348
|
-
expect(parsed[:deprecated_flags]).to eq ['--shebang', 'not_ruby']
|
349
|
-
end
|
350
|
-
|
351
|
-
it 'sets an error if not given a next arg to execute' do
|
352
|
-
expect(parse([])).to_not have_error /--shebang/
|
353
|
-
expect(parse(['--shebang'])).to have_error /--shebang/
|
354
|
-
end
|
355
|
-
end
|
356
|
-
|
357
|
-
describe ':number_of_captures' do
|
358
|
-
it 'defaults to infinity' do
|
359
|
-
expect(parse([])[:number_of_captures]).to eq Float::INFINITY
|
360
|
-
end
|
361
|
-
|
362
|
-
it 'can be set with --number-of-captures or -n' do
|
363
|
-
expect(parse(['-n', '10'])[:number_of_captures]).to eq 10
|
364
|
-
expect(parse(['--number-of-captures', '10'])[:number_of_captures]).to eq 10
|
365
|
-
end
|
366
|
-
|
367
|
-
it_behaves_like 'it requires a positive int argument', ['-n', '--number-of-captures']
|
368
|
-
end
|
369
|
-
|
370
|
-
describe ':result_as_json' do
|
371
|
-
it 'defaults to false' do
|
372
|
-
expect(parse([])[:result_as_json]).to eq false
|
373
|
-
end
|
374
|
-
|
375
|
-
it 'can be enabled with --json or -j' do
|
376
|
-
expect(parse(['--json'])[:result_as_json]).to eq true
|
377
|
-
expect(parse(['-j'])[:result_as_json]).to eq true
|
378
|
-
end
|
379
|
-
end
|
380
|
-
|
381
|
-
describe ':markers' do
|
382
|
-
it 'defaults to a hash with :value, :exception, :stdout, and :stderr' do
|
383
|
-
expect(parse([])[:markers].keys).to eq [:value, :exception, :stdout, :stderr]
|
384
|
-
end
|
385
|
-
|
386
|
-
def assert_default(marker_name, value)
|
387
|
-
expect(parse([])[:markers][marker_name]).to eq value
|
388
|
-
end
|
389
|
-
|
390
|
-
it('defaults :value to "# => "') { assert_default :value , "# => " }
|
391
|
-
it('defaults :exception to "# ~> "') { assert_default :exception , "# ~> " }
|
392
|
-
it('defaults :stdout to "# >> "') { assert_default :stdout , "# >> " }
|
393
|
-
it('defaults :stderr to "# !> "') { assert_default :stderr , "# !> " }
|
394
|
-
|
395
|
-
# TODO: When things get a little more stable, don't feel like adding all the cukes to play with this right now
|
396
|
-
it 'overrides :value with --value-marker'
|
397
|
-
it 'overrides :exception with --exception-marker'
|
398
|
-
it 'overrides :stdout with --stdout-marker'
|
399
|
-
it 'overrides :stderr with --stderr-marker'
|
400
|
-
end
|
401
|
-
|
402
|
-
describe ':marker_regexes' do
|
403
|
-
it 'is a hash with the same keys as the markers' do
|
404
|
-
marker_keys = parse([])[:markers].keys
|
405
|
-
marker_regexes_keys = parse([])[:marker_regexes].keys
|
406
|
-
expect(marker_regexes_keys).to eq marker_keys
|
407
|
-
end
|
408
|
-
|
409
|
-
it 'overrides :value with --value-regex'
|
410
|
-
it 'overrides :exception with --exception-regex'
|
411
|
-
it 'overrides :stdout with --stdout-regex'
|
412
|
-
it 'overrides :stderr with --stderr-regex'
|
413
|
-
end
|
414
|
-
end
|
415
|
-
|