summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-07-05 17:48:00 +0200
committerSamuel Giddins <segiddins@segiddins.me>2017-07-05 17:48:00 +0200
commitf4c156a971ca08c6bc5c644b9ac64889d3784ba4 (patch)
treea51b7c12a801724953e2c4571e85000d14360803
parentb0883924ee284d2d2f6e8848ac2994085c95035a (diff)
downloadbundler-f4c156a971ca08c6bc5c644b9ac64889d3784ba4.tar.gz
Add a be_sorted matcher
-rw-r--r--spec/support/matchers.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/spec/support/matchers.rb b/spec/support/matchers.rb
index e91f04fb29..7316e43684 100644
--- a/spec/support/matchers.rb
+++ b/spec/support/matchers.rb
@@ -113,6 +113,20 @@ module Spec
end
end
+ RSpec::Matchers.define :be_sorted do
+ diffable
+ attr_reader :expected
+ match do |actual|
+ expected = block_arg ? actual.sort_by(&block_arg) : actual.sort
+ actual.==(expected).tap do
+ # HACK: since rspec won't show a diff when everything is a string
+ differ = RSpec::Support::Differ.new
+ @actual = differ.send(:object_to_string, actual)
+ @expected = differ.send(:object_to_string, expected)
+ end
+ end
+ end
+
define_compound_matcher :read_as, [exist] do |file_contents|
diffable