capybara-screenshot-diff 1.8.0 → 1.8.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e982564438ee16c8ae6900407e80ab1921888bd83b14fc6efc1c9a20fb6b79d5
4
- data.tar.gz: 4893ded8cd25dbf93d9147b21e3a1bf09d80c544a390648eae58ef46dca85c78
3
+ metadata.gz: ace795ddf840ec95a7b217509b7ab9b510e70eb9711358b98aade93ebaf7617a
4
+ data.tar.gz: d4b5bef585802d7f90ac13237337c041e5b02ec996509e075245ba0e7fc76cf7
5
5
  SHA512:
6
- metadata.gz: 146c1928e4fd32ac25d7ad6813f81adb6e6a82004ab2bd589281e8fbc130001f4cddea57e706d7023dcb760a0d907d9a766375ef25a851e44962db6bbdd3e80a
7
- data.tar.gz: 474fca1d1a8e27508593efe4517f6fe2d58608693acba531943e3220d6ae169445963517da6b40b5f7c095f6ef27f038cf57c397f7e17e0f3cae728307f085cd
6
+ metadata.gz: db81714ed5e680cce7d14ace467ed21c46a776e55350fcf3e3a8c1d3c9a1f6cbb866213383f5284089725804431544861f43ca43c7edcda37b75e5bdbe53beef
7
+ data.tar.gz: c2850fa792d957908b3b2e5a937807d31e8b30566b40c7ad403b3d63eede4c023e9f6205f9f513a5e723f5ab889a357e1ad5792028ffd43ee78ceb93ca74dee3
@@ -25,5 +25,5 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_runtime_dependency "actionpack", ">= 6.1", "< 8"
27
27
  spec.add_runtime_dependency "capybara", ">= 2", "< 4"
28
- spec.add_runtime_dependency "chunky_png", ">= 1.3", "< 2"
28
+ spec.add_runtime_dependency "chunky_png", "~> 1.3"
29
29
  end
@@ -10,11 +10,13 @@ module Capybara
10
10
  result << :vips if defined?(Vips) || require("vips")
11
11
  rescue LoadError
12
12
  # vips not present
13
+ Object.send(:remove_const, :Vips) if defined?(Vips)
13
14
  end
14
15
  begin
15
16
  result << :chunky_png if defined?(ChunkyPNG) || require("chunky_png")
16
17
  rescue LoadError
17
18
  # chunky_png not present
19
+ Object.send(:remove_const, :ChunkyPNG) if defined?(ChunkyPNG)
18
20
  end
19
21
  result
20
22
  end
@@ -3,7 +3,7 @@
3
3
  begin
4
4
  require "vips"
5
5
  rescue LoadError => e
6
- warn 'Required ruby-vips gem is missing. Add `gem "ruby-vips"` to Gemfile' if e.message.include?("vips")
6
+ raise 'Required ruby-vips gem is missing. Add `gem "ruby-vips"` to Gemfile' if e.message.match?(/vips/i)
7
7
  raise
8
8
  end
9
9
 
@@ -118,10 +118,9 @@ module Capybara
118
118
  pending_image = BrowserHelpers.pending_image_to_load
119
119
  break unless pending_image
120
120
 
121
- assert(
122
- (Time.now - start) < timeout,
123
- "Images not loaded after #{timeout}s: #{pending_image.inspect}"
124
- )
121
+ if (Time.now - start) >= timeout
122
+ raise Capybara::Screenshot::Diff::ASSERTION, "Images not loaded after #{timeout}s: #{pending_image.inspect}"
123
+ end
125
124
 
126
125
  sleep 0.025
127
126
  end
@@ -74,12 +74,12 @@ module Capybara
74
74
 
75
75
  return false unless job
76
76
 
77
- test_caller = caller(skip_stack_frames)
77
+ job.prepend(caller[skip_stack_frames])
78
78
 
79
79
  if Screenshot::Diff.delayed
80
- schedule_match_job([test_caller] + job)
80
+ schedule_match_job(job)
81
81
  else
82
- error_msg = assert_image_not_changed(job.first, job.last)
82
+ error_msg = assert_image_not_changed(*job)
83
83
  if error_msg
84
84
  error = ASSERTION.new(error_msg)
85
85
  error.set_backtrace(caller(2))
@@ -88,7 +88,7 @@ module Capybara
88
88
  end
89
89
  end
90
90
 
91
- def assert_image_not_changed(name, comparison)
91
+ def assert_image_not_changed(caller, name, comparison)
92
92
  result = comparison.different?
93
93
 
94
94
  # Cleanup after comparisons
@@ -100,7 +100,7 @@ module Capybara
100
100
 
101
101
  return unless result
102
102
 
103
- "Screenshot does not match for '#{name}' #{comparison.error_message}"
103
+ "Screenshot does not match for '#{name}' #{comparison.error_message}\n#{caller}"
104
104
  end
105
105
 
106
106
  private
@@ -3,7 +3,7 @@
3
3
  module Capybara
4
4
  module Screenshot
5
5
  module Diff
6
- VERSION = "1.8.0"
6
+ VERSION = "1.8.2"
7
7
  end
8
8
  end
9
9
  end
@@ -80,7 +80,7 @@ module Capybara
80
80
 
81
81
  klass.teardown do
82
82
  if Screenshot.active? && @test_screenshots.present?
83
- track_failures(@test_screenshots, caller)
83
+ track_failures(@test_screenshots)
84
84
  @test_screenshots.clear
85
85
  end
86
86
  end
@@ -90,16 +90,16 @@ module Capybara
90
90
 
91
91
  EMPTY_LINE = "\n\n"
92
92
 
93
- def track_failures(screenshots, original_caller)
93
+ def track_failures(screenshots)
94
94
  test_screenshot_errors = screenshots.map do |caller, name, compare|
95
- assert_image_not_changed(name, compare)
95
+ assert_image_not_changed(caller, name, compare)
96
96
  end
97
97
 
98
98
  test_screenshot_errors.compact!
99
99
 
100
100
  unless test_screenshot_errors.empty?
101
101
  error = ASSERTION.new(test_screenshot_errors.join(EMPTY_LINE))
102
- error.set_backtrace(original_caller)
102
+ error.set_backtrace([])
103
103
 
104
104
  if is_a?(::Minitest::Runnable)
105
105
  failures << error
@@ -22,7 +22,7 @@ module Capybara
22
22
 
23
23
  private
24
24
 
25
- def track_failures: (Array[untyped] screenshots, (Array[String] | String) original_caller) -> void
25
+ def track_failures: (Array[untyped] screenshots) -> void
26
26
  end
27
27
  end
28
28
  end
@@ -28,7 +28,7 @@ module Capybara
28
28
 
29
29
  def screenshot: (name_entity name, ?skip_stack_frames: ::Integer, **untyped options) -> boolish
30
30
 
31
- def assert_image_not_changed: (String name, ImageCompare comparison) -> ::String?
31
+ def assert_image_not_changed: (String caller, String name, ImageCompare comparison) -> ::String?
32
32
 
33
33
  private
34
34
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-screenshot-diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uwe Kubosch
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-13 00:00:00.000000000 Z
11
+ date: 2023-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -54,22 +54,16 @@ dependencies:
54
54
  name: chunky_png
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ">="
57
+ - - "~>"
58
58
  - !ruby/object:Gem::Version
59
59
  version: '1.3'
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '2'
63
60
  type: :runtime
64
61
  prerelease: false
65
62
  version_requirements: !ruby/object:Gem::Requirement
66
63
  requirements:
67
- - - ">="
64
+ - - "~>"
68
65
  - !ruby/object:Gem::Version
69
66
  version: '1.3'
70
- - - "<"
71
- - !ruby/object:Gem::Version
72
- version: '2'
73
67
  description: Save screen shots and track changes with graphical diff
74
68
  email:
75
69
  - uwe@kubosch.no