super_diff 0.12.1 → 0.15.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.
Files changed (272) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -19
  3. data/lib/super_diff/active_record/differs/active_record_relation.rb +2 -0
  4. data/lib/super_diff/active_record/differs.rb +3 -1
  5. data/lib/super_diff/active_record/inspection_tree_builders/active_record_model.rb +7 -5
  6. data/lib/super_diff/active_record/inspection_tree_builders/active_record_relation.rb +12 -10
  7. data/lib/super_diff/active_record/inspection_tree_builders.rb +4 -2
  8. data/lib/super_diff/active_record/monkey_patches.rb +4 -2
  9. data/lib/super_diff/active_record/object_inspection.rb +6 -4
  10. data/lib/super_diff/active_record/operation_tree_builders/active_record_model.rb +3 -1
  11. data/lib/super_diff/active_record/operation_tree_builders/active_record_relation.rb +3 -1
  12. data/lib/super_diff/active_record/operation_tree_builders.rb +4 -2
  13. data/lib/super_diff/active_record/operation_tree_flatteners/active_record_relation.rb +4 -2
  14. data/lib/super_diff/active_record/operation_tree_flatteners.rb +3 -1
  15. data/lib/super_diff/active_record/operation_trees/active_record_relation.rb +2 -0
  16. data/lib/super_diff/active_record/operation_trees.rb +3 -1
  17. data/lib/super_diff/active_record.rb +10 -8
  18. data/lib/super_diff/active_support/differs/hash_with_indifferent_access.rb +2 -0
  19. data/lib/super_diff/active_support/differs.rb +3 -1
  20. data/lib/super_diff/active_support/inspection_tree_builders/hash_with_indifferent_access.rb +16 -14
  21. data/lib/super_diff/active_support/inspection_tree_builders/ordered_options.rb +16 -14
  22. data/lib/super_diff/active_support/inspection_tree_builders.rb +4 -2
  23. data/lib/super_diff/active_support/object_inspection.rb +6 -4
  24. data/lib/super_diff/active_support/operation_tree_builders/hash_with_indifferent_access.rb +6 -4
  25. data/lib/super_diff/active_support/operation_tree_builders.rb +3 -1
  26. data/lib/super_diff/active_support/operation_tree_flatteners/hash_with_indifferent_access.rb +4 -2
  27. data/lib/super_diff/active_support/operation_tree_flatteners.rb +3 -1
  28. data/lib/super_diff/active_support/operation_trees/hash_with_indifferent_access.rb +2 -0
  29. data/lib/super_diff/active_support/operation_trees.rb +3 -1
  30. data/lib/super_diff/active_support.rb +8 -6
  31. data/lib/super_diff/basic/diff_formatters/collection.rb +18 -18
  32. data/lib/super_diff/basic/diff_formatters/multiline_string.rb +2 -0
  33. data/lib/super_diff/basic/diff_formatters.rb +4 -2
  34. data/lib/super_diff/basic/differs/array.rb +2 -0
  35. data/lib/super_diff/basic/differs/custom_object.rb +3 -1
  36. data/lib/super_diff/basic/differs/date_like.rb +2 -0
  37. data/lib/super_diff/basic/differs/default_object.rb +3 -1
  38. data/lib/super_diff/basic/differs/hash.rb +2 -0
  39. data/lib/super_diff/basic/differs/multiline_string.rb +2 -0
  40. data/lib/super_diff/basic/differs/time_like.rb +2 -0
  41. data/lib/super_diff/basic/differs.rb +11 -9
  42. data/lib/super_diff/basic/inspection_tree_builders/array.rb +5 -3
  43. data/lib/super_diff/basic/inspection_tree_builders/custom_object.rb +5 -3
  44. data/lib/super_diff/basic/inspection_tree_builders/data_object.rb +42 -0
  45. data/lib/super_diff/basic/inspection_tree_builders/date_like.rb +7 -5
  46. data/lib/super_diff/basic/inspection_tree_builders/default_object.rb +7 -5
  47. data/lib/super_diff/basic/inspection_tree_builders/hash.rb +7 -5
  48. data/lib/super_diff/basic/inspection_tree_builders/primitive.rb +3 -1
  49. data/lib/super_diff/basic/inspection_tree_builders/range_object.rb +19 -0
  50. data/lib/super_diff/basic/inspection_tree_builders/time_like.rb +8 -8
  51. data/lib/super_diff/basic/inspection_tree_builders.rb +18 -8
  52. data/lib/super_diff/basic/operation_tree_builders/array.rb +6 -4
  53. data/lib/super_diff/basic/operation_tree_builders/custom_object.rb +3 -1
  54. data/lib/super_diff/basic/operation_tree_builders/data_object.rb +20 -0
  55. data/lib/super_diff/basic/operation_tree_builders/date_like.rb +2 -0
  56. data/lib/super_diff/basic/operation_tree_builders/default_object.rb +32 -31
  57. data/lib/super_diff/basic/operation_tree_builders/hash.rb +49 -46
  58. data/lib/super_diff/basic/operation_tree_builders/multiline_string.rb +5 -3
  59. data/lib/super_diff/basic/operation_tree_builders/time_like.rb +5 -3
  60. data/lib/super_diff/basic/operation_tree_builders.rb +15 -9
  61. data/lib/super_diff/basic/operation_tree_flatteners/array.rb +4 -2
  62. data/lib/super_diff/basic/operation_tree_flatteners/collection.rb +11 -11
  63. data/lib/super_diff/basic/operation_tree_flatteners/custom_object.rb +5 -3
  64. data/lib/super_diff/basic/operation_tree_flatteners/default_object.rb +6 -5
  65. data/lib/super_diff/basic/operation_tree_flatteners/hash.rb +5 -3
  66. data/lib/super_diff/basic/operation_tree_flatteners/multiline_string.rb +3 -1
  67. data/lib/super_diff/basic/operation_tree_flatteners.rb +8 -6
  68. data/lib/super_diff/basic/operation_trees/array.rb +2 -0
  69. data/lib/super_diff/basic/operation_trees/custom_object.rb +2 -0
  70. data/lib/super_diff/basic/operation_trees/default_object.rb +6 -4
  71. data/lib/super_diff/basic/operation_trees/hash.rb +2 -0
  72. data/lib/super_diff/basic/operation_trees/multiline_string.rb +3 -1
  73. data/lib/super_diff/basic/operation_trees.rb +9 -7
  74. data/lib/super_diff/basic.rb +12 -7
  75. data/lib/super_diff/core/abstract_differ.rb +2 -0
  76. data/lib/super_diff/core/abstract_inspection_tree_builder.rb +2 -0
  77. data/lib/super_diff/core/abstract_operation_tree.rb +4 -2
  78. data/lib/super_diff/core/abstract_operation_tree_builder.rb +15 -18
  79. data/lib/super_diff/core/abstract_operation_tree_flattener.rb +5 -3
  80. data/lib/super_diff/core/binary_operation.rb +3 -1
  81. data/lib/super_diff/core/colorized_document_extensions.rb +2 -0
  82. data/lib/super_diff/core/configuration.rb +23 -43
  83. data/lib/super_diff/core/differ_dispatcher.rb +4 -2
  84. data/lib/super_diff/core/gem_version.rb +2 -0
  85. data/lib/super_diff/core/helpers.rb +14 -12
  86. data/lib/super_diff/core/implementation_checks.rb +6 -2
  87. data/lib/super_diff/core/inspection_tree.rb +38 -38
  88. data/lib/super_diff/core/inspection_tree_builder_dispatcher.rb +5 -5
  89. data/lib/super_diff/core/inspection_tree_nodes/as_lines_when_rendering_to_lines.rb +3 -1
  90. data/lib/super_diff/core/inspection_tree_nodes/as_prefix_when_rendering_to_lines.rb +2 -0
  91. data/lib/super_diff/core/inspection_tree_nodes/as_prelude_when_rendering_to_lines.rb +2 -0
  92. data/lib/super_diff/core/inspection_tree_nodes/as_single_line.rb +2 -0
  93. data/lib/super_diff/core/inspection_tree_nodes/base.rb +9 -9
  94. data/lib/super_diff/core/inspection_tree_nodes/inspection.rb +2 -0
  95. data/lib/super_diff/core/inspection_tree_nodes/nesting.rb +2 -0
  96. data/lib/super_diff/core/inspection_tree_nodes/only_when.rb +5 -1
  97. data/lib/super_diff/core/inspection_tree_nodes/text.rb +2 -0
  98. data/lib/super_diff/core/inspection_tree_nodes/when_empty.rb +3 -1
  99. data/lib/super_diff/core/inspection_tree_nodes/when_non_empty.rb +3 -1
  100. data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_lines.rb +3 -1
  101. data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_string.rb +2 -0
  102. data/lib/super_diff/core/inspection_tree_nodes.rb +16 -14
  103. data/lib/super_diff/core/line.rb +9 -7
  104. data/lib/super_diff/core/no_differ_available_error.rb +7 -5
  105. data/lib/super_diff/core/no_inspection_tree_builder_available_error.rb +5 -3
  106. data/lib/super_diff/core/no_operation_tree_available_error.rb +4 -2
  107. data/lib/super_diff/core/no_operation_tree_builder_available_error.rb +7 -5
  108. data/lib/super_diff/core/operation_tree_builder_dispatcher.rb +3 -3
  109. data/lib/super_diff/core/operation_tree_finder.rb +8 -8
  110. data/lib/super_diff/core/prefix_for_next_inspection_tree_node.rb +2 -0
  111. data/lib/super_diff/core/prelude_for_next_inspection_tree_node.rb +2 -0
  112. data/lib/super_diff/core/recursion_guard.rb +6 -4
  113. data/lib/super_diff/core/tiered_lines.rb +2 -0
  114. data/lib/super_diff/core/tiered_lines_elider.rb +53 -54
  115. data/lib/super_diff/core/tiered_lines_formatter.rb +6 -4
  116. data/lib/super_diff/core/unary_operation.rb +2 -0
  117. data/lib/super_diff/core.rb +31 -29
  118. data/lib/super_diff/csi/bold_sequence.rb +2 -0
  119. data/lib/super_diff/csi/color.rb +4 -4
  120. data/lib/super_diff/csi/color_sequence_block.rb +3 -1
  121. data/lib/super_diff/csi/colorized_document.rb +7 -9
  122. data/lib/super_diff/csi/document.rb +15 -18
  123. data/lib/super_diff/csi/eight_bit_color.rb +32 -37
  124. data/lib/super_diff/csi/four_bit_color.rb +12 -9
  125. data/lib/super_diff/csi/reset_sequence.rb +2 -0
  126. data/lib/super_diff/csi/twenty_four_bit_color.rb +22 -21
  127. data/lib/super_diff/csi/uncolorized_document.rb +2 -0
  128. data/lib/super_diff/csi.rb +12 -42
  129. data/lib/super_diff/differs.rb +6 -4
  130. data/lib/super_diff/equality_matchers/array.rb +18 -16
  131. data/lib/super_diff/equality_matchers/base.rb +6 -4
  132. data/lib/super_diff/equality_matchers/default.rb +5 -3
  133. data/lib/super_diff/equality_matchers/defaults.rb +3 -1
  134. data/lib/super_diff/equality_matchers/hash.rb +18 -16
  135. data/lib/super_diff/equality_matchers/main.rb +3 -1
  136. data/lib/super_diff/equality_matchers/multiline_string.rb +18 -16
  137. data/lib/super_diff/equality_matchers/primitive.rb +15 -13
  138. data/lib/super_diff/equality_matchers/singleline_string.rb +16 -14
  139. data/lib/super_diff/equality_matchers.rb +11 -9
  140. data/lib/super_diff/errors.rb +4 -2
  141. data/lib/super_diff/object_inspection.rb +17 -15
  142. data/lib/super_diff/operation_tree_builders.rb +6 -4
  143. data/lib/super_diff/operation_tree_flatteners.rb +6 -4
  144. data/lib/super_diff/operation_trees.rb +6 -4
  145. data/lib/super_diff/operations.rb +4 -2
  146. data/lib/super_diff/rails.rb +4 -2
  147. data/lib/super_diff/rspec/augmented_matcher.rb +3 -1
  148. data/lib/super_diff/rspec/differ.rb +16 -7
  149. data/lib/super_diff/rspec/differs/collection_containing_exactly.rb +2 -0
  150. data/lib/super_diff/rspec/differs/collection_including.rb +2 -0
  151. data/lib/super_diff/rspec/differs/hash_including.rb +2 -0
  152. data/lib/super_diff/rspec/differs/object_having_attributes.rb +2 -0
  153. data/lib/super_diff/rspec/differs.rb +6 -4
  154. data/lib/super_diff/rspec/inspection_tree_builders/collection_containing_exactly.rb +12 -10
  155. data/lib/super_diff/rspec/inspection_tree_builders/collection_including.rb +10 -8
  156. data/lib/super_diff/rspec/inspection_tree_builders/double.rb +20 -18
  157. data/lib/super_diff/rspec/inspection_tree_builders/generic_describable_matcher.rb +2 -0
  158. data/lib/super_diff/rspec/inspection_tree_builders/hash_including.rb +10 -8
  159. data/lib/super_diff/rspec/inspection_tree_builders/instance_of.rb +2 -0
  160. data/lib/super_diff/rspec/inspection_tree_builders/kind_of.rb +2 -0
  161. data/lib/super_diff/rspec/inspection_tree_builders/object_having_attributes.rb +12 -10
  162. data/lib/super_diff/rspec/inspection_tree_builders/primitive.rb +2 -0
  163. data/lib/super_diff/rspec/inspection_tree_builders/value_within.rb +6 -4
  164. data/lib/super_diff/rspec/inspection_tree_builders.rb +12 -10
  165. data/lib/super_diff/rspec/matcher_text_builders/base.rb +12 -12
  166. data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +19 -17
  167. data/lib/super_diff/rspec/matcher_text_builders/contain_exactly.rb +3 -1
  168. data/lib/super_diff/rspec/matcher_text_builders/have_predicate.rb +7 -5
  169. data/lib/super_diff/rspec/matcher_text_builders/match.rb +6 -4
  170. data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +5 -3
  171. data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +20 -18
  172. data/lib/super_diff/rspec/matcher_text_builders.rb +9 -7
  173. data/lib/super_diff/rspec/matcher_text_template.rb +34 -39
  174. data/lib/super_diff/rspec/monkey_patches.rb +129 -56
  175. data/lib/super_diff/rspec/object_inspection.rb +7 -5
  176. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +4 -4
  177. data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +2 -0
  178. data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +2 -0
  179. data/lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb +2 -0
  180. data/lib/super_diff/rspec/operation_tree_builders.rb +6 -4
  181. data/lib/super_diff/rspec-rails.rb +4 -2
  182. data/lib/super_diff/rspec.rb +27 -14
  183. data/lib/super_diff/version.rb +3 -1
  184. data/lib/super_diff.rb +24 -27
  185. data/super_diff.gemspec +20 -18
  186. metadata +15 -182
  187. data/spec/examples.txt +0 -704
  188. data/spec/integration/rails/active_record_spec.rb +0 -21
  189. data/spec/integration/rails/active_support_spec.rb +0 -19
  190. data/spec/integration/rails/engines_spec.rb +0 -25
  191. data/spec/integration/rails/hash_with_indifferent_access_spec.rb +0 -21
  192. data/spec/integration/rspec/be_falsey_matcher_spec.rb +0 -58
  193. data/spec/integration/rspec/be_matcher_spec.rb +0 -605
  194. data/spec/integration/rspec/be_nil_matcher_spec.rb +0 -57
  195. data/spec/integration/rspec/be_predicate_matcher_spec.rb +0 -615
  196. data/spec/integration/rspec/be_truthy_matcher_spec.rb +0 -62
  197. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +0 -377
  198. data/spec/integration/rspec/eq_matcher_spec.rb +0 -1066
  199. data/spec/integration/rspec/generic_describable_matchers_spec.rb +0 -177
  200. data/spec/integration/rspec/have_attributes_matcher_spec.rb +0 -443
  201. data/spec/integration/rspec/have_predicate_matcher_spec.rb +0 -478
  202. data/spec/integration/rspec/include_matcher_spec.rb +0 -452
  203. data/spec/integration/rspec/magic_metadata_spec.rb +0 -51
  204. data/spec/integration/rspec/match_array_matcher_spec.rb +0 -424
  205. data/spec/integration/rspec/match_matcher_spec.rb +0 -1359
  206. data/spec/integration/rspec/raise_error_matcher_spec.rb +0 -1488
  207. data/spec/integration/rspec/respond_to_matcher_spec.rb +0 -999
  208. data/spec/integration/rspec/third_party_matcher_spec.rb +0 -245
  209. data/spec/integration/rspec/unhandled_errors_spec.rb +0 -150
  210. data/spec/internal/log/test.log +0 -0
  211. data/spec/spec_helper.rb +0 -90
  212. data/spec/support/colorizer.rb +0 -9
  213. data/spec/support/command_runner.rb +0 -253
  214. data/spec/support/helpers.rb +0 -21
  215. data/spec/support/integration/helpers.rb +0 -124
  216. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +0 -104
  217. data/spec/support/integration/matchers.rb +0 -177
  218. data/spec/support/integration/test_programs/base.rb +0 -143
  219. data/spec/support/integration/test_programs/plain.rb +0 -19
  220. data/spec/support/integration/test_programs/rspec_active_record.rb +0 -20
  221. data/spec/support/integration/test_programs/rspec_active_support.rb +0 -20
  222. data/spec/support/integration/test_programs/rspec_rails.rb +0 -20
  223. data/spec/support/integration/test_programs/rspec_rails_engine.rb +0 -20
  224. data/spec/support/models/a.rb +0 -11
  225. data/spec/support/models/active_record/person.rb +0 -28
  226. data/spec/support/models/active_record/query.rb +0 -15
  227. data/spec/support/models/active_record/shipping_address.rb +0 -24
  228. data/spec/support/models/customer.rb +0 -22
  229. data/spec/support/models/empty_class.rb +0 -6
  230. data/spec/support/models/item.rb +0 -10
  231. data/spec/support/models/order.rb +0 -9
  232. data/spec/support/models/person.rb +0 -20
  233. data/spec/support/models/player.rb +0 -30
  234. data/spec/support/models/shipping_address.rb +0 -25
  235. data/spec/support/shared_examples/active_record.rb +0 -428
  236. data/spec/support/shared_examples/active_support.rb +0 -188
  237. data/spec/support/shared_examples/elided_diffs.rb +0 -938
  238. data/spec/support/shared_examples/hash_with_indifferent_access.rb +0 -749
  239. data/spec/support/shared_examples/key.rb +0 -123
  240. data/spec/support/unit/helpers.rb +0 -24
  241. data/spec/support/unit/matchers/be_deprecated_in_favor_of.rb +0 -39
  242. data/spec/support/unit/matchers/match_output.rb +0 -40
  243. data/spec/unit/active_record/object_inspection_spec.rb +0 -289
  244. data/spec/unit/active_support/object_inspection_spec.rb +0 -170
  245. data/spec/unit/basic/operation_tree_flatteners/array_spec.rb +0 -637
  246. data/spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb +0 -685
  247. data/spec/unit/basic/operation_tree_flatteners/default_object_spec.rb +0 -685
  248. data/spec/unit/basic/operation_tree_flatteners/hash_spec.rb +0 -671
  249. data/spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb +0 -131
  250. data/spec/unit/core/helpers_spec.rb +0 -68
  251. data/spec/unit/core/tiered_lines_elider_spec.rb +0 -6328
  252. data/spec/unit/core/tiered_lines_formatter_spec.rb +0 -131
  253. data/spec/unit/deprecations_spec.rb +0 -176
  254. data/spec/unit/equality_matchers/main_spec.rb +0 -1842
  255. data/spec/unit/rspec/matchers/be_compared_to_spec.rb +0 -23
  256. data/spec/unit/rspec/matchers/be_falsey_spec.rb +0 -9
  257. data/spec/unit/rspec/matchers/be_nil_spec.rb +0 -9
  258. data/spec/unit/rspec/matchers/be_predicate_spec.rb +0 -31
  259. data/spec/unit/rspec/matchers/be_spec.rb +0 -17
  260. data/spec/unit/rspec/matchers/be_truthy_spec.rb +0 -9
  261. data/spec/unit/rspec/matchers/contain_exactly_spec.rb +0 -11
  262. data/spec/unit/rspec/matchers/eq_spec.rb +0 -9
  263. data/spec/unit/rspec/matchers/have_attributes_spec.rb +0 -11
  264. data/spec/unit/rspec/matchers/have_predicate_spec.rb +0 -21
  265. data/spec/unit/rspec/matchers/include_spec.rb +0 -21
  266. data/spec/unit/rspec/matchers/match_array_spec.rb +0 -11
  267. data/spec/unit/rspec/matchers/match_spec.rb +0 -9
  268. data/spec/unit/rspec/matchers/raise_error_spec.rb +0 -77
  269. data/spec/unit/rspec/matchers/respond_to_spec.rb +0 -85
  270. data/spec/unit/rspec/object_inspection/rspec_matcher_spec.rb +0 -91
  271. data/spec/unit/rspec/object_inspection_spec.rb +0 -471
  272. data/spec/unit/super_diff_spec.rb +0 -2115
@@ -1,143 +0,0 @@
1
- require "attr_extras/explicit"
2
- require "json"
3
-
4
- module SuperDiff
5
- module IntegrationTests
6
- module TestPrograms
7
- class Base
8
- extend AttrExtras.mixin
9
-
10
- PROJECT_DIRECTORY = Pathname.new("../../../..").expand_path(__dir__)
11
- TEMP_DIRECTORY = PROJECT_DIRECTORY.join("tmp")
12
-
13
- def initialize(
14
- code,
15
- color_enabled:,
16
- super_diff_configuration: {},
17
- preserve_as_whole_file: false
18
- )
19
- @code = code.strip
20
- @color_enabled = color_enabled
21
- @super_diff_configuration = super_diff_configuration
22
- @preserve_as_whole_file = preserve_as_whole_file
23
- end
24
-
25
- def run
26
- result_of_command
27
- end
28
-
29
- protected
30
-
31
- def test_plan_prelude
32
- ""
33
- end
34
-
35
- def test_plan_command
36
- raise NotImplementedError
37
- end
38
-
39
- private
40
-
41
- attr_reader :code, :super_diff_configuration
42
-
43
- def color_enabled?
44
- @color_enabled
45
- end
46
-
47
- def preserve_as_whole_file?
48
- @preserve_as_whole_file
49
- end
50
-
51
- def result_of_command
52
- @_result_of_command ||=
53
- if zeus_running?
54
- Bundler.with_unbundled_env do
55
- CommandRunner.run(Shellwords.join(command))
56
- end
57
- else
58
- CommandRunner.run(
59
- Shellwords.join(command),
60
- env: {
61
- "DISABLE_PRY" => "true"
62
- }
63
- )
64
- end
65
- end
66
-
67
- def command
68
- raise "RAILS_ENV is being set somehow?!" if ENV["RAILS_ENV"]
69
-
70
- if zeus_running?
71
- [
72
- "zeus",
73
- test_plan_command,
74
- color_option,
75
- "--no-pry",
76
- tempfile.to_s,
77
- "--super-diff-configuration",
78
- JSON.generate(super_diff_configuration)
79
- ]
80
- else
81
- ["rspec", "--options", "/tmp/dummy-rspec-config", tempfile.to_s]
82
- end
83
- end
84
-
85
- def zeus_running?
86
- PROJECT_DIRECTORY.join(".zeus.sock").exist?
87
- end
88
-
89
- def color_option
90
- color_enabled? ? "--color" : "--no-color"
91
- end
92
-
93
- def tempfile
94
- @_tempfile ||=
95
- begin
96
- TEMP_DIRECTORY.mkpath
97
- TEMP_DIRECTORY
98
- .join("integration_spec.rb")
99
- .tap { |file| file.write(program) }
100
- end
101
- end
102
-
103
- def program
104
- if zeus_running?
105
- minimal_program
106
- else
107
- <<~PROGRAM
108
- require "#{PROJECT_DIRECTORY.join("support/test_plan.rb")}"
109
-
110
- test_plan = TestPlan.new(
111
- using_outside_of_zeus: true,
112
- color_enabled: #{color_enabled?.inspect},
113
- super_diff_configuration: #{super_diff_configuration.inspect}
114
- )
115
- #{test_plan_prelude}
116
- test_plan.#{test_plan_command}
117
-
118
- #{minimal_program}
119
- PROGRAM
120
- end
121
- end
122
-
123
- def minimal_program
124
- if preserve_as_whole_file?
125
- code
126
- else
127
- <<~PROGRAM
128
- RSpec.describe "test" do
129
- it "passes" do
130
- #{reindent(code, level: 2)}
131
- end
132
- end
133
- PROGRAM
134
- end
135
- end
136
-
137
- def reindent(code, level: 0)
138
- code.strip.split("\n").map { |line| (" " * level) + line }.join("\n")
139
- end
140
- end
141
- end
142
- end
143
- end
@@ -1,19 +0,0 @@
1
- module SuperDiff
2
- module IntegrationTests
3
- module TestPrograms
4
- class Plain < Base
5
- protected
6
-
7
- def test_plan_prelude
8
- <<~PRELUDE.strip
9
- test_plan.boot
10
- PRELUDE
11
- end
12
-
13
- def test_plan_command
14
- "run_plain_test"
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,20 +0,0 @@
1
- module SuperDiff
2
- module IntegrationTests
3
- module TestPrograms
4
- class RSpecActiveRecord < Base
5
- protected
6
-
7
- def test_plan_prelude
8
- <<~PRELUDE.strip
9
- test_plan.boot
10
- test_plan.boot_active_record
11
- PRELUDE
12
- end
13
-
14
- def test_plan_command
15
- "run_rspec_active_record_test"
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- module SuperDiff
2
- module IntegrationTests
3
- module TestPrograms
4
- class RSpecActiveSupport < Base
5
- protected
6
-
7
- def test_plan_prelude
8
- <<~PRELUDE.strip
9
- test_plan.boot
10
- test_plan.boot_active_support
11
- PRELUDE
12
- end
13
-
14
- def test_plan_command
15
- "run_rspec_active_support_test"
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- module SuperDiff
2
- module IntegrationTests
3
- module TestPrograms
4
- class RSpecRails < Base
5
- protected
6
-
7
- def test_plan_prelude
8
- <<~PRELUDE.strip
9
- test_plan.boot
10
- test_plan.boot_active_record
11
- PRELUDE
12
- end
13
-
14
- def test_plan_command
15
- "run_rspec_rails_test"
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- module SuperDiff
2
- module IntegrationTests
3
- module TestPrograms
4
- class RspecRailsEngineWithActionController < Base
5
- protected
6
-
7
- def test_plan_prelude
8
- <<~PRELUDE.strip
9
- test_plan.boot
10
- test_plan.boot_rails_engine_with_action_controller
11
- PRELUDE
12
- end
13
-
14
- def test_plan_command
15
- "run_rspec_rails_test"
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,11 +0,0 @@
1
- class A
2
- attr_reader :name
3
-
4
- def initialize(name)
5
- @name = name
6
- end
7
-
8
- def attributes_for_super_diff
9
- { name: name }
10
- end
11
- end
@@ -1,28 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- module Models
4
- module ActiveRecord
5
- class Person < ::ActiveRecord::Base
6
- self.primary_key = "person_id"
7
- end
8
- end
9
- end
10
- end
11
- end
12
-
13
- RSpec.configure do |config|
14
- config.before do
15
- ActiveRecord::Base
16
- .connection
17
- .create_table(
18
- :people,
19
- id: false,
20
- primary_key: "person_id",
21
- force: true
22
- ) do |t|
23
- t.primary_key :person_id, null: false
24
- t.string :name, null: false
25
- t.integer :age, null: false
26
- end
27
- end
28
- end
@@ -1,15 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- module Models
4
- module ActiveRecord
5
- class Query
6
- attr_reader :results
7
-
8
- def initialize(results:)
9
- @results = results
10
- end
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,24 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- module Models
4
- module ActiveRecord
5
- class ShippingAddress < ::ActiveRecord::Base
6
- end
7
- end
8
- end
9
- end
10
- end
11
-
12
- RSpec.configure do |config|
13
- config.before do
14
- ActiveRecord::Base
15
- .connection
16
- .create_table(:shipping_addresses, force: true) do |t|
17
- t.string :line_1, null: false, default: ""
18
- t.string :line_2, null: false, default: ""
19
- t.string :city, null: false, default: ""
20
- t.string :state, null: false, default: ""
21
- t.string :zip, null: false, default: ""
22
- end
23
- end
24
- end
@@ -1,22 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- class Customer
4
- attr_reader :name, :shipping_address, :phone
5
-
6
- def initialize(name:, shipping_address:, phone:)
7
- @name = name
8
- @shipping_address = shipping_address
9
- @phone = phone
10
- end
11
-
12
- def ==(other)
13
- other.is_a?(self.class) && other.name == name &&
14
- other.shipping_address == shipping_address && other.phone == phone
15
- end
16
-
17
- def attributes_for_super_diff
18
- { name: name, shipping_address: shipping_address, phone: phone }
19
- end
20
- end
21
- end
22
- end
@@ -1,6 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- class EmptyClass
4
- end
5
- end
6
- end
@@ -1,10 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- class Item
4
- def initialize(name:, quantity:)
5
- @name = name
6
- @quantity = quantity
7
- end
8
- end
9
- end
10
- end
@@ -1,9 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- class Order
4
- def initialize(items)
5
- @items = items
6
- end
7
- end
8
- end
9
- end
@@ -1,20 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- class Person
4
- attr_reader :name, :age
5
-
6
- def initialize(name:, age:)
7
- @name = name
8
- @age = age
9
- end
10
-
11
- def ==(other)
12
- other.is_a?(self.class) && other.name == name && other.age == age
13
- end
14
-
15
- def attributes_for_super_diff
16
- { name: name, age: age }
17
- end
18
- end
19
- end
20
- end
@@ -1,30 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- class Player
4
- attr_reader :handle, :character, :inventory, :shields, :health, :ultimate
5
-
6
- def initialize(
7
- handle:,
8
- character:,
9
- inventory:,
10
- shields:,
11
- health:,
12
- ultimate:
13
- )
14
- @handle = handle
15
- @character = character
16
- @inventory = inventory
17
- @shields = shields
18
- @health = health
19
- @ultimate = ultimate
20
- end
21
-
22
- def ==(other)
23
- other.is_a?(self.class) && other.handle == handle &&
24
- other.character == character && other.inventory == inventory &&
25
- other.shields == shields && other.health == health &&
26
- other.ultimate == ultimate
27
- end
28
- end
29
- end
30
- end
@@ -1,25 +0,0 @@
1
- module SuperDiff
2
- module Test
3
- class ShippingAddress
4
- attr_reader :line_1, :line_2, :city, :state, :zip
5
-
6
- def initialize(line_1:, line_2:, city:, state:, zip:)
7
- @line_1 = line_1
8
- @line_2 = line_2
9
- @city = city
10
- @state = state
11
- @zip = zip
12
- end
13
-
14
- def ==(other)
15
- other.is_a?(self.class) && other.line_1 == line_1 &&
16
- other.line_2 == line_2 && other.city == city &&
17
- other.state == state && other.zip == zip
18
- end
19
-
20
- def attributes_for_super_diff
21
- { line_1: line_1, line_2: line_2, city: city, state: state, zip: zip }
22
- end
23
- end
24
- end
25
- end