capybara-screenshot-diff 1.4.1 → 1.5.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: 478b12e69b1ab3bcf453a4e77d643fa4b31557120eb632ec84144453aaaa69e0
4
- data.tar.gz: 61a33c7f216c6094c194f2d73521827f96cee8b8aff70d33d15b9acf399a70ac
3
+ metadata.gz: 16702f818a4fa7e25a088ed4906ba3460680e4d28cd13b6f8e3e32e199883249
4
+ data.tar.gz: f1e4b515cc4f7cf731c0712c92eaf7330dcd355b0af9d47bdf23d070634c6411
5
5
  SHA512:
6
- metadata.gz: 9e63d9f1d7018f33484f56364952cd3e8d3f4345dad74b3e4c2a71252b72a481d0cfd667da62ca21a296c887b14a5e823a915aea0e3c1da2d26000de7e279899
7
- data.tar.gz: 4e6127676eceb695a7036035d40f6faf42f93533c08554044934868c1a3ba0df98fbf92b19eff339bf2a24b79c52e2bfb08a24b76071dca530d14b86e7fc5a98
6
+ metadata.gz: 63e704bffd2f4016a38b7181d94529b5f05e7c64bb99c853ad5781fe0530b7f4343fdd2a73cd2fa7256cffa933a9750a0ceb54db27bb4d001cdd3adbf6a7c476
7
+ data.tar.gz: 5c9c24eda6a2c8d9a8c5d30513aeacdd88d45f67cb2bf55b9c712bb13de622f0508f2442690b2b92afff0ddb87136c34cb91e30f8d123af46ae7d80230a20c49
@@ -3,6 +3,8 @@ name: Test
3
3
  on:
4
4
  push:
5
5
  branches: [ $default-branch ]
6
+ pull_request_target:
7
+ branches: [ $default-branch ]
6
8
  pull_request:
7
9
 
8
10
  env:
@@ -69,7 +71,7 @@ jobs:
69
71
 
70
72
  strategy:
71
73
  matrix:
72
- ruby-version: [ '2.7', '2.6', '2.5', 'jruby' ]
74
+ ruby-version: [ '3.0', '2.7', '2.6', 'jruby' ]
73
75
  gemfile:
74
76
  - 'rails61_gems.rb'
75
77
  - 'rails60_gems.rb'
@@ -77,6 +79,12 @@ jobs:
77
79
  - 'rails51.gemfile'
78
80
  - 'rails50.gemfile'
79
81
  - 'rails42.gemfile'
82
+ # exclude:
83
+ # - ruby-version: '3.0'
84
+ # gemfile: 'rails50_gems.rb'
85
+ # - ruby-version: '3.0'
86
+ # gemfile: 'rails42_gems.rb'
87
+
80
88
  env:
81
89
  BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}
82
90
 
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.summary = "Track your GUI changes with diff assertions"
13
13
  spec.description = "Save screen shots and track changes with graphical diff"
14
14
  spec.homepage = "https://github.com/donv/capybara-screenshot-diff"
15
- spec.required_ruby_version = "~> 2.5"
15
+ spec.required_ruby_version = ">= 2.5.0"
16
16
  spec.license = "MIT"
17
17
  spec.metadata["allowed_push_host"] = "https://rubygems.org/"
18
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -209,8 +209,8 @@ module Capybara
209
209
  def find_left_right_and_top(old_img, new_img, region)
210
210
  left = region[0] || old_img.width - 1
211
211
  top = region[1]
212
- bottom = region[2]
213
- right = region[3] || 0
212
+ right = region[2] || 0
213
+ bottom = region[3]
214
214
  old_img.height.times do |y|
215
215
  (0...left).find do |x|
216
216
  next if same_color?(old_img, new_img, x, y)
@@ -82,7 +82,7 @@ module Capybara
82
82
  @chunky_png_comparator ||= ImageCompare.new(
83
83
  @new_file_name,
84
84
  @old_file_name,
85
- @options.merge(driver: :chunky_png, tolerance: nil, median_filter_window_size: nil)
85
+ **@options.merge(driver: :chunky_png, tolerance: nil, median_filter_window_size: nil)
86
86
  )
87
87
  end
88
88
 
@@ -20,6 +20,16 @@ module Capybara
20
20
  }()
21
21
  JS
22
22
 
23
+ HIDE_CARET_SCRIPT = <<~JS
24
+ if (!document.getElementById('csdHideCaretStyle')) {
25
+ let style = document.createElement('style');
26
+ style.setAttribute('id', 'csdHideCaretStyle');
27
+ document.head.appendChild(style);
28
+ let styleSheet = style.sheet;
29
+ styleSheet.insertRule("* { caret-color: transparent !important; }", 0);
30
+ }
31
+ JS
32
+
23
33
  def take_stable_screenshot(comparison, stability_time_limit:, wait:)
24
34
  previous_file_name = comparison.old_file_name
25
35
  screenshot_started_at = last_image_change_at = Time.now
@@ -117,15 +127,7 @@ module Capybara
117
127
  JS
118
128
  blurred_input = page.driver.send :unwrap_script_result, active_element
119
129
  end
120
- if Capybara::Screenshot.hide_caret && !@hid_caret
121
- execute_script(<<~JS)
122
- var style = document.createElement('style');
123
- document.head.appendChild(style);
124
- var styleSheet = style.sheet;
125
- styleSheet.insertRule("* { caret-color: transparent !important; }", 0);
126
- JS
127
- @hid_caret = true
128
- end
130
+ execute_script(HIDE_CARET_SCRIPT) if Capybara::Screenshot.hide_caret
129
131
  blurred_input
130
132
  end
131
133
 
@@ -3,7 +3,7 @@
3
3
  module Capybara
4
4
  module Screenshot
5
5
  module Diff
6
- VERSION = "1.4.1"
6
+ VERSION = "1.5.2"
7
7
  end
8
8
  end
9
9
  end
@@ -55,6 +55,12 @@ module Capybara
55
55
  mattr_accessor(:tolerance) { 0.001 }
56
56
 
57
57
  AVAILABLE_DRIVERS = Utils.detect_available_drivers.freeze
58
+ begin
59
+ require 'minitest'
60
+ ASSERTION = Minitest::Assertion
61
+ rescue
62
+ ASSERTION = RuntimeError
63
+ end
58
64
 
59
65
  def self.included(klass)
60
66
  klass.include TestMethods
@@ -73,7 +79,7 @@ module Capybara
73
79
  test_screenshot_errors = @test_screenshots
74
80
  .map { |caller, name, compare| assert_image_not_changed(caller, name, compare) }
75
81
  test_screenshot_errors.compact!
76
- fail(test_screenshot_errors.join("\n\n")) if test_screenshot_errors.any?
82
+ raise ASSERTION, test_screenshot_errors.join("\n\n") if test_screenshot_errors.any?
77
83
  end
78
84
  end
79
85
  end
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.4.1
4
+ version: 1.5.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: 2020-12-23 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -115,16 +115,16 @@ require_paths:
115
115
  - lib
116
116
  required_ruby_version: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: '2.5'
120
+ version: 2.5.0
121
121
  required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - ">="
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  requirements: []
127
- rubygems_version: 3.1.4
127
+ rubygems_version: 3.2.22
128
128
  signing_key:
129
129
  specification_version: 4
130
130
  summary: Track your GUI changes with diff assertions