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,605 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "Integration with RSpec's #be matcher", type: :integration do
4
- context "with a boolean" do
5
- context "when comparing with false" do
6
- it "produces the correct failure message when used in the positive" do
7
- as_both_colored_and_uncolored do |color_enabled|
8
- program =
9
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
10
- expect(true).to be(false)
11
- TEST
12
-
13
- expected_output =
14
- build_expected_output(
15
- color_enabled: color_enabled,
16
- snippet: "expect(true).to be(false)",
17
- expectation:
18
- proc do
19
- line do
20
- plain "Expected "
21
- actual "true"
22
- plain " to equal "
23
- expected "false"
24
- plain "."
25
- end
26
- end
27
- )
28
-
29
- expect(program).to produce_output_when_run(expected_output).in_color(
30
- color_enabled
31
- )
32
- end
33
- end
34
-
35
- it "produces the correct failure message when used in the negative" do
36
- as_both_colored_and_uncolored do |color_enabled|
37
- program =
38
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
39
- expect(false).not_to be(false)
40
- TEST
41
-
42
- expected_output =
43
- build_expected_output(
44
- color_enabled: color_enabled,
45
- snippet: "expect(false).not_to be(false)",
46
- expectation:
47
- proc do
48
- line do
49
- plain "Expected "
50
- actual "false"
51
- plain " not to equal "
52
- expected "false"
53
- plain "."
54
- end
55
- end
56
- )
57
-
58
- expect(program).to produce_output_when_run(expected_output).in_color(
59
- color_enabled
60
- )
61
- end
62
- end
63
- end
64
-
65
- context "when comparing with true" do
66
- it "produces the correct failure message when used in the positive" do
67
- as_both_colored_and_uncolored do |color_enabled|
68
- program =
69
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
70
- expect(false).to be(true)
71
- TEST
72
-
73
- expected_output =
74
- build_expected_output(
75
- color_enabled: color_enabled,
76
- snippet: "expect(false).to be(true)",
77
- expectation:
78
- proc do
79
- line do
80
- plain "Expected "
81
- actual "false"
82
- plain " to equal "
83
- expected "true"
84
- plain "."
85
- end
86
- end
87
- )
88
-
89
- expect(program).to produce_output_when_run(expected_output).in_color(
90
- color_enabled
91
- )
92
- end
93
- end
94
-
95
- it "produces the correct failure message when used in the negative" do
96
- as_both_colored_and_uncolored do |color_enabled|
97
- program =
98
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
99
- expect(true).not_to be(true)
100
- TEST
101
-
102
- expected_output =
103
- build_expected_output(
104
- color_enabled: color_enabled,
105
- snippet: "expect(true).not_to be(true)",
106
- expectation:
107
- proc do
108
- line do
109
- plain "Expected "
110
- actual "true"
111
- plain " not to equal "
112
- expected "true"
113
- plain "."
114
- end
115
- end
116
- )
117
-
118
- expect(program).to produce_output_when_run(expected_output).in_color(
119
- color_enabled
120
- )
121
- end
122
- end
123
- end
124
- end
125
-
126
- context "with no arguments" do
127
- it "produces the correct failure message when used in the positive" do
128
- as_both_colored_and_uncolored do |color_enabled|
129
- program =
130
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
131
- expect(nil).to be
132
- TEST
133
-
134
- expected_output =
135
- build_expected_output(
136
- color_enabled: color_enabled,
137
- snippet: "expect(nil).to be",
138
- expectation:
139
- proc do
140
- line do
141
- plain "Expected "
142
- actual "nil"
143
- plain " to be "
144
- expected "truthy"
145
- plain "."
146
- end
147
- end
148
- )
149
-
150
- expect(program).to produce_output_when_run(expected_output).in_color(
151
- color_enabled
152
- )
153
- end
154
- end
155
-
156
- it "produces the correct failure message when used in the negative" do
157
- as_both_colored_and_uncolored do |color_enabled|
158
- program =
159
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
160
- expect(:something).not_to be
161
- TEST
162
-
163
- expected_output =
164
- build_expected_output(
165
- color_enabled: color_enabled,
166
- snippet: "expect(:something).not_to be",
167
- expectation:
168
- proc do
169
- line do
170
- plain "Expected "
171
- actual ":something"
172
- plain " not to be "
173
- expected "truthy"
174
- plain "."
175
- end
176
- end
177
- )
178
-
179
- expect(program).to produce_output_when_run(expected_output).in_color(
180
- color_enabled
181
- )
182
- end
183
- end
184
- end
185
-
186
- context "with ==" do
187
- it "produces the correct failure message when used in the positive" do
188
- as_both_colored_and_uncolored do |color_enabled|
189
- program =
190
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
191
- expect(nil).to be == :foo
192
- TEST
193
-
194
- expected_output =
195
- build_expected_output(
196
- color_enabled: color_enabled,
197
- snippet: "expect(nil).to be == :foo",
198
- expectation:
199
- proc do
200
- line do
201
- plain "Expected "
202
- actual "nil"
203
- plain " to == "
204
- expected ":foo"
205
- plain "."
206
- end
207
- end
208
- )
209
-
210
- expect(program).to produce_output_when_run(expected_output).in_color(
211
- color_enabled
212
- )
213
- end
214
- end
215
-
216
- it "produces the correct failure message when used in the negative" do
217
- as_both_colored_and_uncolored do |color_enabled|
218
- program =
219
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
220
- expect(:foo).not_to be == :foo
221
- TEST
222
-
223
- expected_output =
224
- build_expected_output(
225
- color_enabled: color_enabled,
226
- snippet: "expect(:foo).not_to be == :foo",
227
- expectation:
228
- proc do
229
- line do
230
- plain "Expected "
231
- actual ":foo"
232
- plain " not to == "
233
- expected ":foo"
234
- plain "."
235
- end
236
- end
237
- )
238
-
239
- expect(program).to produce_output_when_run(expected_output).in_color(
240
- color_enabled
241
- )
242
- end
243
- end
244
- end
245
-
246
- context "with <" do
247
- it "produces the correct failure message when used in the positive" do
248
- as_both_colored_and_uncolored do |color_enabled|
249
- program =
250
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
251
- expect(1).to be < 1
252
- TEST
253
-
254
- expected_output =
255
- build_expected_output(
256
- color_enabled: color_enabled,
257
- snippet: "expect(1).to be < 1",
258
- expectation:
259
- proc do
260
- line do
261
- plain "Expected "
262
- actual "1"
263
- plain " to be < "
264
- expected "1"
265
- plain "."
266
- end
267
- end
268
- )
269
-
270
- expect(program).to produce_output_when_run(expected_output).in_color(
271
- color_enabled
272
- )
273
- end
274
- end
275
-
276
- it "produces the correct failure message when used in the negative" do
277
- as_both_colored_and_uncolored do |color_enabled|
278
- program =
279
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
280
- expect(0).not_to be < 1
281
- TEST
282
-
283
- expected_output =
284
- build_expected_output(
285
- color_enabled: color_enabled,
286
- snippet: "expect(0).not_to be < 1",
287
- expectation:
288
- proc do
289
- line do
290
- plain "Expected "
291
- actual "0"
292
- plain " not to be < "
293
- expected "1"
294
- plain "."
295
- end
296
- end
297
- )
298
-
299
- expect(program).to produce_output_when_run(expected_output).in_color(
300
- color_enabled
301
- )
302
- end
303
- end
304
- end
305
-
306
- context "with <=" do
307
- it "produces the correct failure message when used in the positive" do
308
- as_both_colored_and_uncolored do |color_enabled|
309
- program =
310
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
311
- expect(1).to be <= 0
312
- TEST
313
-
314
- expected_output =
315
- build_expected_output(
316
- color_enabled: color_enabled,
317
- snippet: "expect(1).to be <= 0",
318
- expectation:
319
- proc do
320
- line do
321
- plain "Expected "
322
- actual "1"
323
- plain " to be <= "
324
- expected "0"
325
- plain "."
326
- end
327
- end
328
- )
329
-
330
- expect(program).to produce_output_when_run(expected_output).in_color(
331
- color_enabled
332
- )
333
- end
334
- end
335
-
336
- it "produces the correct failure message when used in the negative" do
337
- as_both_colored_and_uncolored do |color_enabled|
338
- program =
339
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
340
- expect(0).not_to be <= 0
341
- TEST
342
-
343
- expected_output =
344
- build_expected_output(
345
- color_enabled: color_enabled,
346
- snippet: "expect(0).not_to be <= 0",
347
- expectation:
348
- proc do
349
- line do
350
- plain "Expected "
351
- actual "0"
352
- plain " not to be <= "
353
- expected "0"
354
- plain "."
355
- end
356
- end
357
- )
358
-
359
- expect(program).to produce_output_when_run(expected_output).in_color(
360
- color_enabled
361
- )
362
- end
363
- end
364
- end
365
-
366
- context "with >=" do
367
- it "produces the correct failure message when used in the positive" do
368
- as_both_colored_and_uncolored do |color_enabled|
369
- program =
370
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
371
- expect(1).to be >= 2
372
- TEST
373
-
374
- expected_output =
375
- build_expected_output(
376
- color_enabled: color_enabled,
377
- snippet: "expect(1).to be >= 2",
378
- expectation:
379
- proc do
380
- line do
381
- plain "Expected "
382
- actual "1"
383
- plain " to be >= "
384
- expected "2"
385
- plain "."
386
- end
387
- end
388
- )
389
-
390
- expect(program).to produce_output_when_run(expected_output).in_color(
391
- color_enabled
392
- )
393
- end
394
- end
395
-
396
- it "produces the correct failure message when used in the negative" do
397
- as_both_colored_and_uncolored do |color_enabled|
398
- program =
399
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
400
- expect(2).not_to be >= 2
401
- TEST
402
-
403
- expected_output =
404
- build_expected_output(
405
- color_enabled: color_enabled,
406
- snippet: "expect(2).not_to be >= 2",
407
- expectation:
408
- proc do
409
- line do
410
- plain "Expected "
411
- actual "2"
412
- plain " not to be >= "
413
- expected "2"
414
- plain "."
415
- end
416
- end
417
- )
418
-
419
- expect(program).to produce_output_when_run(expected_output).in_color(
420
- color_enabled
421
- )
422
- end
423
- end
424
- end
425
-
426
- context "with >" do
427
- it "produces the correct failure message when used in the positive" do
428
- as_both_colored_and_uncolored do |color_enabled|
429
- program =
430
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
431
- expect(1).to be > 2
432
- TEST
433
-
434
- expected_output =
435
- build_expected_output(
436
- color_enabled: color_enabled,
437
- snippet: "expect(1).to be > 2",
438
- expectation:
439
- proc do
440
- line do
441
- plain "Expected "
442
- actual "1"
443
- plain " to be > "
444
- expected "2"
445
- plain "."
446
- end
447
- end
448
- )
449
-
450
- expect(program).to produce_output_when_run(expected_output).in_color(
451
- color_enabled
452
- )
453
- end
454
- end
455
-
456
- it "produces the correct failure message when used in the negative" do
457
- as_both_colored_and_uncolored do |color_enabled|
458
- program =
459
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
460
- expect(3).not_to be > 2
461
- TEST
462
-
463
- expected_output =
464
- build_expected_output(
465
- color_enabled: color_enabled,
466
- snippet: "expect(3).not_to be > 2",
467
- expectation:
468
- proc do
469
- line do
470
- plain "Expected "
471
- actual "3"
472
- plain " not to be > "
473
- expected "2"
474
- plain "."
475
- end
476
- end
477
- )
478
-
479
- expect(program).to produce_output_when_run(expected_output).in_color(
480
- color_enabled
481
- )
482
- end
483
- end
484
- end
485
-
486
- context "with ===" do
487
- it "produces the correct failure message when used in the positive" do
488
- as_both_colored_and_uncolored do |color_enabled|
489
- program =
490
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
491
- expect(String).to be === :foo
492
- TEST
493
-
494
- expected_output =
495
- build_expected_output(
496
- color_enabled: color_enabled,
497
- snippet: "expect(String).to be === :foo",
498
- expectation:
499
- proc do
500
- line do
501
- plain "Expected "
502
- actual "String"
503
- plain " to === "
504
- expected ":foo"
505
- plain "."
506
- end
507
- end
508
- )
509
-
510
- expect(program).to produce_output_when_run(expected_output).in_color(
511
- color_enabled
512
- )
513
- end
514
- end
515
-
516
- it "produces the correct failure message when used in the negative" do
517
- as_both_colored_and_uncolored do |color_enabled|
518
- program =
519
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
520
- expect(String).not_to be === "foo"
521
- TEST
522
-
523
- expected_output =
524
- build_expected_output(
525
- color_enabled: color_enabled,
526
- snippet: %|expect(String).not_to be === "foo"|,
527
- expectation:
528
- proc do
529
- line do
530
- plain "Expected "
531
- actual "String"
532
- plain " not to === "
533
- expected %|"foo"|
534
- plain "."
535
- end
536
- end
537
- )
538
-
539
- expect(program).to produce_output_when_run(expected_output).in_color(
540
- color_enabled
541
- )
542
- end
543
- end
544
- end
545
-
546
- context "with =~" do
547
- it "produces the correct failure message when used in the positive" do
548
- as_both_colored_and_uncolored do |color_enabled|
549
- program =
550
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
551
- expect("foo").to be =~ /bar/
552
- TEST
553
-
554
- expected_output =
555
- build_expected_output(
556
- color_enabled: color_enabled,
557
- snippet: %|expect("foo").to be =~ /bar/|,
558
- expectation:
559
- proc do
560
- line do
561
- plain "Expected "
562
- actual %|"foo"|
563
- plain " to =~ "
564
- expected "/bar/"
565
- plain "."
566
- end
567
- end
568
- )
569
-
570
- expect(program).to produce_output_when_run(expected_output).in_color(
571
- color_enabled
572
- )
573
- end
574
- end
575
-
576
- it "produces the correct failure message when used in the negative" do
577
- as_both_colored_and_uncolored do |color_enabled|
578
- program =
579
- make_plain_test_program(<<~TEST.strip, color_enabled: color_enabled)
580
- expect("bar").not_to be =~ /bar/
581
- TEST
582
-
583
- expected_output =
584
- build_expected_output(
585
- color_enabled: color_enabled,
586
- snippet: %|expect("bar").not_to be =~ /bar/|,
587
- expectation:
588
- proc do
589
- line do
590
- plain "Expected "
591
- actual %|"bar"|
592
- plain " not to =~ "
593
- expected "/bar/"
594
- plain "."
595
- end
596
- end
597
- )
598
-
599
- expect(program).to produce_output_when_run(expected_output).in_color(
600
- color_enabled
601
- )
602
- end
603
- end
604
- end
605
- end
@@ -1,57 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "Integration with RSpec's #be_nil matcher", type: :integration do
4
- it "produces the correct failure message when used the positive" do
5
- as_both_colored_and_uncolored do |color_enabled|
6
- snippet = "expect(:foo).to be_nil"
7
- program = make_plain_test_program(snippet, color_enabled: color_enabled)
8
-
9
- expected_output =
10
- build_expected_output(
11
- color_enabled: color_enabled,
12
- snippet: "expect(:foo).to be_nil",
13
- expectation:
14
- proc do
15
- line do
16
- plain "Expected "
17
- actual ":foo"
18
- plain " to be "
19
- expected "nil"
20
- plain "."
21
- end
22
- end
23
- )
24
-
25
- expect(program).to produce_output_when_run(expected_output).in_color(
26
- color_enabled
27
- )
28
- end
29
- end
30
-
31
- it "produces the correct failure message when used in the negative" do
32
- as_both_colored_and_uncolored do |color_enabled|
33
- snippet = "expect(nil).not_to be_nil"
34
- program = make_plain_test_program(snippet, color_enabled: color_enabled)
35
-
36
- expected_output =
37
- build_expected_output(
38
- color_enabled: color_enabled,
39
- snippet: "expect(nil).not_to be_nil",
40
- expectation:
41
- proc do
42
- line do
43
- plain "Expected "
44
- actual "nil"
45
- plain " not to be "
46
- expected "nil"
47
- plain "."
48
- end
49
- end
50
- )
51
-
52
- expect(program).to produce_output_when_run(expected_output).in_color(
53
- color_enabled
54
- )
55
- end
56
- end
57
- end