command_line_reporter 3.2.1 → 3.3.0

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.
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
- require 'command_line_reporter'
3
2
 
4
3
  describe CommandLineReporter do
5
4
  let :use_class do
@@ -8,20 +7,20 @@ describe CommandLineReporter do
8
7
  end
9
8
  end
10
9
 
11
- subject { use_class.new }
12
-
13
- before :each do
14
- @timestamp_regex = /\d{4}-\d{2}-\d{2} - (\d| )\d:\d{2}:\d{2}[AP]M/
15
- end
10
+ let(:timestamp_regex) { /\d{4}-\d{2}-\d{2} - (\d| )\d:\d{2}:\d{2}[AP]M/ }
16
11
 
17
- before :all do
18
- @controls = {
12
+ let :controls do
13
+ {
19
14
  :clear => "\e[0m",
20
15
  :bold => "\e[1m",
21
16
  :red => "\e[31m",
22
17
  }
23
18
  end
24
19
 
20
+ let(:linechar) { "\u2501" == 'u2501' ? '-' : "\u2501" }
21
+
22
+ subject { use_class.new }
23
+
25
24
  describe '#formatter=' do
26
25
  it 'only allows allowed formatters' do
27
26
  expect {
@@ -31,12 +30,12 @@ describe CommandLineReporter do
31
30
 
32
31
  it 'specifies the progress formatter' do
33
32
  subject.formatter = 'progress'
34
- subject.formatter.class.should == CommandLineReporter::ProgressFormatter
33
+ expect(subject.formatter.class).to eq(CommandLineReporter::ProgressFormatter)
35
34
  end
36
35
 
37
36
  it 'specifies the nested formatter' do
38
37
  subject.formatter = 'nested'
39
- subject.formatter.class.should == CommandLineReporter::NestedFormatter
38
+ expect(subject.formatter.class).to eq(CommandLineReporter::NestedFormatter)
40
39
  end
41
40
  end
42
41
 
@@ -46,7 +45,7 @@ describe CommandLineReporter do
46
45
  subject.report { }
47
46
  }
48
47
 
49
- subject.formatter.class.should == CommandLineReporter::NestedFormatter
48
+ expect(subject.formatter.class).to eq(CommandLineReporter::NestedFormatter)
50
49
  end
51
50
 
52
51
  it 'uses the progress formatter' do
@@ -55,13 +54,13 @@ describe CommandLineReporter do
55
54
  subject.report { }
56
55
  }
57
56
 
58
- subject.formatter.class.should == CommandLineReporter::ProgressFormatter
57
+ expect(subject.formatter.class).to eq(CommandLineReporter::ProgressFormatter)
59
58
  end
60
59
 
61
60
  it 'does not mask other application errors when a formatter is not set' do
62
61
  capture_stdout {
63
62
  subject.report {
64
- lambda {self.some_method_that_does_not_exist}.should raise_error(NoMethodError)
63
+ expect {self.some_method_that_does_not_exist}.to raise_error(NoMethodError)
65
64
  }
66
65
  }
67
66
  end
@@ -78,9 +77,9 @@ describe CommandLineReporter do
78
77
 
79
78
  it 'accepts a title' do
80
79
  expect {
81
- subject.should_receive(:puts).any_number_of_times
80
+ allow(subject).to receive(:puts)
82
81
  subject.header(:title => 'test')
83
- }.to_not raise_error ArgumentError
82
+ }.to_not raise_error
84
83
  end
85
84
 
86
85
  it 'does not allow a title > width' do
@@ -91,9 +90,9 @@ describe CommandLineReporter do
91
90
 
92
91
  it 'accepts width' do
93
92
  expect {
94
- subject.should_receive(:puts).any_number_of_times
93
+ allow(subject).to receive(:puts)
95
94
  subject.header(:width => 100)
96
- }.to_not raise_error ArgumentError
95
+ }.to_not raise_error
97
96
  end
98
97
 
99
98
  it 'ensure width is a number' do
@@ -104,9 +103,9 @@ describe CommandLineReporter do
104
103
 
105
104
  it 'accepts align' do
106
105
  expect {
107
- subject.should_receive(:puts).any_number_of_times
106
+ allow(subject).to receive(:puts)
108
107
  subject.header(:align => 'center')
109
- }.to_not raise_error ArgumentError
108
+ }.to_not raise_error
110
109
  end
111
110
 
112
111
  it 'ensure align is a valid value' do
@@ -117,30 +116,30 @@ describe CommandLineReporter do
117
116
 
118
117
  it 'accepts spacing' do
119
118
  expect {
120
- subject.should_receive(:puts).any_number_of_times
119
+ allow(subject).to receive(:puts)
121
120
  subject.header(:spacing => 2)
122
- }.to_not raise_error ArgumentError
121
+ }.to_not raise_error
123
122
  end
124
123
 
125
124
  it 'accepts timestamp' do
126
125
  expect {
127
- subject.should_receive(:puts).any_number_of_times
126
+ allow(subject).to receive(:puts)
128
127
  subject.header(:timestamp => true)
129
- }.to_not raise_error ArgumentError
128
+ }.to_not raise_error
130
129
  end
131
130
 
132
131
  it 'accepts color' do
133
132
  expect {
134
- subject.should_receive(:puts).any_number_of_times
133
+ allow(subject).to receive(:puts)
135
134
  subject.header(:color => 'red')
136
- }.to_not raise_error ArgumentError
135
+ }.to_not raise_error
137
136
  end
138
137
 
139
138
  it 'accepts bold' do
140
139
  expect {
141
- subject.should_receive(:puts).any_number_of_times
140
+ allow(subject).to receive(:puts)
142
141
  subject.header(:bold => true)
143
- }.to_not raise_error ArgumentError
142
+ }.to_not raise_error
144
143
  end
145
144
  end
146
145
 
@@ -150,121 +149,121 @@ describe CommandLineReporter do
150
149
  end
151
150
 
152
151
  it 'left aligns title by default' do
153
- subject.should_receive(:puts).with(@title)
154
- subject.should_receive(:puts).with("\n")
152
+ expect(subject).to receive(:puts).with(@title)
153
+ expect(subject).to receive(:puts).with("\n")
155
154
  subject.header(:title => @title) { }
156
155
  end
157
156
 
158
157
  it 'left aligns title' do
159
- subject.should_receive(:puts).with(@title)
160
- subject.should_receive(:puts).with("\n")
158
+ expect(subject).to receive(:puts).with(@title)
159
+ expect(subject).to receive(:puts).with("\n")
161
160
  subject.header(:title => @title, :align => 'left') { }
162
161
  end
163
162
 
164
163
  it 'right aligns title using default width' do
165
- subject.should_receive(:puts).with(' ' * 90 + @title)
166
- subject.should_receive(:puts).with("\n")
164
+ expect(subject).to receive(:puts).with(' ' * 90 + @title)
165
+ expect(subject).to receive(:puts).with("\n")
167
166
  subject.header(:title => @title, :align => 'right')
168
167
  end
169
168
 
170
169
  it 'right aligns title using specified width' do
171
- subject.should_receive(:puts).with(' ' * 40 + @title)
172
- subject.should_receive(:puts).with("\n")
170
+ expect(subject).to receive(:puts).with(' ' * 40 + @title)
171
+ expect(subject).to receive(:puts).with("\n")
173
172
  subject.header(:title => @title, :align => 'right', :width => 50)
174
173
  end
175
174
 
176
175
  it 'center aligns title using default width' do
177
- subject.should_receive(:puts).with(' ' * 45 + @title)
178
- subject.should_receive(:puts).with("\n")
176
+ expect(subject).to receive(:puts).with(' ' * 45 + @title)
177
+ expect(subject).to receive(:puts).with("\n")
179
178
  subject.header(:title => @title, :align => 'center')
180
179
  end
181
180
 
182
181
  it 'center aligns title using specified width' do
183
- subject.should_receive(:puts).with(' ' * 35 + @title)
184
- subject.should_receive(:puts).with("\n")
182
+ expect(subject).to receive(:puts).with(' ' * 35 + @title)
183
+ expect(subject).to receive(:puts).with("\n")
185
184
  subject.header(:title => @title, :align => 'center', :width => 80)
186
185
  end
187
186
  end
188
187
 
189
188
  context 'spacing' do
190
189
  it 'defaults to a single line of spacing between report' do
191
- subject.should_receive(:puts).with('title')
192
- subject.should_receive(:puts).with("\n")
190
+ expect(subject).to receive(:puts).with('title')
191
+ expect(subject).to receive(:puts).with("\n")
193
192
  subject.header(:title => 'title')
194
193
  end
195
194
 
196
195
  it 'uses the defined spacing between report' do
197
- subject.should_receive(:puts).with('title')
198
- subject.should_receive(:puts).with("\n" * 3)
196
+ expect(subject).to receive(:puts).with('title')
197
+ expect(subject).to receive(:puts).with("\n" * 3)
199
198
  subject.header(:title => 'title', :spacing => 3)
200
199
  end
201
200
  end
202
201
 
203
202
  context 'timestamp subheading' do
204
203
  it 'is added with default alignment' do
205
- subject.should_receive(:puts).with('title')
206
- subject.should_receive(:puts).with(/^#{@timestamp_regex}/)
207
- subject.should_receive(:puts).with("\n")
204
+ expect(subject).to receive(:puts).with('title')
205
+ expect(subject).to receive(:puts).with(/^#{timestamp_regex}/)
206
+ expect(subject).to receive(:puts).with("\n")
208
207
  subject.header(:title => 'title', :timestamp => true)
209
208
  end
210
209
 
211
210
  it 'added with right alignment' do
212
- subject.should_receive(:puts).with(/^ *title$/)
213
- subject.should_receive(:puts).with(/^ *#{@timestamp_regex}$/)
214
- subject.should_receive(:puts).with("\n")
211
+ expect(subject).to receive(:puts).with(/^ *title$/)
212
+ expect(subject).to receive(:puts).with(/^ *#{timestamp_regex}$/)
213
+ expect(subject).to receive(:puts).with("\n")
215
214
  subject.header(:title => 'title', :align => 'right', :timestamp => true, :width => 80)
216
215
  end
217
216
 
218
217
  it 'added with center alignment' do
219
- subject.should_receive(:puts).with(/^ *title *$/)
220
- subject.should_receive(:puts).with(/^ *#{@timestamp_regex} *$/)
221
- subject.should_receive(:puts).with("\n")
218
+ expect(subject).to receive(:puts).with(/^ *title *$/)
219
+ expect(subject).to receive(:puts).with(/^ *#{timestamp_regex} *$/)
220
+ expect(subject).to receive(:puts).with("\n")
222
221
  subject.header(:title => 'title', :align => 'center', :timestamp => true, :width => 80)
223
222
  end
224
223
  end
225
224
 
226
225
  context 'horizontal rule' do
227
226
  it 'uses dashes by default' do
228
- subject.should_receive(:puts)
229
- subject.should_receive(:puts).with('-' * 100)
230
- subject.should_receive(:puts)
227
+ expect(subject).to receive(:puts)
228
+ expect(subject).to receive(:puts).with(linechar * 100)
229
+ expect(subject).to receive(:puts)
231
230
  subject.header(:rule => true)
232
231
  end
233
232
 
234
233
  it 'uses = as the rule character' do
235
- subject.should_receive(:puts)
236
- subject.should_receive(:puts).with('=' * 100)
237
- subject.should_receive(:puts)
234
+ expect(subject).to receive(:puts)
235
+ expect(subject).to receive(:puts).with('=' * 100)
236
+ expect(subject).to receive(:puts)
238
237
  subject.header(:rule => '=')
239
238
  end
240
239
  end
241
240
 
242
241
  context 'color' do
243
242
  it 'single red line' do
244
- subject.should_receive(:puts).with(@controls[:red] + 'Report' + @controls[:clear])
245
- subject.should_receive(:puts)
243
+ expect(subject).to receive(:puts).with(controls[:red] + 'Report' + controls[:clear])
244
+ expect(subject).to receive(:puts)
246
245
  subject.header(:color => 'red')
247
246
  end
248
247
 
249
248
  it 'multimple red lines' do
250
- subject.should_receive(:puts).with(@controls[:red] + 'Report' + @controls[:clear])
251
- subject.should_receive(:puts).with(@controls[:red] + '-' * 100 + @controls[:clear])
252
- subject.should_receive(:puts)
249
+ expect(subject).to receive(:puts).with(controls[:red] + 'Report' + controls[:clear])
250
+ expect(subject).to receive(:puts).with(controls[:red] + linechar * 100 + controls[:clear])
251
+ expect(subject).to receive(:puts)
253
252
  subject.header(:color => 'red', :rule => true)
254
253
  end
255
254
  end
256
255
 
257
256
  context 'bold' do
258
257
  it 'single line' do
259
- subject.should_receive(:puts).with(@controls[:bold] + 'Report' + @controls[:clear])
260
- subject.should_receive(:puts)
258
+ expect(subject).to receive(:puts).with(controls[:bold] + 'Report' + controls[:clear])
259
+ expect(subject).to receive(:puts)
261
260
  subject.header(:bold => true)
262
261
  end
263
262
 
264
263
  it 'multimple lines' do
265
- subject.should_receive(:puts).with(@controls[:bold] + 'Report' + @controls[:clear])
266
- subject.should_receive(:puts).with(@controls[:bold] + '-' * 100 + @controls[:clear])
267
- subject.should_receive(:puts)
264
+ expect(subject).to receive(:puts).with(controls[:bold] + 'Report' + controls[:clear])
265
+ expect(subject).to receive(:puts).with(controls[:bold] + linechar * 100 + controls[:clear])
266
+ expect(subject).to receive(:puts)
268
267
  subject.header(:bold => true, :rule => true)
269
268
  end
270
269
  end
@@ -280,43 +279,43 @@ describe CommandLineReporter do
280
279
 
281
280
  it 'accepts char' do
282
281
  expect {
283
- subject.should_receive(:puts)
282
+ expect(subject).to receive(:puts)
284
283
  subject.horizontal_rule(:char => '*')
285
- }.to_not raise_error ArgumentError
284
+ }.to_not raise_error
286
285
  end
287
286
 
288
287
  it 'accepts width' do
289
288
  expect {
290
- subject.should_receive(:puts)
289
+ expect(subject).to receive(:puts)
291
290
  subject.horizontal_rule(:width => 10)
292
- }.to_not raise_error ArgumentError
291
+ }.to_not raise_error
293
292
  end
294
293
  end
295
294
 
296
295
  context 'drawing' do
297
296
  it 'writes a 100 yard dash by default' do
298
- subject.should_receive(:puts).with('-' * 100)
297
+ expect(subject).to receive(:puts).with(linechar * 100)
299
298
  subject.horizontal_rule
300
299
  end
301
300
 
302
301
  it 'writes a 100 yard asterisk' do
303
- subject.should_receive(:puts).with('*' * 100)
302
+ expect(subject).to receive(:puts).with('*' * 100)
304
303
  subject.horizontal_rule(:char => '*')
305
304
  end
306
305
 
307
306
  it 'writes a 50 yard equals' do
308
- subject.should_receive(:puts).with('=' * 50)
307
+ expect(subject).to receive(:puts).with('=' * 50)
309
308
  subject.horizontal_rule(:char => '=', :width => 50)
310
309
  end
311
310
  end
312
311
 
313
312
  it 'outputs color' do
314
- subject.should_receive(:puts).with(@controls[:red] + '-' * 100 + @controls[:clear])
313
+ expect(subject).to receive(:puts).with(controls[:red] + linechar * 100 + controls[:clear])
315
314
  subject.horizontal_rule(:color => 'red')
316
315
  end
317
316
 
318
317
  it 'outputs bold' do
319
- subject.should_receive(:puts).with(@controls[:bold] + '-' * 100 + @controls[:clear])
318
+ expect(subject).to receive(:puts).with(controls[:bold] + linechar * 100 + controls[:clear])
320
319
  subject.horizontal_rule(:bold => true)
321
320
  end
322
321
  end
@@ -329,7 +328,7 @@ describe CommandLineReporter do
329
328
  end
330
329
 
331
330
  it 'prints carriage returns for the number of lines' do
332
- subject.should_receive(:puts).with("\n" * 3)
331
+ expect(subject).to receive(:puts).with("\n" * 3)
333
332
  subject.vertical_spacing(3)
334
333
  end
335
334
  end
@@ -344,23 +343,23 @@ describe CommandLineReporter do
344
343
 
345
344
  it 'accepts align' do
346
345
  expect {
347
- subject.should_receive(:puts)
346
+ expect(subject).to receive(:puts)
348
347
  subject.datetime(:align => 'left')
349
- }.to_not raise_error ArgumentError
348
+ }.to_not raise_error
350
349
  end
351
350
 
352
351
  it 'accepts width' do
353
352
  expect {
354
- subject.should_receive(:puts)
353
+ expect(subject).to receive(:puts)
355
354
  subject.datetime(:width => 70)
356
- }.to_not raise_error ArgumentError
355
+ }.to_not raise_error
357
356
  end
358
357
 
359
358
  it 'accepts format' do
360
359
  expect {
361
- subject.should_receive(:puts)
360
+ expect(subject).to receive(:puts)
362
361
  subject.datetime(:format => '%m/%d/%Y')
363
- }.to_not raise_error ArgumentError
362
+ }.to_not raise_error
364
363
  end
365
364
 
366
365
  it 'does not allow invalid width' do
@@ -384,33 +383,33 @@ describe CommandLineReporter do
384
383
 
385
384
  context 'display' do
386
385
  it 'a default format - left aligned' do
387
- subject.should_receive(:puts).with(/^#{@timestamp_regex} *$/)
386
+ expect(subject).to receive(:puts).with(/^#{timestamp_regex} *$/)
388
387
  subject.datetime
389
388
  end
390
389
 
391
390
  it 'a default format - right aligned' do
392
- subject.should_receive(:puts).with(/^ *#{@timestamp_regex}$/)
391
+ expect(subject).to receive(:puts).with(/^ *#{timestamp_regex}$/)
393
392
  subject.datetime(:align => 'right')
394
393
  end
395
394
 
396
395
  it 'a default format - center aligned' do
397
- subject.should_receive(:puts).with(/^ *#{@timestamp_regex} *$/)
396
+ expect(subject).to receive(:puts).with(/^ *#{timestamp_regex} *$/)
398
397
  subject.datetime(:align => 'center')
399
398
  end
400
399
 
401
400
  it 'a modified format' do
402
- subject.should_receive(:puts).with(/^\d{2}\/\d{2}\/\d{2} *$/)
401
+ expect(subject).to receive(:puts).with(/^\d{2}\/\d{2}\/\d{2} *$/)
403
402
  subject.datetime(:format => '%y/%m/%d')
404
403
  end
405
404
  end
406
405
 
407
406
  it 'outputs color' do
408
- subject.should_receive(:puts).with(/^\e\[31m#{@timestamp_regex}\e\[0m/)
407
+ expect(subject).to receive(:puts).with(/^\e\[31m#{timestamp_regex}\e\[0m/)
409
408
  subject.datetime(:color => 'red')
410
409
  end
411
410
 
412
411
  it 'outputs bold' do
413
- subject.should_receive(:puts).with(/^\e\[1m#{@timestamp_regex}\e\[0m/)
412
+ expect(subject).to receive(:puts).with(/^\e\[1m#{timestamp_regex}\e\[0m/)
414
413
  subject.datetime(:bold => true)
415
414
  end
416
415
  end
@@ -419,7 +418,7 @@ describe CommandLineReporter do
419
418
  context 'argument validation' do
420
419
  it 'accepts align' do
421
420
  expect {
422
- subject.should_receive(:puts).any_number_of_times
421
+ allow(subject).to receive(:puts)
423
422
  subject.aligned('test', :align => 'left')
424
423
  }.to_not raise_error
425
424
  end
@@ -432,7 +431,7 @@ describe CommandLineReporter do
432
431
 
433
432
  it 'accepts width' do
434
433
  expect {
435
- subject.should_receive(:puts).any_number_of_times
434
+ allow(subject).to receive(:puts)
436
435
  subject.aligned('test', :width => 40)
437
436
  }.to_not raise_error
438
437
  end
@@ -445,12 +444,12 @@ describe CommandLineReporter do
445
444
  end
446
445
 
447
446
  it 'outputs color' do
448
- subject.should_receive(:puts).with(@controls[:red] + 'x' * 10 + @controls[:clear])
447
+ expect(subject).to receive(:puts).with(controls[:red] + 'x' * 10 + controls[:clear])
449
448
  subject.aligned('x' * 10, :color => 'red')
450
449
  end
451
450
 
452
451
  it 'outputs bold' do
453
- subject.should_receive(:puts).with(@controls[:bold] + 'x' * 10 + @controls[:clear])
452
+ expect(subject).to receive(:puts).with(controls[:bold] + 'x' * 10 + controls[:clear])
454
453
  subject.aligned('x' * 10, :bold => true)
455
454
  end
456
455
 
@@ -460,16 +459,16 @@ describe CommandLineReporter do
460
459
  context 'argument validation' do
461
460
  it 'accepts title' do
462
461
  expect {
463
- subject.should_receive(:puts).any_number_of_times
462
+ allow(subject).to receive(:puts)
464
463
  subject.footer(:title => 'test')
465
464
  }.to_not raise_error
466
465
  end
467
466
 
468
467
  it 'accepts align' do
469
468
  expect {
470
- subject.should_receive(:puts).any_number_of_times
469
+ allow(subject).to receive(:puts)
471
470
  subject.footer(:align => 'right')
472
- }.to_not raise_error ArgumentError
471
+ }.to_not raise_error
473
472
  end
474
473
 
475
474
  it 'does not accept invalid align' do
@@ -480,7 +479,7 @@ describe CommandLineReporter do
480
479
 
481
480
  it 'accepts width' do
482
481
  expect {
483
- subject.should_receive(:puts).any_number_of_times
482
+ allow(subject).to receive(:puts)
484
483
  subject.footer(:width => 50)
485
484
  }.to_not raise_error
486
485
  end
@@ -499,7 +498,7 @@ describe CommandLineReporter do
499
498
 
500
499
  it 'accepts spacing' do
501
500
  expect {
502
- subject.should_receive(:puts).any_number_of_times
501
+ allow(subject).to receive(:puts)
503
502
  subject.footer(:spacing => 3)
504
503
  }.to_not raise_error
505
504
  end
@@ -511,114 +510,114 @@ describe CommandLineReporter do
511
510
  end
512
511
 
513
512
  it 'left aligns the title by default' do
514
- subject.should_receive(:puts).with("\n")
515
- subject.should_receive(:puts).with(@title)
513
+ expect(subject).to receive(:puts).with("\n")
514
+ expect(subject).to receive(:puts).with(@title)
516
515
  subject.footer(:title => @title)
517
516
  end
518
517
 
519
518
  it 'left aligns the title' do
520
- subject.should_receive(:puts).with("\n")
521
- subject.should_receive(:puts).with(@title)
519
+ expect(subject).to receive(:puts).with("\n")
520
+ expect(subject).to receive(:puts).with(@title)
522
521
  subject.footer(:title => @title, :align => 'left')
523
522
  end
524
523
 
525
524
  it 'right aligns the title' do
526
- subject.should_receive(:puts).with("\n")
527
- subject.should_receive(:puts).with(' ' * 90 + @title)
525
+ expect(subject).to receive(:puts).with("\n")
526
+ expect(subject).to receive(:puts).with(' ' * 90 + @title)
528
527
  subject.footer(:title => @title, :align => 'right')
529
528
  end
530
529
 
531
530
  it 'right aligns the title using width' do
532
- subject.should_receive(:puts).with("\n")
533
- subject.should_receive(:puts).with(' ' * 40 + @title)
531
+ expect(subject).to receive(:puts).with("\n")
532
+ expect(subject).to receive(:puts).with(' ' * 40 + @title)
534
533
  subject.footer(:title => @title, :align => 'right', :width => 50)
535
534
  end
536
535
 
537
536
  it 'center aligns the title' do
538
- subject.should_receive(:puts).with("\n")
539
- subject.should_receive(:puts).with(' ' * 45 + @title)
537
+ expect(subject).to receive(:puts).with("\n")
538
+ expect(subject).to receive(:puts).with(' ' * 45 + @title)
540
539
  subject.footer(:title => @title, :align => 'center')
541
540
  end
542
541
 
543
542
  it 'center aligns the title using width' do
544
- subject.should_receive(:puts).with("\n")
545
- subject.should_receive(:puts).with(' ' * 35 + @title)
543
+ expect(subject).to receive(:puts).with("\n")
544
+ expect(subject).to receive(:puts).with(' ' * 35 + @title)
546
545
  subject.footer(:title => @title, :align => 'center', :width => 80)
547
546
  end
548
547
  end
549
548
 
550
549
  context 'spacing' do
551
550
  it 'defaults to a single line of spacing between report' do
552
- subject.should_receive(:puts).with("\n")
553
- subject.should_receive(:puts).with('title')
551
+ expect(subject).to receive(:puts).with("\n")
552
+ expect(subject).to receive(:puts).with('title')
554
553
  subject.footer(:title => 'title')
555
554
  end
556
555
 
557
556
  it 'uses the defined spacing between report' do
558
- subject.should_receive(:puts).with("\n" * 3)
559
- subject.should_receive(:puts).with('title')
557
+ expect(subject).to receive(:puts).with("\n" * 3)
558
+ expect(subject).to receive(:puts).with('title')
560
559
  subject.footer(:title => 'title', :spacing => 3)
561
560
  end
562
561
  end
563
562
 
564
563
  context 'timestamp subheading' do
565
564
  it 'is added with default alignment' do
566
- subject.should_receive(:puts).with("\n")
567
- subject.should_receive(:puts).with('title')
568
- subject.should_receive(:puts).with(/^#{@timestamp_regex}/)
565
+ expect(subject).to receive(:puts).with("\n")
566
+ expect(subject).to receive(:puts).with('title')
567
+ expect(subject).to receive(:puts).with(/^#{timestamp_regex}/)
569
568
  subject.footer(:title => 'title', :timestamp => true)
570
569
  end
571
570
 
572
571
  it 'added with right alignment' do
573
- subject.should_receive(:puts).with("\n")
574
- subject.should_receive(:puts).with(/^ *title$/)
575
- subject.should_receive(:puts).with(/^ *#{@timestamp_regex}$/)
572
+ expect(subject).to receive(:puts).with("\n")
573
+ expect(subject).to receive(:puts).with(/^ *title$/)
574
+ expect(subject).to receive(:puts).with(/^ *#{timestamp_regex}$/)
576
575
  subject.footer(:title => 'title', :align => 'right', :timestamp => true, :width => 80)
577
576
  end
578
577
 
579
578
  it 'added with center alignment' do
580
- subject.should_receive(:puts).with("\n")
581
- subject.should_receive(:puts).with(/^ *title *$/)
582
- subject.should_receive(:puts).with(/^ *#{@timestamp_regex} *$/)
579
+ expect(subject).to receive(:puts).with("\n")
580
+ expect(subject).to receive(:puts).with(/^ *title *$/)
581
+ expect(subject).to receive(:puts).with(/^ *#{timestamp_regex} *$/)
583
582
  subject.footer(:title => 'title', :align => 'center', :timestamp => true, :width => 80)
584
583
  end
585
584
  end
586
585
 
587
586
  context 'horizontal rule' do
588
587
  it 'uses dashes by default' do
589
- subject.should_receive(:puts)
590
- subject.should_receive(:puts).with('-' * 100)
591
- subject.should_receive(:puts)
588
+ expect(subject).to receive(:puts)
589
+ expect(subject).to receive(:puts).with(linechar * 100)
590
+ expect(subject).to receive(:puts)
592
591
  subject.footer(:rule => true)
593
592
  end
594
593
 
595
594
  it 'uses = as the rule character' do
596
- subject.should_receive(:puts)
597
- subject.should_receive(:puts).with('=' * 100)
598
- subject.should_receive(:puts)
595
+ expect(subject).to receive(:puts)
596
+ expect(subject).to receive(:puts).with('=' * 100)
597
+ expect(subject).to receive(:puts)
599
598
  subject.footer(:rule => '=')
600
599
  end
601
600
  end
602
601
 
603
602
  it 'outputs red' do
604
- subject.should_receive(:puts).with("\n")
605
- subject.should_receive(:puts).with(@controls[:red] + 'title' + @controls[:clear])
606
- subject.should_receive(:puts).with(/^\e\[31m#{@timestamp_regex}\e\[0m/)
603
+ expect(subject).to receive(:puts).with("\n")
604
+ expect(subject).to receive(:puts).with(controls[:red] + 'title' + controls[:clear])
605
+ expect(subject).to receive(:puts).with(/^\e\[31m#{timestamp_regex}\e\[0m/)
607
606
  subject.footer(:title => 'title', :timestamp => true, :color => 'red')
608
607
  end
609
608
 
610
609
  it 'outputs bold' do
611
- subject.should_receive(:puts).with("\n")
612
- subject.should_receive(:puts).with(@controls[:bold] + 'title' + @controls[:clear])
613
- subject.should_receive(:puts).with(/^\e\[1m#{@timestamp_regex}\e\[0m/)
610
+ expect(subject).to receive(:puts).with("\n")
611
+ expect(subject).to receive(:puts).with(controls[:bold] + 'title' + controls[:clear])
612
+ expect(subject).to receive(:puts).with(/^\e\[1m#{timestamp_regex}\e\[0m/)
614
613
  subject.footer(:title => 'title', :timestamp => true, :bold => true)
615
614
  end
616
615
  end
617
616
 
618
617
  describe '#table' do
619
618
  it 'instantiates the table class' do
620
- subject.should_receive(:puts).any_number_of_times
621
- subject.should_receive(:table).once
619
+ allow(subject).to receive(:puts)
620
+ expect(subject).to receive(:table).once
622
621
  subject.table { }
623
622
  end
624
623
 
@@ -636,7 +635,7 @@ describe CommandLineReporter do
636
635
 
637
636
  it 'rejects invalid options' do
638
637
  expect {
639
- subject.should_receive(:puts).any_number_of_times
638
+ allow(subject).to receive(:puts)
640
639
  subject.table(:asdf => '100') { }
641
640
  }.to raise_error ArgumentError
642
641
  end
@@ -644,8 +643,8 @@ describe CommandLineReporter do
644
643
 
645
644
  describe '#row' do
646
645
  it 'instantiates a row class' do
647
- subject.should_receive(:row).once
648
- subject.should_receive(:puts).any_number_of_times
646
+ expect(subject).to receive(:row).once
647
+ allow(subject).to receive(:puts)
649
648
 
650
649
  subject.table do
651
650
  subject.row do
@@ -656,8 +655,8 @@ describe CommandLineReporter do
656
655
 
657
656
  describe '#column' do
658
657
  it 'instantiates multiple columns' do
659
- subject.should_receive(:column).exactly(3).times
660
- subject.should_receive(:puts).any_number_of_times
658
+ expect(subject).to receive(:column).exactly(3).times
659
+ allow(subject).to receive(:puts)
661
660
 
662
661
  subject.table do
663
662
  subject.row do
@@ -669,8 +668,8 @@ describe CommandLineReporter do
669
668
  end
670
669
 
671
670
  it 'accepts valid options' do
672
- subject.should_receive(:column).once
673
- subject.should_receive(:puts).any_number_of_times
671
+ expect(subject).to receive(:column).once
672
+ allow(subject).to receive(:puts)
674
673
 
675
674
  subject.table do
676
675
  subject.row do
@@ -680,7 +679,7 @@ describe CommandLineReporter do
680
679
  end
681
680
 
682
681
  it 'rejects invalid options' do
683
- subject.should_receive(:puts).any_number_of_times
682
+ allow(subject).to receive(:puts)
684
683
  expect {
685
684
  subject.table do
686
685
  subject.row do
@@ -690,4 +689,5 @@ describe CommandLineReporter do
690
689
  }.to raise_error ArgumentError
691
690
  end
692
691
  end
692
+
693
693
  end