aboutsummaryrefslogtreecommitdiffstats
path: root/spec/support
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support')
-rw-r--r--spec/support/snapshot_support.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/spec/support/snapshot_support.rb b/spec/support/snapshot_support.rb
index f1a6b1469..c37bb075c 100644
--- a/spec/support/snapshot_support.rb
+++ b/spec/support/snapshot_support.rb
@@ -6,14 +6,27 @@ RSpec::Matchers.define :match_actions_links_snapshot do |name|
failure_message do |actual|
out = ["Snapshots did not match."]
- expected = File.read(File.dirname(method_missing(:class).metadata[:file_path]) + "/__snapshots__/#{name}.snap")
+ snap_path = File.dirname(method_missing(:class).metadata[:file_path]) + "/__snapshots__/#{name}.snap"
+ temp_path = Pathname.new "#{Rails.root}/tmp/__snapshots__/#{name}.failed.snap"
+ FileUtils.mkdir_p temp_path.dirname
+ tmp = File.new temp_path, "w"
+ tmp.write @content
+ tmp.close()
+ expected = File.read snap_path
out << "Expected: #{expected}"
out << "Actual: #{@content}"
out << "\n\n --- DIFF ---"
out << differ.diff_as_string(@content, expected)
+ out << "\n\n --- Previews : ---"
+ out << "Expected: \n" + snapshot_url(snap: snap_path, layout: :actions_links)
+ out << " \nActual: \n" + snapshot_url(snap: tmp.path, layout: :actions_links)
out.join("\n")
end
+ def snapshot_url snap:, layout:
+ "http://localhost:3000/snap/?snap=#{URI.encode(snap.to_s)}&layout=#{URI.encode(layout.to_s)}"
+ end
+
def differ
RSpec::Support::Differ.new(
:object_preparer => lambda { |object| RSpec::Matchers::Composable.surface_descriptions_in(object) },