capybara-screenshot-diff 1.8.0 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
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