super_diff 0.13.0 → 0.14.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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  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 +6 -4
  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 +2 -0
  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 +15 -9
  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 +4 -2
  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 +12 -10
  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 +9 -6
  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 +14 -38
  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 +13 -11
  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 -10
  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 +2 -0
  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/object_inspection.rb +7 -5
  175. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +4 -4
  176. data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +2 -0
  177. data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +2 -0
  178. data/lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb +2 -0
  179. data/lib/super_diff/rspec/operation_tree_builders.rb +6 -4
  180. data/lib/super_diff/rspec-rails.rb +4 -2
  181. data/lib/super_diff/rspec.rb +15 -13
  182. data/lib/super_diff/version.rb +3 -1
  183. data/lib/super_diff.rb +24 -26
  184. data/super_diff.gemspec +20 -19
  185. metadata +6 -185
  186. data/spec/examples.txt +0 -450
  187. data/spec/integration/rails/active_record_spec.rb +0 -21
  188. data/spec/integration/rails/active_support_spec.rb +0 -19
  189. data/spec/integration/rails/engines_spec.rb +0 -25
  190. data/spec/integration/rails/hash_with_indifferent_access_spec.rb +0 -21
  191. data/spec/integration/rspec/be_falsey_matcher_spec.rb +0 -58
  192. data/spec/integration/rspec/be_matcher_spec.rb +0 -605
  193. data/spec/integration/rspec/be_nil_matcher_spec.rb +0 -57
  194. data/spec/integration/rspec/be_predicate_matcher_spec.rb +0 -615
  195. data/spec/integration/rspec/be_truthy_matcher_spec.rb +0 -62
  196. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +0 -377
  197. data/spec/integration/rspec/eq_matcher_spec.rb +0 -1066
  198. data/spec/integration/rspec/generic_describable_matchers_spec.rb +0 -177
  199. data/spec/integration/rspec/have_attributes_matcher_spec.rb +0 -443
  200. data/spec/integration/rspec/have_predicate_matcher_spec.rb +0 -478
  201. data/spec/integration/rspec/include_matcher_spec.rb +0 -452
  202. data/spec/integration/rspec/magic_metadata_spec.rb +0 -51
  203. data/spec/integration/rspec/match_array_matcher_spec.rb +0 -424
  204. data/spec/integration/rspec/match_matcher_spec.rb +0 -1359
  205. data/spec/integration/rspec/raise_error_matcher_spec.rb +0 -1488
  206. data/spec/integration/rspec/respond_to_matcher_spec.rb +0 -999
  207. data/spec/integration/rspec/third_party_matcher_spec.rb +0 -245
  208. data/spec/integration/rspec/unhandled_errors_spec.rb +0 -150
  209. data/spec/spec_helper.rb +0 -91
  210. data/spec/support/colorizer.rb +0 -9
  211. data/spec/support/command_runner.rb +0 -253
  212. data/spec/support/helpers.rb +0 -21
  213. data/spec/support/integration/helpers.rb +0 -124
  214. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +0 -104
  215. data/spec/support/integration/matchers.rb +0 -177
  216. data/spec/support/integration/test_programs/base.rb +0 -143
  217. data/spec/support/integration/test_programs/plain.rb +0 -19
  218. data/spec/support/integration/test_programs/rspec_active_record.rb +0 -20
  219. data/spec/support/integration/test_programs/rspec_active_support.rb +0 -20
  220. data/spec/support/integration/test_programs/rspec_rails.rb +0 -20
  221. data/spec/support/integration/test_programs/rspec_rails_engine.rb +0 -20
  222. data/spec/support/models/a.rb +0 -11
  223. data/spec/support/models/active_record/person.rb +0 -28
  224. data/spec/support/models/active_record/query.rb +0 -15
  225. data/spec/support/models/active_record/shipping_address.rb +0 -24
  226. data/spec/support/models/customer.rb +0 -22
  227. data/spec/support/models/empty_class.rb +0 -6
  228. data/spec/support/models/item.rb +0 -10
  229. data/spec/support/models/order.rb +0 -9
  230. data/spec/support/models/person.rb +0 -20
  231. data/spec/support/models/player.rb +0 -30
  232. data/spec/support/models/point.rb +0 -7
  233. data/spec/support/models/shipping_address.rb +0 -25
  234. data/spec/support/shared_examples/active_record.rb +0 -428
  235. data/spec/support/shared_examples/active_support.rb +0 -188
  236. data/spec/support/shared_examples/elided_diffs.rb +0 -938
  237. data/spec/support/shared_examples/hash_with_indifferent_access.rb +0 -749
  238. data/spec/support/shared_examples/key.rb +0 -123
  239. data/spec/support/unit/helpers.rb +0 -24
  240. data/spec/support/unit/matchers/be_deprecated_in_favor_of.rb +0 -39
  241. data/spec/support/unit/matchers/match_output.rb +0 -40
  242. data/spec/unit/active_record/object_inspection_spec.rb +0 -289
  243. data/spec/unit/active_support/object_inspection_spec.rb +0 -170
  244. data/spec/unit/basic/inspection_tree_builders/data_object_spec.rb +0 -146
  245. data/spec/unit/basic/operation_tree_builders/data_object_spec.rb +0 -82
  246. data/spec/unit/basic/operation_tree_flatteners/array_spec.rb +0 -637
  247. data/spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb +0 -685
  248. data/spec/unit/basic/operation_tree_flatteners/default_object_spec.rb +0 -685
  249. data/spec/unit/basic/operation_tree_flatteners/hash_spec.rb +0 -671
  250. data/spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb +0 -131
  251. data/spec/unit/core/configuration_no_rspec_spec.rb +0 -58
  252. data/spec/unit/core/configuration_spec.rb +0 -176
  253. data/spec/unit/core/helpers_spec.rb +0 -68
  254. data/spec/unit/core/tiered_lines_elider_spec.rb +0 -6328
  255. data/spec/unit/core/tiered_lines_formatter_spec.rb +0 -131
  256. data/spec/unit/deprecations_spec.rb +0 -176
  257. data/spec/unit/equality_matchers/main_spec.rb +0 -1842
  258. data/spec/unit/rspec/matchers/be_compared_to_spec.rb +0 -23
  259. data/spec/unit/rspec/matchers/be_falsey_spec.rb +0 -9
  260. data/spec/unit/rspec/matchers/be_nil_spec.rb +0 -9
  261. data/spec/unit/rspec/matchers/be_predicate_spec.rb +0 -31
  262. data/spec/unit/rspec/matchers/be_spec.rb +0 -17
  263. data/spec/unit/rspec/matchers/be_truthy_spec.rb +0 -9
  264. data/spec/unit/rspec/matchers/contain_exactly_spec.rb +0 -11
  265. data/spec/unit/rspec/matchers/eq_spec.rb +0 -9
  266. data/spec/unit/rspec/matchers/have_attributes_spec.rb +0 -11
  267. data/spec/unit/rspec/matchers/have_predicate_spec.rb +0 -21
  268. data/spec/unit/rspec/matchers/include_spec.rb +0 -21
  269. data/spec/unit/rspec/matchers/match_array_spec.rb +0 -11
  270. data/spec/unit/rspec/matchers/match_spec.rb +0 -9
  271. data/spec/unit/rspec/matchers/raise_error_spec.rb +0 -77
  272. data/spec/unit/rspec/matchers/respond_to_spec.rb +0 -85
  273. data/spec/unit/rspec/object_inspection/rspec_matcher_spec.rb +0 -91
  274. data/spec/unit/rspec/object_inspection_spec.rb +0 -471
  275. data/spec/unit/super_diff_spec.rb +0 -2115
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `be` matcher used with an operator" do
4
- describe "#description" do
5
- %i[== === =~].each do |operator|
6
- context "when the operator is #{operator}" do
7
- it "returns the correct output" do
8
- expect(be.public_send(operator, 2).description).to eq("#{operator} 2")
9
- end
10
- end
11
- end
12
-
13
- %i[< <= >= >].each do |operator|
14
- context "when the operator is #{operator}" do
15
- it "returns the correct output" do
16
- expect(be.public_send(operator, 2).description).to eq(
17
- "be #{operator} 2"
18
- )
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,9 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `be_truthy` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(be_falsey.description).to eq("be falsey")
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `be_nil` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(be_nil.description).to eq("be nil")
7
- end
8
- end
9
- end
@@ -1,31 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `be_<predicate>` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(be_famous.description).to eq(
7
- "return true for `famous?` or `famouss?`"
8
- )
9
- end
10
- end
11
- end
12
-
13
- RSpec.describe "RSpec's `be_a_<predicate>` matcher" do
14
- describe "#description" do
15
- it "returns the correct output" do
16
- expect(be_a_big_big_star.description).to eq(
17
- "return true for `big_big_star?` or `big_big_stars?`"
18
- )
19
- end
20
- end
21
- end
22
-
23
- RSpec.describe "RSpec's `be_an_<predicate>` matcher" do
24
- describe "#description" do
25
- it "returns the correct output" do
26
- expect(be_an_open_book.description).to eq(
27
- "return true for `open_book?` or `open_books?`"
28
- )
29
- end
30
- end
31
- end
@@ -1,17 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `be` matcher" do
4
- describe "#description" do
5
- context "given nothing" do
6
- it "returns the correct output" do
7
- expect(be.description).to eq("be truthy")
8
- end
9
- end
10
-
11
- context "given an argument" do
12
- it "returns the correct output" do
13
- expect(be(:foo).description).to eq("equal :foo")
14
- end
15
- end
16
- end
17
- end
@@ -1,9 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `be_truthy` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(be_truthy.description).to eq("be truthy")
7
- end
8
- end
9
- end
@@ -1,11 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `contain_exactly` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(contain_exactly(:foo, :bar, :baz).description).to eq(
7
- "contain exactly :foo, :bar and :baz"
8
- )
9
- end
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `eq` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(eq(:foo).description).to eq("eq :foo")
7
- end
8
- end
9
- end
@@ -1,11 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `have_attributes` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(have_attributes(foo: "bar", baz: "qux").description).to eq(
7
- %|have attributes (foo: "bar", baz: "qux")|
8
- )
9
- end
10
- end
11
- end
@@ -1,21 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `have_<predicate>` matcher" do
4
- describe "#description" do
5
- context "given nothing" do
6
- it "returns the correct output" do
7
- expect(have_experience.description).to eq(
8
- "return true for `has_experience?`"
9
- )
10
- end
11
- end
12
-
13
- context "given an argument" do
14
- it "returns the correct output" do
15
- expect(have_ingredients(:sugar).description).to eq(
16
- "return true for `has_ingredients?(:sugar)`"
17
- )
18
- end
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `include` matcher" do
4
- describe "#description" do
5
- context "given a list of items" do
6
- it "returns the correct output" do
7
- expect(include(:foo, :bar, :baz).description).to eq(
8
- "include :foo, :bar, and :baz"
9
- )
10
- end
11
- end
12
-
13
- context "given a hash" do
14
- it "returns the correct output" do
15
- expect(include(foo: "bar", baz: "qux").description).to eq(
16
- 'include (foo: "bar", baz: "qux")'
17
- )
18
- end
19
- end
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `match_array` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(match_array(%i[foo bar baz]).description).to eq(
7
- "match array with :foo, :bar and :baz"
8
- )
9
- end
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `match` matcher" do
4
- describe "#description" do
5
- it "returns the correct output" do
6
- expect(match(:foo).description).to eq("match :foo")
7
- end
8
- end
9
- end
@@ -1,77 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `raise_error` matcher" do
4
- describe "#description" do
5
- context "given only an exception class" do
6
- it "returns the correct output" do
7
- expect(raise_error(RuntimeError).description).to eq(
8
- "raise a kind of RuntimeError"
9
- )
10
- end
11
- end
12
-
13
- context "given only a string message" do
14
- it "returns the correct output" do
15
- expect(raise_error("hell").description).to eq(
16
- %|raise a kind of Exception with message "hell"|
17
- )
18
- end
19
- end
20
-
21
- context "given only a regexp message" do
22
- it "returns the correct output" do
23
- expect(raise_error(/hell/i).description).to eq(
24
- "raise a kind of Exception with message matching /hell/i"
25
- )
26
- end
27
- end
28
-
29
- context "given both an exception and string message" do
30
- it "returns the correct output" do
31
- expect(raise_error(RuntimeError, "hell").description).to eq(
32
- %|raise a kind of RuntimeError with message "hell"|
33
- )
34
- end
35
- end
36
-
37
- context "given both an exception and regexp message" do
38
- it "returns the correct output" do
39
- expect(raise_error(RuntimeError, /hell/i).description).to eq(
40
- "raise a kind of RuntimeError with message matching /hell/i"
41
- )
42
- end
43
- end
44
-
45
- context "given a simple RSpec matcher" do
46
- it "returns the correct output" do
47
- expect(raise_error(a_kind_of(RuntimeError)).description).to eq(
48
- "raise #<a kind of RuntimeError>"
49
- )
50
- end
51
- end
52
-
53
- context "given a simple RSpec matcher and string message" do
54
- it "returns the correct output" do
55
- expect(raise_error(a_kind_of(RuntimeError), "boo").description).to eq(
56
- 'raise #<a kind of RuntimeError> with message "boo"'
57
- )
58
- end
59
- end
60
-
61
- context "given a simple RSpec matcher and regexp message" do
62
- it "returns the correct output" do
63
- expect(raise_error(a_kind_of(RuntimeError), /boo/i).description).to eq(
64
- "raise #<a kind of RuntimeError> with message matching /boo/i"
65
- )
66
- end
67
- end
68
-
69
- context "given a compound RSpec matcher" do
70
- it "returns the correct output" do
71
- expect(raise_error(a_kind_of(Array).or eq(true)).description).to eq(
72
- "raise #<a kind of Array or eq true>"
73
- )
74
- end
75
- end
76
- end
77
- end
@@ -1,85 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe "RSpec's `respond_to` matcher" do
4
- describe "#description" do
5
- context "without any qualifiers" do
6
- it "returns the correct output" do
7
- expect(respond_to(:foo, :bar, :baz).description).to eq(
8
- "respond to :foo, :bar and :baz"
9
- )
10
- end
11
- end
12
-
13
- context "qualified with #with + #arguments" do
14
- it "returns the correct output" do
15
- expect(
16
- respond_to(:foo, :bar, :baz).with(3).arguments.description
17
- ).to eq("respond to :foo, :bar and :baz with 3 arguments")
18
- end
19
- end
20
-
21
- context "qualified with #with_keywords" do
22
- it "returns the correct output" do
23
- matcher =
24
- respond_to(:foo, :bar, :baz).with_keywords(:qux, :blargh, :fizz)
25
-
26
- expect(matcher.description).to eq(
27
- "respond to :foo, :bar and :baz with keywords :qux, :blargh " +
28
- "and :fizz"
29
- )
30
- end
31
- end
32
-
33
- context "qualified with #with_any_keywords" do
34
- it "returns the correct output" do
35
- matcher = respond_to(:foo, :bar, :baz).with_any_keywords
36
-
37
- expect(matcher.description).to eq(
38
- "respond to :foo, :bar and :baz with any keywords"
39
- )
40
- end
41
- end
42
-
43
- context "qualified with #with_unlimited_arguments" do
44
- it "returns the correct output" do
45
- matcher = respond_to(:foo, :bar, :baz).with_unlimited_arguments
46
-
47
- expect(matcher.description).to eq(
48
- "respond to :foo, :bar and :baz with unlimited arguments"
49
- )
50
- end
51
- end
52
-
53
- context "qualified with #with_any_keywords + #with_unlimited_arguments" do
54
- it "returns the correct output" do
55
- matcher =
56
- respond_to(
57
- :foo,
58
- :bar,
59
- :baz
60
- ).with_any_keywords.with_unlimited_arguments
61
-
62
- expect(matcher.description).to eq(
63
- "respond to :foo, :bar and :baz with any keywords and unlimited " +
64
- "arguments"
65
- )
66
- end
67
- end
68
-
69
- context "qualified with #with_keywords + #with_unlimited_arguments" do
70
- it "returns the correct output" do
71
- matcher =
72
- respond_to(:foo, :bar, :baz).with_keywords(
73
- :qux,
74
- :blargh,
75
- :fizz
76
- ).with_unlimited_arguments
77
-
78
- expect(matcher.description).to eq(
79
- "respond to :foo, :bar and :baz with keywords :qux, :blargh and " +
80
- ":fizz and unlimited arguments"
81
- )
82
- end
83
- end
84
- end
85
- end
@@ -1,91 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe SuperDiff, type: :unit do
4
- describe ".inspect_object", "for RSpec matchers" do
5
- context "given a custom matcher" do
6
- let(:custom_matcher) do
7
- proc do |expected, &block_arg|
8
- declarations =
9
- proc do
10
- match do |actual|
11
- actual.is_a?(Integer) && actual >= 0 &&
12
- (Math.sqrt(actual) % 1).zero?
13
- end
14
- description { "be a perfect square" }
15
- end
16
- RSpec::Matchers::DSL::Matcher.new(
17
- :be_a_square,
18
- declarations,
19
- RSpec::Matchers::DSL,
20
- *expected,
21
- &block_arg
22
- )
23
- end
24
- end
25
-
26
- context "given as_lines: false" do
27
- it "returns the matcher's description string" do
28
- string =
29
- described_class.inspect_object(
30
- custom_matcher.call(4),
31
- as_lines: false
32
- )
33
- expect(string).to eq("#<be a perfect square>")
34
- end
35
- end
36
-
37
- context "given as_lines: true" do
38
- it "returns an inspected version of the matcher as multiple lines" do
39
- tiered_lines =
40
- described_class.inspect_object(
41
- custom_matcher.call(4),
42
- as_lines: true,
43
- type: :delete,
44
- indentation_level: 1
45
- )
46
- expect(tiered_lines).to match(
47
- [
48
- an_object_having_attributes(
49
- type: :delete,
50
- indentation_level: 1,
51
- value: "#<be a perfect square>"
52
- )
53
- ]
54
- )
55
- end
56
- end
57
- end
58
-
59
- context "given a built-in matcher" do
60
- let(:matcher) { be_a(Numeric) }
61
-
62
- context "given as_lines: false" do
63
- it "returns the matcher's description string" do
64
- string = described_class.inspect_object(matcher, as_lines: false)
65
- expect(string).to eq("#<be a kind of Numeric>")
66
- end
67
- end
68
-
69
- context "given as_lines: true" do
70
- it "returns an inspected version of the matcher as multiple lines" do
71
- tiered_lines =
72
- described_class.inspect_object(
73
- matcher,
74
- as_lines: true,
75
- type: :delete,
76
- indentation_level: 1
77
- )
78
- expect(tiered_lines).to match(
79
- [
80
- an_object_having_attributes(
81
- type: :delete,
82
- indentation_level: 1,
83
- value: "#<be a kind of Numeric>"
84
- )
85
- ]
86
- )
87
- end
88
- end
89
- end
90
- end
91
- end