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
@@ -23,7 +23,7 @@ RSpec.describe "Integration with a third-party matcher", type: :integration do
23
23
  red_line "Here is the next line."
24
24
  plain_line " This part is indented, for whatever reason. It just kinda keeps"
25
25
  plain_line " going until we finish saying whatever it is we want to say."
26
- }
26
+ },
27
27
  )
28
28
 
29
29
  expect(program).
@@ -50,10 +50,10 @@ RSpec.describe "Integration with a third-party matcher", type: :integration do
50
50
  snippet: %|expect(:anything).to fail_with_paragraphed_failure_message|,
51
51
  newline_before_expectation: true,
52
52
  expectation: proc {
53
- red_line "This is a message that spans multiple paragraphs."
53
+ red_line "This is a message that spans multiple paragraphs."
54
54
  newline
55
55
  plain_line "Here is the next paragraph."
56
- }
56
+ },
57
57
  )
58
58
 
59
59
  expect(program).
@@ -81,7 +81,7 @@ RSpec.describe "Integration with a third-party matcher", type: :integration do
81
81
  expectation: proc {
82
82
  red_line "This is a message that spans multiple lines."
83
83
  red_line "Here is the next line."
84
- }
84
+ },
85
85
  )
86
86
 
87
87
  expect(program).
@@ -142,7 +142,7 @@ RSpec.describe "Integration with a third-party matcher", type: :integration do
142
142
  red_line "Here is the next line."
143
143
  plain_line " This part is indented, for whatever reason. It just kinda keeps"
144
144
  plain_line " going until we finish saying whatever it is we want to say."
145
- }
145
+ },
146
146
  )
147
147
 
148
148
  expect(program).
@@ -171,8 +171,8 @@ RSpec.describe "Integration with a third-party matcher", type: :integration do
171
171
  expectation: proc {
172
172
  red_line "This is a message that spans multiple paragraphs."
173
173
  newline
174
- plain_line "Here is the next paragraph."
175
- }
174
+ plain_line "Here is the next paragraph."
175
+ },
176
176
  )
177
177
 
178
178
  expect(program).
@@ -228,7 +228,7 @@ RSpec.describe "Integration with a third-party matcher", type: :integration do
228
228
  snippet: %|expect(:anything).not_to pass_with_singleline_failure_message|,
229
229
  expectation: proc {
230
230
  red_line "This is a message that spans only one line."
231
- }
231
+ },
232
232
  )
233
233
 
234
234
  expect(program).
@@ -21,7 +21,7 @@ RSpec.describe "Integration with RSpec and unhandled errors", type: :integration
21
21
  expectation: proc {
22
22
  red_line "RuntimeError:"
23
23
  indent by: 2 do
24
- red_line "Some kind of error or whatever"
24
+ red_line "Some kind of error or whatever"
25
25
  newline
26
26
  plain_line "This is another line"
27
27
  end
@@ -95,7 +95,7 @@ RSpec.describe "Integration with RSpec and unhandled errors", type: :integration
95
95
  indent by: 5 do
96
96
  line do
97
97
  plain "1.1) "
98
- bold "Failure/Error: "
98
+ bold "Failure/Error: "
99
99
  plain snippet
100
100
  end
101
101
 
@@ -106,7 +106,7 @@ RSpec.describe "Integration with RSpec and unhandled errors", type: :integration
106
106
  indent by: 2 do
107
107
  red_line "Some kind of error or whatever"
108
108
  newline
109
- line "This is another line"
109
+ line "This is another line"
110
110
  end
111
111
  end
112
112
  end
@@ -116,7 +116,7 @@ RSpec.describe "Integration with RSpec and unhandled errors", type: :integration
116
116
  indent by: 5 do
117
117
  line do
118
118
  plain "1.2) "
119
- bold "Failure/Error: "
119
+ bold "Failure/Error: "
120
120
  plain snippet
121
121
  end
122
122
 
@@ -127,7 +127,7 @@ RSpec.describe "Integration with RSpec and unhandled errors", type: :integration
127
127
  indent by: 2 do
128
128
  red_line "Some kind of error or whatever"
129
129
  newline
130
- line "This is another line"
130
+ line "This is another line"
131
131
  end
132
132
  end
133
133
  end
data/spec/spec_helper.rb CHANGED
@@ -8,6 +8,8 @@ begin
8
8
  rescue LoadError
9
9
  end
10
10
 
11
+ require "pp"
12
+
11
13
  #---
12
14
 
13
15
  require_relative "../support/current_bundle"
@@ -18,26 +20,25 @@ SuperDiff::CurrentBundle.instance.assert_appraisal!
18
20
 
19
21
  begin
20
22
  require "active_record"
23
+
21
24
  active_record_available = true
22
- rescue LoadError
23
- active_record_available = false
24
- end
25
25
 
26
- if active_record_available
27
26
  ActiveRecord::Base.establish_connection(
28
27
  adapter: "sqlite3",
29
28
  database: ":memory:",
30
29
  )
31
-
32
- require "super_diff/rspec-rails"
33
- else
34
- require "super_diff/rspec"
30
+ rescue LoadError
31
+ active_record_available = false
35
32
  end
36
33
 
37
- Dir.glob(File.expand_path("support/**/*.rb", __dir__)).each do |file|
38
- next if !active_record_available && file.include?('models/active_record')
39
- require file
40
- end
34
+ Dir.glob(File.expand_path("support/**/*.rb", __dir__)).
35
+ sort.
36
+ reject do |file|
37
+ file.include?("/models/active_record/") && !active_record_available
38
+ end.
39
+ each do |file|
40
+ require file
41
+ end
41
42
 
42
43
  RSpec.configure do |config|
43
44
  config.include(SuperDiff::IntegrationTests, type: :integration)
@@ -65,6 +66,14 @@ RSpec.configure do |config|
65
66
 
66
67
  config.order = :random
67
68
  Kernel.srand config.seed
69
+
70
+ if ENV["CI"] == "true"
71
+ config.color_mode = :on
72
+ end
68
73
  end
69
74
 
70
- require "pp"
75
+ if active_record_available
76
+ require "super_diff/rspec-rails"
77
+ else
78
+ require "super_diff/rspec"
79
+ end
@@ -21,11 +21,15 @@ module SuperDiff
21
21
  end
22
22
 
23
23
  def make_rspec_active_record_program(test, color_enabled:)
24
- TestPrograms::RspecActiveRecord.new(test, color_enabled: color_enabled)
24
+ TestPrograms::RSpecActiveRecord.new(test, color_enabled: color_enabled)
25
+ end
26
+
27
+ def make_rspec_active_support_program(test, color_enabled:)
28
+ TestPrograms::RSpecActiveSupport.new(test, color_enabled: color_enabled)
25
29
  end
26
30
 
27
31
  def make_rspec_rails_test_program(test, color_enabled:)
28
- TestPrograms::RspecRails.new(test, color_enabled: color_enabled)
32
+ TestPrograms::RSpecRails.new(test, color_enabled: color_enabled)
29
33
  end
30
34
 
31
35
  def build_expected_output(
@@ -36,7 +36,7 @@ module SuperDiff
36
36
  "."
37
37
  else
38
38
  message =
39
- "Expected test to produce output, but it did not.\n\n" +
39
+ "Expected test to produce #{expect_output_to_contain_color? ? "colored" : "uncolored"} output, but it did not.\n\n" +
40
40
  "Expected output to contain:\n\n" +
41
41
  CommandRunner::OutputHelpers.bookended(expected_output) +
42
42
  "\n" +
@@ -1,3 +1,5 @@
1
+ require "attr_extras/explicit"
2
+
1
3
  module SuperDiff
2
4
  module IntegrationTests
3
5
  module TestPrograms
@@ -1,7 +1,7 @@
1
1
  module SuperDiff
2
2
  module IntegrationTests
3
3
  module TestPrograms
4
- class RspecActiveRecord < Base
4
+ class RSpecActiveRecord < Base
5
5
  protected
6
6
 
7
7
  def test_plan_prelude
@@ -0,0 +1,17 @@
1
+ module SuperDiff
2
+ module IntegrationTests
3
+ module TestPrograms
4
+ class RSpecActiveSupport < Base
5
+ protected
6
+
7
+ def test_plan_prelude
8
+ "test_plan.boot_active_support"
9
+ end
10
+
11
+ def test_plan_command
12
+ "run_rspec_active_support_test"
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,7 +1,7 @@
1
1
  module SuperDiff
2
2
  module IntegrationTests
3
3
  module TestPrograms
4
- class RspecRails < Base
4
+ class RSpecRails < Base
5
5
  protected
6
6
 
7
7
  def test_plan_prelude
@@ -10,7 +10,7 @@ shared_examples_for "integration with ActiveRecord" do
10
10
  state: "CA",
11
11
  zip: "90382",
12
12
  )
13
- actual = SuperDiff::Test::Models::ActiveRecord::ShippingAddress.new(
13
+ actual = SuperDiff::Test::Models::ActiveRecord::ShippingAddress.new(
14
14
  line_1: "456 Ponderosa Ct.",
15
15
  city: "Oakland",
16
16
  state: "CA",
@@ -25,27 +25,27 @@ shared_examples_for "integration with ActiveRecord" do
25
25
  snippet: "expect(actual).to eq(expected)",
26
26
  expectation: proc {
27
27
  line do
28
- plain "Expected "
29
- beta %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">|
28
+ plain %|Expected |
29
+ actual %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">|
30
30
  end
31
31
 
32
32
  line do
33
- plain " to eq "
34
- alpha %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">|
33
+ plain %| to eq |
34
+ expected %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">|
35
35
  end
36
36
  },
37
37
  diff: proc {
38
- plain_line %| #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
39
- plain_line %| id: nil,|
40
- alpha_line %|- city: "Hill Valley",|
41
- beta_line %|+ city: "Oakland",|
42
- alpha_line %|- line_1: "123 Main St.",|
43
- beta_line %|+ line_1: "456 Ponderosa Ct.",|
44
- plain_line %| line_2: "",|
45
- plain_line %| state: "CA",|
46
- alpha_line %|- zip: "90382"|
47
- beta_line %|+ zip: "91234"|
48
- plain_line %| }>|
38
+ plain_line %| #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
39
+ plain_line %| id: nil,|
40
+ expected_line %|- city: "Hill Valley",|
41
+ actual_line %|+ city: "Oakland",|
42
+ expected_line %|- line_1: "123 Main St.",|
43
+ actual_line %|+ line_1: "456 Ponderosa Ct.",|
44
+ plain_line %| line_2: "",|
45
+ plain_line %| state: "CA",|
46
+ expected_line %|- zip: "90382"|
47
+ actual_line %|+ zip: "91234"|
48
+ plain_line %| }>|
49
49
  },
50
50
  )
51
51
 
@@ -66,7 +66,7 @@ shared_examples_for "integration with ActiveRecord" do
66
66
  state: "CA",
67
67
  zip: "90382",
68
68
  )
69
- actual = SuperDiff::Test::Models::ActiveRecord::Person.new(
69
+ actual = SuperDiff::Test::Models::ActiveRecord::Person.new(
70
70
  name: "Elliot",
71
71
  age: 31,
72
72
  )
@@ -80,13 +80,13 @@ shared_examples_for "integration with ActiveRecord" do
80
80
  newline_before_expectation: true,
81
81
  expectation: proc {
82
82
  line do
83
- plain "Expected "
84
- beta %|#<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot">|
83
+ plain %|Expected |
84
+ actual %|#<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot">|
85
85
  end
86
86
 
87
87
  line do
88
- plain " to eq "
89
- alpha %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">|
88
+ plain %| to eq |
89
+ expected %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">|
90
90
  end
91
91
  },
92
92
  )
@@ -108,7 +108,7 @@ shared_examples_for "integration with ActiveRecord" do
108
108
  state: "CA",
109
109
  zip: "90382"
110
110
  )
111
- actual = nil
111
+ actual = nil
112
112
  expect(actual).to eq(expected)
113
113
  TEST
114
114
  program = make_program(snippet, color_enabled: color_enabled)
@@ -119,13 +119,13 @@ shared_examples_for "integration with ActiveRecord" do
119
119
  newline_before_expectation: true,
120
120
  expectation: proc {
121
121
  line do
122
- plain "Expected "
123
- beta %|nil|
122
+ plain %|Expected |
123
+ actual %|nil|
124
124
  end
125
125
 
126
126
  line do
127
- plain " to eq "
128
- alpha %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">|
127
+ plain %| to eq |
128
+ expected %|#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">|
129
129
  end
130
130
  },
131
131
  )
@@ -150,7 +150,7 @@ shared_examples_for "integration with ActiveRecord" do
150
150
  zip: "90382",
151
151
  )
152
152
  }
153
- actual = {
153
+ actual = {
154
154
  name: "Marty McFly",
155
155
  shipping_address: SuperDiff::Test::Models::ActiveRecord::ShippingAddress.new(
156
156
  line_1: "456 Ponderosa Ct.",
@@ -168,30 +168,30 @@ shared_examples_for "integration with ActiveRecord" do
168
168
  snippet: "expect(actual).to eq(expected)",
169
169
  expectation: proc {
170
170
  line do
171
- plain "Expected "
172
- beta %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234"> }|
171
+ plain %|Expected |
172
+ actual %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234"> }|
173
173
  end
174
174
 
175
175
  line do
176
- plain " to eq "
177
- alpha %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }|
176
+ plain %| to eq |
177
+ expected %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }|
178
178
  end
179
179
  },
180
180
  diff: proc {
181
- plain_line %| {|
182
- plain_line %| name: "Marty McFly",|
183
- plain_line %| shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
184
- plain_line %| id: nil,|
185
- alpha_line %|- city: "Hill Valley",|
186
- beta_line %|+ city: "Oakland",|
187
- alpha_line %|- line_1: "123 Main St.",|
188
- beta_line %|+ line_1: "456 Ponderosa Ct.",|
189
- plain_line %| line_2: "",|
190
- plain_line %| state: "CA",|
191
- alpha_line %|- zip: "90382"|
192
- beta_line %|+ zip: "91234"|
193
- plain_line %| }>|
194
- plain_line %| }|
181
+ plain_line %| {|
182
+ plain_line %| name: "Marty McFly",|
183
+ plain_line %| shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
184
+ plain_line %| id: nil,|
185
+ expected_line %|- city: "Hill Valley",|
186
+ actual_line %|+ city: "Oakland",|
187
+ expected_line %|- line_1: "123 Main St.",|
188
+ actual_line %|+ line_1: "456 Ponderosa Ct.",|
189
+ plain_line %| line_2: "",|
190
+ plain_line %| state: "CA",|
191
+ expected_line %|- zip: "90382"|
192
+ actual_line %|+ zip: "91234"|
193
+ plain_line %| }>|
194
+ plain_line %| }|
195
195
  },
196
196
  )
197
197
 
@@ -215,7 +215,7 @@ shared_examples_for "integration with ActiveRecord" do
215
215
  zip: "90382",
216
216
  )
217
217
  }
218
- actual = {
218
+ actual = {
219
219
  name: "Marty McFly",
220
220
  shipping_address: SuperDiff::Test::Models::ActiveRecord::Person.new(
221
221
  name: "Elliot",
@@ -231,32 +231,32 @@ shared_examples_for "integration with ActiveRecord" do
231
231
  snippet: "expect(actual).to eq(expected)",
232
232
  expectation: proc {
233
233
  line do
234
- plain "Expected "
235
- beta %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot"> }|
234
+ plain %|Expected |
235
+ actual %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person id: nil, age: 31, name: "Elliot"> }|
236
236
  end
237
237
 
238
238
  line do
239
- plain " to eq "
240
- alpha %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }|
239
+ plain %| to eq |
240
+ expected %|{ name: "Marty McFly", shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: nil, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382"> }|
241
241
  end
242
242
  },
243
243
  diff: proc {
244
- plain_line %| {|
245
- plain_line %| name: "Marty McFly",|
246
- alpha_line %|- shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
247
- alpha_line %|- id: nil,|
248
- alpha_line %|- city: "Hill Valley",|
249
- alpha_line %|- line_1: "123 Main St.",|
250
- alpha_line %|- line_2: "",|
251
- alpha_line %|- state: "CA",|
252
- alpha_line %|- zip: "90382"|
253
- alpha_line %|- }>|
254
- beta_line %|+ shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person {|
255
- beta_line %|+ id: nil,|
256
- beta_line %|+ age: 31,|
257
- beta_line %|+ name: "Elliot"|
258
- beta_line %|+ }>|
259
- plain_line %| }|
244
+ plain_line %| {|
245
+ plain_line %| name: "Marty McFly",|
246
+ expected_line %|- shipping_address: #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
247
+ expected_line %|- id: nil,|
248
+ expected_line %|- city: "Hill Valley",|
249
+ expected_line %|- line_1: "123 Main St.",|
250
+ expected_line %|- line_2: "",|
251
+ expected_line %|- state: "CA",|
252
+ expected_line %|- zip: "90382"|
253
+ expected_line %|- }>|
254
+ actual_line %|+ shipping_address: #<SuperDiff::Test::Models::ActiveRecord::Person {|
255
+ actual_line %|+ id: nil,|
256
+ actual_line %|+ age: 31,|
257
+ actual_line %|+ name: "Elliot"|
258
+ actual_line %|+ }>|
259
+ plain_line %| }|
260
260
  },
261
261
  )
262
262
 
@@ -287,7 +287,7 @@ shared_examples_for "integration with ActiveRecord" do
287
287
  )
288
288
  ]
289
289
  expected = [shipping_addresses.first]
290
- actual = SuperDiff::Test::Models::ActiveRecord::ShippingAddress.all
290
+ actual = SuperDiff::Test::Models::ActiveRecord::ShippingAddress.all
291
291
  expect(actual).to eq(expected)
292
292
  TEST
293
293
  program = make_program(snippet, color_enabled: color_enabled)
@@ -297,34 +297,34 @@ shared_examples_for "integration with ActiveRecord" do
297
297
  snippet: "expect(actual).to eq(expected)",
298
298
  expectation: proc {
299
299
  line do
300
- plain "Expected "
301
- beta %|#<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">, #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 2, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">]>|
300
+ plain %|Expected |
301
+ actual %|#<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">, #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 2, city: "Oakland", line_1: "456 Ponderosa Ct.", line_2: "", state: "CA", zip: "91234">]>|
302
302
  end
303
303
 
304
304
  line do
305
- plain " to eq "
306
- alpha %|[#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">]|
305
+ plain %| to eq |
306
+ expected %|[#<SuperDiff::Test::Models::ActiveRecord::ShippingAddress id: 1, city: "Hill Valley", line_1: "123 Main St.", line_2: "", state: "CA", zip: "90382">]|
307
307
  end
308
308
  },
309
309
  diff: proc {
310
- plain_line %| #<ActiveRecord::Relation [|
311
- plain_line %| #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
312
- plain_line %| id: 1,|
313
- plain_line %| city: "Hill Valley",|
314
- plain_line %| line_1: "123 Main St.",|
315
- plain_line %| line_2: "",|
316
- plain_line %| state: "CA",|
317
- plain_line %| zip: "90382"|
318
- plain_line %| }>,|
319
- beta_line %|+ #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
320
- beta_line %|+ id: 2,|
321
- beta_line %|+ city: "Oakland",|
322
- beta_line %|+ line_1: "456 Ponderosa Ct.",|
323
- beta_line %|+ line_2: "",|
324
- beta_line %|+ state: "CA",|
325
- beta_line %|+ zip: "91234"|
326
- beta_line %|+ }>|
327
- plain_line %| ]>|
310
+ plain_line %| #<ActiveRecord::Relation [|
311
+ plain_line %| #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
312
+ plain_line %| id: 1,|
313
+ plain_line %| city: "Hill Valley",|
314
+ plain_line %| line_1: "123 Main St.",|
315
+ plain_line %| line_2: "",|
316
+ plain_line %| state: "CA",|
317
+ plain_line %| zip: "90382"|
318
+ plain_line %| }>,|
319
+ actual_line %|+ #<SuperDiff::Test::Models::ActiveRecord::ShippingAddress {|
320
+ actual_line %|+ id: 2,|
321
+ actual_line %|+ city: "Oakland",|
322
+ actual_line %|+ line_1: "456 Ponderosa Ct.",|
323
+ actual_line %|+ line_2: "",|
324
+ actual_line %|+ state: "CA",|
325
+ actual_line %|+ zip: "91234"|
326
+ actual_line %|+ }>|
327
+ plain_line %| ]>|
328
328
  },
329
329
  )
330
330
 
@@ -354,7 +354,7 @@ shared_examples_for "integration with ActiveRecord" do
354
354
  )
355
355
  ]
356
356
 
357
- actual = [
357
+ actual = [
358
358
  SuperDiff::Test::Models::ActiveRecord::Query.new(
359
359
  results: SuperDiff::Test::Models::ActiveRecord::Person.all
360
360
  )
@@ -371,30 +371,30 @@ shared_examples_for "integration with ActiveRecord" do
371
371
  newline_before_expectation: true,
372
372
  expectation: proc {
373
373
  line do
374
- plain "Expected "
375
- beta %|[#<SuperDiff::Test::Models::ActiveRecord::Query @results=#<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::Person id: 1, name: "Murphy", age: 20>]>>]|
374
+ plain %|Expected |
375
+ actual %|[#<SuperDiff::Test::Models::ActiveRecord::Query @results=#<ActiveRecord::Relation [#<SuperDiff::Test::Models::ActiveRecord::Person id: 1, name: "Murphy", age: 20>]>>]|
376
376
  end
377
377
 
378
378
  line do
379
- plain "to match "
380
- alpha %|[#<an object having attributes (results: [#<an object having attributes (name: "John", age: 19)>])>]|
379
+ plain %|to match |
380
+ expected %|[#<an object having attributes (results: [#<an object having attributes (name: "John", age: 19)>])>]|
381
381
  end
382
382
  },
383
383
  diff: proc {
384
- plain_line %| [|
385
- plain_line %| #<SuperDiff::Test::Models::ActiveRecord::Query {|
386
- plain_line %| @results=#<ActiveRecord::Relation [|
387
- plain_line %| #<SuperDiff::Test::Models::ActiveRecord::Person {|
388
- plain_line %| id: 1,|
389
- # alpha_line %|- age: 19,| # TODO
390
- alpha_line %|- age: 19|
391
- beta_line %|+ age: 20,|
392
- alpha_line %|- name: "John"|
393
- beta_line %|+ name: "Murphy"|
394
- plain_line %| }>|
395
- plain_line %| ]>|
396
- plain_line %| }>|
397
- plain_line %| ]|
384
+ plain_line %| [|
385
+ plain_line %| #<SuperDiff::Test::Models::ActiveRecord::Query {|
386
+ plain_line %| @results=#<ActiveRecord::Relation [|
387
+ plain_line %| #<SuperDiff::Test::Models::ActiveRecord::Person {|
388
+ plain_line %| id: 1,|
389
+ # expected_line %|- age: 19,| # TODO
390
+ expected_line %|- age: 19|
391
+ actual_line %|+ age: 20,|
392
+ expected_line %|- name: "John"|
393
+ actual_line %|+ name: "Murphy"|
394
+ plain_line %| }>|
395
+ plain_line %| ]>|
396
+ plain_line %| }>|
397
+ plain_line %| ]|
398
398
  },
399
399
  )
400
400