percy-capybara 2.5.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -0
- data/Gemfile +1 -1
- data/lib/percy/capybara/httpfetcher.rb +1 -1
- data/lib/percy/capybara/loaders/native_loader.rb +1 -1
- data/lib/percy/capybara/loaders/sprockets_loader.rb +13 -9
- data/lib/percy/capybara/version.rb +1 -1
- data/percy-capybara.gemspec +1 -1
- data/spec/lib/percy/capybara/loaders/native_loader_spec.rb +1 -1
- data/spec/lib/percy/capybara/loaders/sprockets_loader_spec.rb +2 -1
- data/spec/support/test_helpers.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ba34ea074b4869f59bc97456d10244725ab00c4
|
4
|
+
data.tar.gz: c582901df940381843c536adae6b12cf925de398
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a6b638286d1e7be3567b2e72c8a3ae8ba24e0da8f0cb3491d6caf49b1a1f22424db100ed1d168b335aa86bde8f05b5dc4c7f5f607e55360ba68b3e277b6090d
|
7
|
+
data.tar.gz: 551f496366ba9956bb969d1b9d400cace00bcb87faa62059bb298077d445793e9ffd51216563cc5c97c68dd669871e7d271535cc8d72b84ce4cf8e7d3ad6ac10
|
data/.rubocop.yml
CHANGED
@@ -58,6 +58,32 @@ Style/TrailingCommaInLiteral:
|
|
58
58
|
RSpec/MessageSpies:
|
59
59
|
EnforcedStyle: receive
|
60
60
|
|
61
|
+
Style/FileName:
|
62
|
+
Exclude:
|
63
|
+
- 'Gemfile'
|
64
|
+
- 'Guardfile'
|
65
|
+
- 'percy-capybara.gemspec'
|
66
|
+
|
67
|
+
Style/EmptyLineAfterMagicComment:
|
68
|
+
Exclude:
|
69
|
+
- 'percy-capybara.gemspec'
|
70
|
+
|
71
|
+
Style/PercentLiteralDelimiters:
|
72
|
+
Exclude:
|
73
|
+
- 'percy-capybara.gemspec'
|
74
|
+
|
75
|
+
Style/UnneededPercentQ:
|
76
|
+
Exclude:
|
77
|
+
- 'percy-capybara.gemspec'
|
78
|
+
|
79
|
+
Style/RegexpLiteral:
|
80
|
+
Exclude:
|
81
|
+
- 'percy-capybara.gemspec'
|
82
|
+
|
83
|
+
Style/SymbolArray:
|
84
|
+
Exclude:
|
85
|
+
- 'spec/spec_helper.rb'
|
86
|
+
|
61
87
|
# Will be able to do this in >= v1.11
|
62
88
|
# RSpec/DescribedClass:
|
63
89
|
# EnforcedStyle: explicit
|
data/Gemfile
CHANGED
@@ -19,7 +19,7 @@ module Percy
|
|
19
19
|
# influenced by any HTTP middleware/restrictions. This helps us avoid causing lots of
|
20
20
|
# problems for people using gems like VCR/WebMock. We also disable certificate checking
|
21
21
|
# because, as odd as that is, it's the default state for Selenium Firefox and others.
|
22
|
-
output = `curl --insecure -v -o #{temppath} "#{url.shellescape}" 2>&1`
|
22
|
+
output = `curl --compressed --insecure -v -o #{temppath} "#{url.shellescape}" 2>&1`
|
23
23
|
content_type = output.match(/< Content-Type:(.*)/i)
|
24
24
|
content_type = content_type[1].strip if content_type
|
25
25
|
|
@@ -9,7 +9,7 @@ module Percy
|
|
9
9
|
# This loader uses JavaScript to discover page resources, so specs must be tagged with
|
10
10
|
# "js: true" because the default Rack::Test driver does not support executing JavaScript.
|
11
11
|
class NativeLoader < BaseLoader # rubocop:disable ClassLength
|
12
|
-
PATH_REGEX =
|
12
|
+
PATH_REGEX = %r{\A/[^\\s\"']*}
|
13
13
|
DATA_URL_REGEX = /\Adata:/
|
14
14
|
LOCAL_HOSTNAMES = [
|
15
15
|
'localhost',
|
@@ -93,16 +93,20 @@ module Percy
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def _asset_logical_paths
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
96
|
+
if _rails && _rails.application.respond_to?(:precompiled_assets)
|
97
|
+
_rails.application.precompiled_assets
|
98
|
+
else
|
99
|
+
# Re-implement the same technique that "rake assets:precompile" uses to generate the
|
100
|
+
# list of asset paths to include in compiled assets. https://goo.gl/sy2R4z
|
101
|
+
# We can't just use environment.each_logical_path without any filters, because then
|
102
|
+
# we will attempt to compile assets before they're rendered (such as _mixins.css).
|
103
|
+
precompile_list = sprockets_options.precompile
|
104
|
+
logical_paths = sprockets_environment.each_logical_path(*precompile_list).to_a
|
105
|
+
logical_paths += precompile_list.flatten.select do |filename|
|
106
|
+
Pathname.new(filename).absolute? if filename.is_a?(String)
|
107
|
+
end
|
108
|
+
logical_paths.uniq
|
104
109
|
end
|
105
|
-
logical_paths.uniq
|
106
110
|
end
|
107
111
|
end
|
108
112
|
end
|
data/percy-capybara.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency 'capybara-webkit', '>= 1.6', '< 1.12.0' # 1.12.0 breaks specs
|
28
28
|
spec.add_development_dependency 'selenium-webdriver'
|
29
29
|
spec.add_development_dependency 'webmock', '~> 1'
|
30
|
-
spec.add_development_dependency 'mime-types', '< 3'
|
30
|
+
spec.add_development_dependency 'mime-types', '< 3' # For Ruby 1.9 testing support.
|
31
31
|
spec.add_development_dependency 'faraday', '>= 0.8'
|
32
32
|
spec.add_development_dependency 'sprockets', '>= 3.2.0'
|
33
33
|
end
|
@@ -225,7 +225,7 @@ RSpec.describe Percy::Capybara::Loaders::NativeLoader do
|
|
225
225
|
content = File.read(path)
|
226
226
|
# In Ruby 1.9.3 the SVG mimetype is not registered so our mini ruby webserver doesn't serve
|
227
227
|
# the correct content type. Allow either to work here so we can test older Rubies fully.
|
228
|
-
expect(resource.mimetype).to match(/
|
228
|
+
expect(resource.mimetype).to match(%r{image/svg\+xml|application/octet-stream})
|
229
229
|
expected_sha = Digest::SHA256.hexdigest(content)
|
230
230
|
expect(Digest::SHA256.hexdigest(resource.content)).to eq(expected_sha)
|
231
231
|
expect(resource.sha).to eq(expected_sha)
|
@@ -24,7 +24,7 @@ RSpec.describe Percy::Capybara::Loaders::SprocketsLoader do
|
|
24
24
|
let(:sprockets_options) do
|
25
25
|
options = double('options')
|
26
26
|
# Set specific files we want to compile. In normal use, this would be all asset files.
|
27
|
-
precompile_list = [
|
27
|
+
precompile_list = [%r{(?:/|\\|\A)(base|digested)\.(css|js)$|\.map|\.png}]
|
28
28
|
allow(options).to receive(:precompile).and_return(precompile_list)
|
29
29
|
allow(options).to receive(:digest).and_return(digest_enabled)
|
30
30
|
options
|
@@ -77,6 +77,7 @@ RSpec.describe Percy::Capybara::Loaders::SprocketsLoader do
|
|
77
77
|
# Pretend like we're in a Rails app right now, all we care about is Rails.public_path.
|
78
78
|
rails_double = double('Rails')
|
79
79
|
# Pretend like the entire testdata directory is the public/ folder.
|
80
|
+
expect(rails_double).to receive(:application).and_return(nil)
|
80
81
|
expect(rails_double).to receive(:public_path).and_return(environment.root + '/public')
|
81
82
|
expect(loader).to receive(:_rails).at_least(:once).and_return(rails_double)
|
82
83
|
end
|
@@ -40,7 +40,7 @@ module TestHelpers
|
|
40
40
|
environment.append_path '.'
|
41
41
|
|
42
42
|
sprockets_options = double('sprockets_options')
|
43
|
-
allow(sprockets_options).to receive(:precompile).and_return([
|
43
|
+
allow(sprockets_options).to receive(:precompile).and_return([%r{(?:/|\\|\A)base\.(css|js)$}])
|
44
44
|
allow(sprockets_options).to receive(:digest).and_return(false)
|
45
45
|
|
46
46
|
capybara_client.sprockets_environment = environment
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: percy-capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Perceptual Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: percy-client
|