diff options
| author | Zog | 2018-01-22 21:11:28 +0100 |
|---|---|---|
| committer | Zog | 2018-02-09 10:21:45 +0100 |
| commit | 590ff858cf0fe71b420f8a59d393319e190f68aa (patch) | |
| tree | d22adbd74f7d0683c07022cb013eec8eb9df922e /spec | |
| parent | 8b6e358e3e59c507eac738a38b54f45a133164cc (diff) | |
| download | chouette-core-590ff858cf0fe71b420f8a59d393319e190f68aa.tar.bz2 | |
Refs #5669; Add a preview for snapshots for easier debugging
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/support/snapshot_support.rb | 15 |
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) }, |
