super_diff 0.5.3 → 0.6.1

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -19
  3. data/lib/super_diff.rb +1 -7
  4. data/lib/super_diff/colorized_document_extensions.rb +4 -4
  5. data/lib/super_diff/configuration.rb +32 -22
  6. data/lib/super_diff/csi.rb +2 -1
  7. data/lib/super_diff/diff_formatters/collection.rb +1 -1
  8. data/lib/super_diff/diff_formatters/multiline_string.rb +4 -4
  9. data/lib/super_diff/equality_matchers/array.rb +2 -2
  10. data/lib/super_diff/equality_matchers/default.rb +2 -2
  11. data/lib/super_diff/equality_matchers/hash.rb +2 -2
  12. data/lib/super_diff/equality_matchers/multiline_string.rb +2 -2
  13. data/lib/super_diff/equality_matchers/primitive.rb +2 -2
  14. data/lib/super_diff/equality_matchers/singleline_string.rb +2 -2
  15. data/lib/super_diff/gem_version.rb +45 -0
  16. data/lib/super_diff/rspec.rb +7 -0
  17. data/lib/super_diff/rspec/matcher_text_builders/base.rb +7 -7
  18. data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +6 -6
  19. data/lib/super_diff/rspec/matcher_text_builders/contain_exactly.rb +1 -1
  20. data/lib/super_diff/rspec/matcher_text_builders/have_predicate.rb +4 -4
  21. data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +1 -1
  22. data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +5 -5
  23. data/lib/super_diff/rspec/monkey_patches.rb +21 -13
  24. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +12 -1
  25. data/lib/super_diff/version.rb +1 -1
  26. data/spec/examples.txt +390 -5
  27. data/spec/integration/rspec/be_falsey_matcher_spec.rb +10 -10
  28. data/spec/integration/rspec/be_matcher_spec.rb +100 -100
  29. data/spec/integration/rspec/be_nil_matcher_spec.rb +10 -10
  30. data/spec/integration/rspec/be_predicate_matcher_spec.rb +103 -103
  31. data/spec/integration/rspec/be_truthy_matcher_spec.rb +10 -10
  32. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +107 -107
  33. data/spec/integration/rspec/eq_matcher_spec.rb +230 -230
  34. data/spec/integration/rspec/have_attributes_matcher_spec.rb +129 -129
  35. data/spec/integration/rspec/have_predicate_matcher_spec.rb +65 -65
  36. data/spec/integration/rspec/include_matcher_spec.rb +73 -73
  37. data/spec/integration/rspec/match_array_matcher_spec.rb +119 -119
  38. data/spec/integration/rspec/match_matcher_spec.rb +274 -274
  39. data/spec/integration/rspec/raise_error_matcher_spec.rb +86 -86
  40. data/spec/integration/rspec/respond_to_matcher_spec.rb +240 -240
  41. data/spec/integration/rspec/third_party_matcher_spec.rb +8 -8
  42. data/spec/integration/rspec/unhandled_errors_spec.rb +5 -5
  43. data/spec/spec_helper.rb +22 -13
  44. data/spec/support/integration/helpers.rb +6 -2
  45. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +1 -1
  46. data/spec/support/integration/test_programs/base.rb +2 -0
  47. data/spec/support/integration/test_programs/rspec_active_record.rb +1 -1
  48. data/spec/support/integration/test_programs/rspec_active_support.rb +17 -0
  49. data/spec/support/integration/test_programs/rspec_rails.rb +1 -1
  50. data/spec/support/shared_examples/active_record.rb +108 -108
  51. data/spec/support/shared_examples/hash_with_indifferent_access.rb +196 -232
  52. data/spec/tmp/integration_spec.rb +15 -0
  53. data/spec/unit/equality_matchers/main_spec.rb +403 -403
  54. data/super_diff.gemspec +1 -1
  55. metadata +11 -3
@@ -1,14 +1,14 @@
1
1
  require "spec_helper"
2
2
 
3
3
  RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integration do
4
- context "when the actual value is an object" do
4
+ context "when the actual value is an object" do
5
5
  context "with a small set of attributes" do
6
- context "when all of the names are methods on the actual object" do
6
+ context "when all of the names are methods on the actual object" do
7
7
  it "produces the correct output when used in the positive" do
8
8
  as_both_colored_and_uncolored do |color_enabled|
9
9
  snippet = <<~TEST.strip
10
10
  expected = { name: "b" }
11
- actual = SuperDiff::Test::Person.new(name: "a", age: 9)
11
+ actual = SuperDiff::Test::Person.new(name: "a", age: 9)
12
12
  expect(actual).to have_attributes(expected)
13
13
  TEST
14
14
  program = make_plain_test_program(
@@ -21,20 +21,20 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
21
21
  snippet: %|expect(actual).to have_attributes(expected)|,
22
22
  expectation: proc {
23
23
  line do
24
- plain "Expected "
25
- beta %|#<SuperDiff::Test::Person name: "a", age: 9>|
26
- plain " to have attributes "
27
- alpha %|(name: "b")|
28
- plain "."
24
+ plain %|Expected |
25
+ actual %|#<SuperDiff::Test::Person name: "a", age: 9>|
26
+ plain %| to have attributes |
27
+ expected %|(name: "b")|
28
+ plain %|.|
29
29
  end
30
30
  },
31
31
  diff: proc {
32
- plain_line %| #<SuperDiff::Test::Person {|
33
- # alpha_line %|- name: "b",| # FIXME
34
- alpha_line %|- name: "b"|
35
- beta_line %|+ name: "a",|
36
- plain_line %| age: 9|
37
- plain_line %| }>|
32
+ plain_line %| #<SuperDiff::Test::Person {|
33
+ # expected_line %|- name: "b",| # FIXME
34
+ expected_line %|- name: "b"|
35
+ actual_line %|+ name: "a",|
36
+ plain_line %| age: 9|
37
+ plain_line %| }>|
38
38
  },
39
39
  )
40
40
 
@@ -48,7 +48,7 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
48
48
  as_both_colored_and_uncolored do |color_enabled|
49
49
  snippet = <<~TEST.strip
50
50
  expected = { name: "a" }
51
- actual = SuperDiff::Test::Person.new(name: "a", age: 9)
51
+ actual = SuperDiff::Test::Person.new(name: "a", age: 9)
52
52
  expect(actual).not_to have_attributes(expected)
53
53
  TEST
54
54
  program = make_plain_test_program(
@@ -61,11 +61,11 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
61
61
  snippet: %|expect(actual).not_to have_attributes(expected)|,
62
62
  expectation: proc {
63
63
  line do
64
- plain "Expected "
65
- beta %|#<SuperDiff::Test::Person name: "a", age: 9>|
66
- plain " not to have attributes "
67
- alpha %|(name: "a")|
68
- plain "."
64
+ plain %|Expected |
65
+ actual %|#<SuperDiff::Test::Person name: "a", age: 9>|
66
+ plain %| not to have attributes |
67
+ expected %|(name: "a")|
68
+ plain %|.|
69
69
  end
70
70
  },
71
71
  )
@@ -77,12 +77,12 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
77
77
  end
78
78
  end
79
79
 
80
- context "when some of the names are not methods on the actual object" do
80
+ context "when some of the names are not methods on the actual object" do
81
81
  it "produces the correct output" do
82
82
  as_both_colored_and_uncolored do |color_enabled|
83
83
  snippet = <<~TEST.strip
84
84
  expected = { name: "b", foo: "bar" }
85
- actual = SuperDiff::Test::Person.new(name: "a", age: 9)
85
+ actual = SuperDiff::Test::Person.new(name: "a", age: 9)
86
86
  expect(actual).to have_attributes(expected)
87
87
  TEST
88
88
  program = make_plain_test_program(
@@ -95,23 +95,23 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
95
95
  snippet: %|expect(actual).to have_attributes(expected)|,
96
96
  expectation: proc {
97
97
  line do
98
- plain "Expected "
99
- beta %|#<SuperDiff::Test::Person name: "a", age: 9>|
100
- plain " to respond to "
101
- alpha %|:foo|
102
- plain " with "
103
- alpha %|0|
104
- plain " arguments."
98
+ plain %|Expected |
99
+ actual %|#<SuperDiff::Test::Person name: "a", age: 9>|
100
+ plain %| to respond to |
101
+ expected %|:foo|
102
+ plain %| with |
103
+ expected %|0|
104
+ plain %| arguments.|
105
105
  end
106
106
  },
107
107
  diff: proc {
108
- plain_line %| #<SuperDiff::Test::Person {|
109
- plain_line %| name: "a",|
110
- # plain_line %| age: 9,| # FIXME
111
- plain_line %| age: 9|
112
- # alpha_line %|- foo: "bar",| # FIXME
113
- alpha_line %|- foo: "bar"|
114
- plain_line %| }>|
108
+ plain_line %| #<SuperDiff::Test::Person {|
109
+ plain_line %| name: "a",|
110
+ # plain_line %| age: 9,| # FIXME
111
+ plain_line %| age: 9|
112
+ # expected_line %|- foo: "bar",| # FIXME
113
+ expected_line %|- foo: "bar"|
114
+ plain_line %| }>|
115
115
  },
116
116
  )
117
117
 
@@ -124,7 +124,7 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
124
124
  end
125
125
 
126
126
  context "with a large set of attributes" do
127
- context "when all of the names are methods on the actual object" do
127
+ context "when all of the names are methods on the actual object" do
128
128
  it "produces the correct output when used in the positive" do
129
129
  as_both_colored_and_uncolored do |color_enabled|
130
130
  snippet = <<~TEST.strip
@@ -134,7 +134,7 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
134
134
  state: "CA",
135
135
  zip: "91234"
136
136
  }
137
- actual = SuperDiff::Test::ShippingAddress.new(
137
+ actual = SuperDiff::Test::ShippingAddress.new(
138
138
  line_1: "456 Ponderosa Ct.",
139
139
  line_2: nil,
140
140
  city: "Hill Valley",
@@ -153,27 +153,27 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
153
153
  snippet: %|expect(actual).to have_attributes(expected)|,
154
154
  expectation: proc {
155
155
  line do
156
- plain " Expected "
157
- beta %|#<SuperDiff::Test::ShippingAddress line_1: "456 Ponderosa Ct.", line_2: nil, city: "Hill Valley", state: "CA", zip: "90382">|
156
+ plain %| Expected |
157
+ actual %|#<SuperDiff::Test::ShippingAddress line_1: "456 Ponderosa Ct.", line_2: nil, city: "Hill Valley", state: "CA", zip: "90382">|
158
158
  end
159
159
 
160
160
  line do
161
- plain "to have attributes "
162
- alpha %|(line_1: "123 Main St.", city: "Oakland", state: "CA", zip: "91234")|
161
+ plain %|to have attributes |
162
+ expected %|(line_1: "123 Main St.", city: "Oakland", state: "CA", zip: "91234")|
163
163
  end
164
164
  },
165
165
  diff: proc {
166
- plain_line %| #<SuperDiff::Test::ShippingAddress {|
167
- alpha_line %|- line_1: "123 Main St.",|
168
- beta_line %|+ line_1: "456 Ponderosa Ct.",|
169
- plain_line %| line_2: nil,|
170
- alpha_line %|- city: "Oakland",|
171
- beta_line %|+ city: "Hill Valley",|
172
- plain_line %| state: "CA",|
173
- # alpha_line %|- zip: "91234",| # FIXME
174
- alpha_line %|- zip: "91234"|
175
- beta_line %|+ zip: "90382"|
176
- plain_line %| }>|
166
+ plain_line %| #<SuperDiff::Test::ShippingAddress {|
167
+ expected_line %|- line_1: "123 Main St.",|
168
+ actual_line %|+ line_1: "456 Ponderosa Ct.",|
169
+ plain_line %| line_2: nil,|
170
+ expected_line %|- city: "Oakland",|
171
+ actual_line %|+ city: "Hill Valley",|
172
+ plain_line %| state: "CA",|
173
+ # expected_line %|- zip: "91234",| # FIXME
174
+ expected_line %|- zip: "91234"|
175
+ actual_line %|+ zip: "90382"|
176
+ plain_line %| }>|
177
177
  },
178
178
  )
179
179
 
@@ -192,7 +192,7 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
192
192
  state: "CA",
193
193
  zip: "91234"
194
194
  }
195
- actual = SuperDiff::Test::ShippingAddress.new(
195
+ actual = SuperDiff::Test::ShippingAddress.new(
196
196
  line_1: "123 Main St.",
197
197
  line_2: nil,
198
198
  city: "Oakland",
@@ -212,13 +212,13 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
212
212
  newline_before_expectation: true,
213
213
  expectation: proc {
214
214
  line do
215
- plain " Expected "
216
- beta %|#<SuperDiff::Test::ShippingAddress line_1: "123 Main St.", line_2: nil, city: "Oakland", state: "CA", zip: "91234">|
215
+ plain %| Expected |
216
+ actual %|#<SuperDiff::Test::ShippingAddress line_1: "123 Main St.", line_2: nil, city: "Oakland", state: "CA", zip: "91234">|
217
217
  end
218
218
 
219
219
  line do
220
- plain "not to have attributes "
221
- alpha %|(line_1: "123 Main St.", city: "Oakland", state: "CA", zip: "91234")|
220
+ plain %|not to have attributes |
221
+ expected %|(line_1: "123 Main St.", city: "Oakland", state: "CA", zip: "91234")|
222
222
  end
223
223
  },
224
224
  )
@@ -230,7 +230,7 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
230
230
  end
231
231
  end
232
232
 
233
- context "when some of the names are not methods on the actual object" do
233
+ context "when some of the names are not methods on the actual object" do
234
234
  it "produces the correct output" do
235
235
  as_both_colored_and_uncolored do |color_enabled|
236
236
  snippet = <<~TEST.strip
@@ -242,7 +242,7 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
242
242
  foo: "bar",
243
243
  baz: "qux"
244
244
  }
245
- actual = SuperDiff::Test::ShippingAddress.new(
245
+ actual = SuperDiff::Test::ShippingAddress.new(
246
246
  line_1: "456 Ponderosa Ct.",
247
247
  line_2: nil,
248
248
  city: "Hill Valley",
@@ -261,32 +261,32 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
261
261
  snippet: %|expect(actual).to have_attributes(expected)|,
262
262
  expectation: proc {
263
263
  line do
264
- plain " Expected "
265
- beta %|#<SuperDiff::Test::ShippingAddress line_1: "456 Ponderosa Ct.", line_2: nil, city: "Hill Valley", state: "CA", zip: "90382">|
264
+ plain %| Expected |
265
+ actual %|#<SuperDiff::Test::ShippingAddress line_1: "456 Ponderosa Ct.", line_2: nil, city: "Hill Valley", state: "CA", zip: "90382">|
266
266
  end
267
267
 
268
268
  line do
269
- plain "to respond to "
270
- alpha %|:foo|
271
- plain " and "
272
- alpha %|:baz|
273
- plain " with "
274
- alpha %|0|
275
- plain " arguments"
269
+ plain %|to respond to |
270
+ expected %|:foo|
271
+ plain %| and |
272
+ expected %|:baz|
273
+ plain %| with |
274
+ expected %|0|
275
+ plain %| arguments|
276
276
  end
277
277
  },
278
278
  diff: proc {
279
- plain_line %| #<SuperDiff::Test::ShippingAddress {|
280
- plain_line %| line_1: "456 Ponderosa Ct.",|
281
- plain_line %| line_2: nil,|
282
- plain_line %| city: "Hill Valley",|
283
- plain_line %| state: "CA",|
284
- # plain_line %| zip: "90382",| # FIXME
285
- plain_line %| zip: "90382"|
286
- # alpha_line %|- foo: "bar",| # FIXME
287
- alpha_line %|- foo: "bar"|
288
- alpha_line %|- baz: "qux"|
289
- plain_line %| }>|
279
+ plain_line %| #<SuperDiff::Test::ShippingAddress {|
280
+ plain_line %| line_1: "456 Ponderosa Ct.",|
281
+ plain_line %| line_2: nil,|
282
+ plain_line %| city: "Hill Valley",|
283
+ plain_line %| state: "CA",|
284
+ # plain_line %| zip: "90382",| # FIXME
285
+ plain_line %| zip: "90382"|
286
+ # expected_line %|- foo: "bar",| # FIXME
287
+ expected_line %|- foo: "bar"|
288
+ expected_line %|- baz: "qux"|
289
+ plain_line %| }>|
290
290
  },
291
291
  )
292
292
 
@@ -299,12 +299,12 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
299
299
  end
300
300
  end
301
301
 
302
- context "when the actual value is actually a hash instead of an object" do
302
+ context "when the actual value is actually a hash instead of an object" do
303
303
  it "displays the diff as if we were comparing hashes" do
304
304
  as_both_colored_and_uncolored do |color_enabled|
305
305
  snippet = <<~TEST.strip
306
306
  expected = { name: "Elliot", age: 32 }
307
- actual = {}
307
+ actual = {}
308
308
  expect(actual).to have_attributes(expected)
309
309
  TEST
310
310
 
@@ -315,22 +315,22 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
315
315
  snippet: %|expect(actual).to have_attributes(expected)|,
316
316
  expectation: proc {
317
317
  line do
318
- plain "Expected "
319
- beta %|{}|
320
- plain " to respond to "
321
- alpha %|:name|
322
- plain " and "
323
- alpha %|:age|
324
- plain " with "
325
- alpha %|0|
326
- plain " arguments."
318
+ plain %|Expected |
319
+ actual %|{}|
320
+ plain %| to respond to |
321
+ expected %|:name|
322
+ plain %| and |
323
+ expected %|:age|
324
+ plain %| with |
325
+ expected %|0|
326
+ plain %| arguments.|
327
327
  end
328
328
  },
329
329
  diff: proc {
330
- plain_line %| {|
331
- alpha_line %|- name: "Elliot",|
332
- alpha_line %|- age: 32|
333
- plain_line %| }|
330
+ plain_line %| {|
331
+ expected_line %|- name: "Elliot",|
332
+ expected_line %|- age: 32|
333
+ plain_line %| }|
334
334
  },
335
335
  )
336
336
 
@@ -359,7 +359,7 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
359
359
  created_at: a_value_within(1).of(Time.utc(2020, 4, 9))
360
360
  }
361
361
 
362
- actual = {}
362
+ actual = {}
363
363
 
364
364
  expect(actual).to have_attributes(expected)
365
365
  TEST
@@ -374,45 +374,45 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
374
374
  snippet: %|expect(actual).to have_attributes(expected)|,
375
375
  expectation: proc {
376
376
  line do
377
- plain " Expected "
378
- beta %|{}|
377
+ plain %| Expected |
378
+ actual %|{}|
379
379
  end
380
380
 
381
381
  line do
382
- plain "to respond to "
383
- alpha %|:name|
384
- plain ", "
385
- alpha %|:shipping_address|
386
- plain ", "
387
- alpha %|:order_ids|
388
- plain ", "
389
- alpha %|:data|
390
- plain " and "
391
- alpha %|:created_at|
392
- plain " with "
393
- alpha %|0|
394
- plain " arguments"
382
+ plain %|to respond to |
383
+ expected %|:name|
384
+ plain %|, |
385
+ expected %|:shipping_address|
386
+ plain %|, |
387
+ expected %|:order_ids|
388
+ plain %|, |
389
+ expected %|:data|
390
+ plain %| and |
391
+ expected %|:created_at|
392
+ plain %| with |
393
+ expected %|0|
394
+ plain %| arguments|
395
395
  end
396
396
  },
397
397
  diff: proc {
398
- plain_line %| {|
399
- alpha_line %|- name: "Elliot",|
400
- alpha_line %|- shipping_address: #<an object having attributes (|
401
- alpha_line %|- line_1: #<a kind of String>,|
402
- alpha_line %|- line_2: nil,|
403
- alpha_line %|- city: #<an instance of String>,|
404
- alpha_line %|- state: "CA",|
405
- alpha_line %|- zip: "91234"|
406
- alpha_line %|- )>,|
407
- alpha_line %|- order_ids: #<a collection including (|
408
- alpha_line %|- 1,|
409
- alpha_line %|- 2|
410
- alpha_line %|- )>,|
411
- alpha_line %|- data: #<a hash including (|
412
- alpha_line %|- active: true|
413
- alpha_line %|- )>,|
414
- alpha_line %|- created_at: #<a value within 1 of 2020-04-09 00:00:00.000 UTC +00:00 (Time)>|
415
- plain_line %| }|
398
+ plain_line %| {|
399
+ expected_line %|- name: "Elliot",|
400
+ expected_line %|- shipping_address: #<an object having attributes (|
401
+ expected_line %|- line_1: #<a kind of String>,|
402
+ expected_line %|- line_2: nil,|
403
+ expected_line %|- city: #<an instance of String>,|
404
+ expected_line %|- state: "CA",|
405
+ expected_line %|- zip: "91234"|
406
+ expected_line %|- )>,|
407
+ expected_line %|- order_ids: #<a collection including (|
408
+ expected_line %|- 1,|
409
+ expected_line %|- 2|
410
+ expected_line %|- )>,|
411
+ expected_line %|- data: #<a hash including (|
412
+ expected_line %|- active: true|
413
+ expected_line %|- )>,|
414
+ expected_line %|- created_at: #<a value within 1 of 2020-04-09 00:00:00.000 UTC +00:00 (Time)>|
415
+ plain_line %| }|
416
416
  },
417
417
  )
418
418
 
@@ -16,11 +16,11 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
16
16
  snippet: snippet,
17
17
  expectation: proc {
18
18
  line do
19
- plain "Expected "
20
- beta %|:words|
21
- plain " to respond to "
22
- alpha %|has_power?|
23
- plain "."
19
+ plain %|Expected |
20
+ actual %|:words|
21
+ plain %| to respond to |
22
+ expected %|has_power?|
23
+ plain %|.|
24
24
  end
25
25
  },
26
26
  )
@@ -32,7 +32,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
32
32
  end
33
33
  end
34
34
 
35
- context "when the inspected version of the actual value is long" do
35
+ context "when the inspected version of the actual value is long" do
36
36
  it "produces the correct failure message" do
37
37
  as_both_colored_and_uncolored do |color_enabled|
38
38
  snippet = <<~TEST.strip
@@ -50,13 +50,13 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
50
50
  newline_before_expectation: true,
51
51
  expectation: proc {
52
52
  line do
53
- plain " Expected "
54
- beta %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
53
+ plain %| Expected |
54
+ actual %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
55
55
  end
56
56
 
57
57
  line do
58
- plain "to respond to "
59
- alpha %|has_mapping?|
58
+ plain %|to respond to |
59
+ expected %|has_mapping?|
60
60
  end
61
61
  },
62
62
  )
@@ -71,7 +71,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
71
71
 
72
72
  context "when the predicate method exists on the object" do
73
73
  context "but is private" do
74
- context "when the inspected version of the actual value is short" do
74
+ context "when the inspected version of the actual value is short" do
75
75
  it "produces the correct failure message" do
76
76
  as_both_colored_and_uncolored do |color_enabled|
77
77
  snippet = <<~TEST.strip
@@ -91,11 +91,11 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
91
91
  snippet: %|expect(Robot.new).to have_arms|,
92
92
  expectation: proc {
93
93
  line do
94
- plain "Expected "
95
- beta %|#<Robot>|
96
- plain " to have a public method "
97
- alpha %|has_arms?|
98
- plain "."
94
+ plain %|Expected |
95
+ actual %|#<Robot>|
96
+ plain %| to have a public method |
97
+ expected %|has_arms?|
98
+ plain %|.|
99
99
  end
100
100
  },
101
101
  )
@@ -108,7 +108,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
108
108
  end
109
109
  end
110
110
 
111
- context "when the inspected version of the actual value is long" do
111
+ context "when the inspected version of the actual value is long" do
112
112
  it "produces the correct failure message" do
113
113
  as_both_colored_and_uncolored do |color_enabled|
114
114
  snippet = <<~TEST.strip
@@ -131,13 +131,13 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
131
131
  newline_before_expectation: true,
132
132
  expectation: proc {
133
133
  line do
134
- plain " Expected "
135
- beta %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
134
+ plain %| Expected |
135
+ actual %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
136
136
  end
137
137
 
138
138
  line do
139
- plain "to have a public method "
140
- alpha %|has_mapping?|
139
+ plain %|to have a public method |
140
+ expected %|has_mapping?|
141
141
  end
142
142
  },
143
143
  )
@@ -154,7 +154,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
154
154
  context "and is public" do
155
155
  context "and returns false" do
156
156
  context "and takes arguments" do
157
- context "when the inspected version of the actual value is short" do
157
+ context "when the inspected version of the actual value is short" do
158
158
  it "produces the correct failure message" do
159
159
  as_both_colored_and_uncolored do |color_enabled|
160
160
  snippet = <<~TEST.strip
@@ -174,11 +174,11 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
174
174
  snippet: %|expect(Drink.new).to have_ingredients(:vodka)|,
175
175
  expectation: proc {
176
176
  line do
177
- plain "Expected "
178
- beta %|#<Drink>|
179
- plain " to return a truthy result for "
180
- alpha %|has_ingredients?(:vodka)|
181
- plain "."
177
+ plain %|Expected |
178
+ actual %|#<Drink>|
179
+ plain %| to return a truthy result for |
180
+ expected %|has_ingredients?(:vodka)|
181
+ plain %|.|
182
182
  end
183
183
  },
184
184
  )
@@ -191,7 +191,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
191
191
  end
192
192
  end
193
193
 
194
- context "when the inspected version of the actual value is long" do
194
+ context "when the inspected version of the actual value is long" do
195
195
  it "produces the correct failure message" do
196
196
  as_both_colored_and_uncolored do |color_enabled|
197
197
  snippet = <<~TEST.strip
@@ -214,13 +214,13 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
214
214
  newline_before_expectation: true,
215
215
  expectation: proc {
216
216
  line do
217
- plain " Expected "
218
- beta %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
217
+ plain %| Expected |
218
+ actual %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
219
219
  end
220
220
 
221
221
  line do
222
- plain "to return a truthy result for "
223
- alpha %|has_contents?("keys", "upon", "keys")|
222
+ plain %|to return a truthy result for |
223
+ expected %|has_contents?("keys", "upon", "keys")|
224
224
  end
225
225
  },
226
226
  )
@@ -235,7 +235,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
235
235
  end
236
236
 
237
237
  context "and takes no arguments" do
238
- context "when the inspected version of the actual value is short" do
238
+ context "when the inspected version of the actual value is short" do
239
239
  it "produces the correct failure message" do
240
240
  as_both_colored_and_uncolored do |color_enabled|
241
241
  snippet = <<~TEST.strip
@@ -255,11 +255,11 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
255
255
  snippet: %|expect(Robot.new).to have_arms|,
256
256
  expectation: proc {
257
257
  line do
258
- plain "Expected "
259
- beta %|#<Robot>|
260
- plain " to return a truthy result for "
261
- alpha %|has_arms?|
262
- plain "."
258
+ plain %|Expected |
259
+ actual %|#<Robot>|
260
+ plain %| to return a truthy result for |
261
+ expected %|has_arms?|
262
+ plain %|.|
263
263
  end
264
264
  },
265
265
  )
@@ -272,7 +272,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
272
272
  end
273
273
  end
274
274
 
275
- context "when the inspected version of the actual value is long" do
275
+ context "when the inspected version of the actual value is long" do
276
276
  it "produces the correct failure message" do
277
277
  as_both_colored_and_uncolored do |color_enabled|
278
278
  snippet = <<~TEST.strip
@@ -295,13 +295,13 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
295
295
  newline_before_expectation: true,
296
296
  expectation: proc {
297
297
  line do
298
- plain " Expected "
299
- beta %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
298
+ plain %| Expected |
299
+ actual %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
300
300
  end
301
301
 
302
302
  line do
303
- plain "to return a truthy result for "
304
- alpha %|has_mapping?|
303
+ plain %|to return a truthy result for |
304
+ expected %|has_mapping?|
305
305
  end
306
306
  },
307
307
  )
@@ -318,7 +318,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
318
318
 
319
319
  context "and returns true" do
320
320
  context "and takes arguments" do
321
- context "when the inspected version of the actual value is short" do
321
+ context "when the inspected version of the actual value is short" do
322
322
  it "produces the correct failure message" do
323
323
  as_both_colored_and_uncolored do |color_enabled|
324
324
  snippet = <<~TEST.strip
@@ -338,11 +338,11 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
338
338
  snippet: %|expect(Drink.new).not_to have_ingredients(:vodka)|,
339
339
  expectation: proc {
340
340
  line do
341
- plain "Expected "
342
- beta %|#<Drink>|
343
- plain " not to return a truthy result for "
344
- alpha %|has_ingredients?(:vodka)|
345
- plain "."
341
+ plain %|Expected |
342
+ actual %|#<Drink>|
343
+ plain %| not to return a truthy result for |
344
+ expected %|has_ingredients?(:vodka)|
345
+ plain %|.|
346
346
  end
347
347
  },
348
348
  )
@@ -355,7 +355,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
355
355
  end
356
356
  end
357
357
 
358
- context "when the inspected version of the actual value is long" do
358
+ context "when the inspected version of the actual value is long" do
359
359
  it "produces the correct failure message" do
360
360
  as_both_colored_and_uncolored do |color_enabled|
361
361
  snippet = <<~TEST.strip
@@ -378,13 +378,13 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
378
378
  newline_before_expectation: true,
379
379
  expectation: proc {
380
380
  line do
381
- plain " Expected "
382
- beta %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
381
+ plain %| Expected |
382
+ actual %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
383
383
  end
384
384
 
385
385
  line do
386
- plain "not to return a truthy result for "
387
- alpha %|has_contents?("keys", "upon", "keys")|
386
+ plain %|not to return a truthy result for |
387
+ expected %|has_contents?("keys", "upon", "keys")|
388
388
  end
389
389
  },
390
390
  )
@@ -399,7 +399,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
399
399
  end
400
400
 
401
401
  context "and takes no arguments" do
402
- context "when the inspected version of the actual value is short" do
402
+ context "when the inspected version of the actual value is short" do
403
403
  it "produces the correct failure message when used in the negative" do
404
404
  as_both_colored_and_uncolored do |color_enabled|
405
405
  snippet = <<~TEST.strip
@@ -419,11 +419,11 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
419
419
  snippet: %|expect(Robot.new).not_to have_arms|,
420
420
  expectation: proc {
421
421
  line do
422
- plain "Expected "
423
- beta %|#<Robot>|
424
- plain " not to return a truthy result for "
425
- alpha %|has_arms?|
426
- plain "."
422
+ plain %|Expected |
423
+ actual %|#<Robot>|
424
+ plain %| not to return a truthy result for |
425
+ expected %|has_arms?|
426
+ plain %|.|
427
427
  end
428
428
  },
429
429
  )
@@ -436,7 +436,7 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
436
436
  end
437
437
  end
438
438
 
439
- context "when the inspected version of the actual value is long" do
439
+ context "when the inspected version of the actual value is long" do
440
440
  it "produces the correct failure message when used in the negative" do
441
441
  as_both_colored_and_uncolored do |color_enabled|
442
442
  snippet = <<~TEST.strip
@@ -459,13 +459,13 @@ RSpec.describe "Integration with RSpec's #have_<predicate> matcher", type: :inte
459
459
  newline_before_expectation: true,
460
460
  expectation: proc {
461
461
  line do
462
- plain " Expected "
463
- beta %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
462
+ plain %| Expected |
463
+ actual %|{ a: "lot", of: "keys", and: "things", like: "that", lets: "add", more: "keys" }|
464
464
  end
465
465
 
466
466
  line do
467
- plain "not to return a truthy result for "
468
- alpha %|has_mapping?|
467
+ plain %|not to return a truthy result for |
468
+ expected %|has_mapping?|
469
469
  end
470
470
  },
471
471
  )