percy-capybara 2.3.3 → 2.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -2
- data/CHANGELOG.md +1 -0
- data/lib/percy/capybara/client.rb +14 -4
- data/lib/percy/capybara/client/builds.rb +1 -0
- data/lib/percy/capybara/loaders/native_loader.rb +2 -4
- data/lib/percy/capybara/version.rb +1 -1
- data/spec/lib/percy/capybara/client/builds_spec.rb +0 -1
- data/spec/lib/percy/capybara/client_spec.rb +25 -19
- data/spec/lib/percy/capybara_spec.rb +9 -8
- data/spec/support/test_helpers.rb +13 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf2e261e73d78a50c736b1821ec334ac00574a4f
|
4
|
+
data.tar.gz: eb8e02a61b51589136030b10a4c3bb888a905073
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13a5da1bcb56e9b2933a5c64de5d1c16cf9719a420957a138127df81a648501144144c02508479c6a23c9f1c81308edd793b1113590467a521fc084693c7447f
|
7
|
+
data.tar.gz: d4341e7c86de918ea31a908753c21f5e6f34981ed78c5ea6beae8cd6df673a4babed5f5ea941015635ae4f4d461fd06950586b98d1642e968a7c3c75bccc5cc1
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
See [releases](https://github.com/percy/percy-capybara/releases).
|
@@ -20,6 +20,8 @@ module Percy
|
|
20
20
|
attr_accessor :custom_loader
|
21
21
|
|
22
22
|
def initialize(options = {})
|
23
|
+
@failed = false
|
24
|
+
|
23
25
|
@client = options[:client] || Percy.client
|
24
26
|
@enabled = options[:enabled]
|
25
27
|
|
@@ -29,14 +31,22 @@ module Percy
|
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
34
|
+
# Check that environment variables required for Percy::Client are set
|
35
|
+
def required_environment_variables_set?
|
36
|
+
!(ENV['PERCY_PROJECT'].nil? || ENV['PERCY_TOKEN'].nil?)
|
37
|
+
end
|
38
|
+
|
32
39
|
def enabled?
|
33
40
|
return @enabled if !@enabled.nil?
|
34
41
|
|
35
|
-
#
|
36
|
-
return @enabled
|
42
|
+
# Disable if PERCY_ENABLE is set to 0
|
43
|
+
return @enabled = false if ENV['PERCY_ENABLE'] == '0'
|
44
|
+
|
45
|
+
# Enable if required environment variables are set
|
46
|
+
return @enabled = true if required_environment_variables_set?
|
37
47
|
|
38
|
-
#
|
39
|
-
@enabled
|
48
|
+
# Disable otherwise
|
49
|
+
return @enabled = false
|
40
50
|
end
|
41
51
|
|
42
52
|
def disable!
|
@@ -77,7 +77,6 @@ module Percy
|
|
77
77
|
response = _fetch_resource_url(url)
|
78
78
|
_absolute_url_to_relative!(url, _current_host_port)
|
79
79
|
next if !response
|
80
|
-
sha = Digest::SHA256.hexdigest(response.body)
|
81
80
|
resources << Percy::Client::Resource.new(
|
82
81
|
url, mimetype: 'text/css', content: response.body)
|
83
82
|
end
|
@@ -164,7 +163,6 @@ module Percy
|
|
164
163
|
_absolute_url_to_relative!(resource_url, _current_host_port)
|
165
164
|
next if !response
|
166
165
|
|
167
|
-
sha = Digest::SHA256.hexdigest(response.body)
|
168
166
|
resources << Percy::Client::Resource.new(
|
169
167
|
resource_url, mimetype: response.content_type, content: response.body)
|
170
168
|
end
|
@@ -210,10 +208,10 @@ module Percy
|
|
210
208
|
!!result
|
211
209
|
end
|
212
210
|
|
213
|
-
# @
|
211
|
+
# @private
|
214
212
|
def _current_host_port
|
215
213
|
url_match = URL_REGEX.match(page.current_url)
|
216
|
-
|
214
|
+
url_match[1] + url_match[2] + (url_match[3] || '')
|
217
215
|
end
|
218
216
|
|
219
217
|
# @private
|
@@ -89,7 +89,6 @@ RSpec.describe Percy::Capybara::Client::Builds do
|
|
89
89
|
expect(capybara_client.client).to receive(:upload_resource)
|
90
90
|
.and_raise(Percy::Client::ConnectionFailed)
|
91
91
|
|
92
|
-
result = capybara_client.initialize_build
|
93
92
|
expect(capybara_client.initialize_build).to eq(nil)
|
94
93
|
expect(capybara_client.failed?).to eq(true)
|
95
94
|
expect(build_stub).to have_been_requested
|
@@ -5,27 +5,34 @@ RSpec.describe Percy::Capybara::Client do
|
|
5
5
|
expect(capybara_client.client).to eq(client)
|
6
6
|
end
|
7
7
|
describe '#enabled?' do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
ENV['PERCY_ENABLE'] = nil
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'in supported CI environment' do
|
18
|
-
it 'is true' do
|
19
|
-
ENV['TRAVIS_BUILD_ID'] = '123'
|
8
|
+
context 'when required environment variables set' do
|
9
|
+
before(:context) { set_required_env_variables }
|
10
|
+
after(:context) { clear_required_env_variables }
|
11
|
+
|
12
|
+
it 'is true when PERCY_ENABLE is 1' do
|
13
|
+
ENV['PERCY_ENABLE'] = '1'
|
20
14
|
expect(Percy::Capybara::Client.new.enabled?).to eq(true)
|
21
15
|
end
|
16
|
+
it 'is true when PERCY_ENABLE is not set' do
|
17
|
+
ENV.delete 'PERCY_ENABLE'
|
18
|
+
expect(Percy::Capybara::Client.new.enabled?).to eq(true)
|
19
|
+
end
|
20
|
+
it 'is false when PERCY_ENABLE is 0' do
|
21
|
+
ENV['PERCY_ENABLE'] = '0'
|
22
|
+
expect(Percy::Capybara::Client.new.enabled?).to eq(false)
|
23
|
+
end
|
22
24
|
end
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
|
26
|
+
context 'when required environment variables not set' do
|
27
|
+
before(:each) { clear_required_env_variables }
|
28
|
+
it 'is false' do
|
29
|
+
ENV.delete 'PERCY_ENABLE'
|
30
|
+
expect(Percy::Capybara::Client.new.enabled?).to eq(false)
|
31
|
+
end
|
32
|
+
it 'is false when PERCY_ENABLE is 1' do
|
33
|
+
ENV['PERCY_ENABLE'] = '1'
|
34
|
+
expect(Percy::Capybara::Client.new.enabled?).to eq(false)
|
35
|
+
end
|
29
36
|
end
|
30
37
|
end
|
31
38
|
describe '#failed?' do
|
@@ -107,4 +114,3 @@ RSpec.describe Percy::Capybara::Client do
|
|
107
114
|
end
|
108
115
|
end
|
109
116
|
end
|
110
|
-
|
@@ -2,12 +2,11 @@ RSpec.describe Percy::Capybara do
|
|
2
2
|
before(:each) do
|
3
3
|
Percy::Capybara.reset!
|
4
4
|
@original_env = ENV['TRAVIS_BUILD_ID']
|
5
|
-
ENV['PERCY_ENABLE'] = '1'
|
6
5
|
ENV['TRAVIS_BUILD_ID'] = nil
|
7
6
|
end
|
8
7
|
after(:each) do
|
9
8
|
ENV['TRAVIS_BUILD_ID'] = @original_env
|
10
|
-
ENV
|
9
|
+
ENV.delete('PERCY_ENABLE')
|
11
10
|
end
|
12
11
|
|
13
12
|
describe '#capybara_client' do
|
@@ -27,8 +26,8 @@ RSpec.describe Percy::Capybara do
|
|
27
26
|
expect(capybara_client).to receive(:snapshot).with(mock_page, name: '/foo.html (modal)').once
|
28
27
|
Percy::Capybara.snapshot(mock_page, name: '/foo.html (modal)')
|
29
28
|
end
|
30
|
-
it 'silently skips if
|
31
|
-
ENV['PERCY_ENABLE'] =
|
29
|
+
it 'silently skips if disabled' do
|
30
|
+
ENV['PERCY_ENABLE'] = '0'
|
32
31
|
mock_page = double('page')
|
33
32
|
Percy::Capybara.snapshot(mock_page)
|
34
33
|
end
|
@@ -46,14 +45,15 @@ RSpec.describe Percy::Capybara do
|
|
46
45
|
end
|
47
46
|
it 'delegates to Percy::Capybara::Client' do
|
48
47
|
capybara_client = Percy::Capybara.capybara_client
|
48
|
+
expect(capybara_client).to receive(:enabled?).and_return(:true)
|
49
49
|
build_data = {'data' => {'id' => 123}}
|
50
50
|
expect(capybara_client.client).to receive(:create_build).and_return(build_data).once
|
51
51
|
Percy::Capybara.initialize_build
|
52
52
|
expect(capybara_client).to receive(:finalize_current_build).once
|
53
53
|
Percy::Capybara.finalize_build
|
54
54
|
end
|
55
|
-
it 'silently skips if
|
56
|
-
ENV['PERCY_ENABLE'] =
|
55
|
+
it 'silently skips if disabled' do
|
56
|
+
ENV['PERCY_ENABLE'] = '0'
|
57
57
|
capybara_client = Percy::Capybara.capybara_client
|
58
58
|
expect(capybara_client.client).to_not receive(:create_build)
|
59
59
|
Percy::Capybara.initialize_build
|
@@ -70,7 +70,9 @@ RSpec.describe Percy::Capybara do
|
|
70
70
|
end
|
71
71
|
describe '#disable!' do
|
72
72
|
it 'sets the current capybara_client to disabled' do
|
73
|
-
capybara_client = Percy::Capybara.
|
73
|
+
capybara_client = Percy::Capybara::Client.new(enabled:true)
|
74
|
+
expect(Percy::Capybara).to receive(:capybara_client)
|
75
|
+
.and_return(capybara_client).exactly(3).times
|
74
76
|
expect(Percy::Capybara.capybara_client.enabled?).to eq(true)
|
75
77
|
Percy::Capybara.disable!
|
76
78
|
expect(Percy::Capybara.capybara_client.enabled?).to eq(false)
|
@@ -80,7 +82,6 @@ RSpec.describe Percy::Capybara do
|
|
80
82
|
class DummyLoader < Percy::Capybara::Loaders::NativeLoader; end
|
81
83
|
|
82
84
|
it 'sets the current capybara clients custom loader' do
|
83
|
-
capybara_client = Percy::Capybara::Client
|
84
85
|
expect(Percy::Capybara.capybara_client.custom_loader).to_not be
|
85
86
|
Percy::Capybara.use_loader(DummyLoader)
|
86
87
|
expect(Percy::Capybara.capybara_client.custom_loader).to be
|
@@ -46,4 +46,16 @@ module TestHelpers
|
|
46
46
|
capybara_client.sprockets_environment = environment
|
47
47
|
capybara_client.sprockets_options = sprockets_options
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
|
+
# Set the environment variables required by Percy::Client
|
51
|
+
def set_required_env_variables
|
52
|
+
ENV['PERCY_TOKEN'] = 'aa'
|
53
|
+
ENV['PERCY_PROJECT'] = 'aa'
|
54
|
+
end
|
55
|
+
|
56
|
+
# Clear the environment variables required by Percy::Client
|
57
|
+
def clear_required_env_variables
|
58
|
+
ENV.delete('PERCY_TOKEN')
|
59
|
+
ENV.delete('PERCY_PROJECT')
|
60
|
+
end
|
61
|
+
end
|
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.3.
|
4
|
+
version: 2.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Perceptual Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: percy-client
|
@@ -175,8 +175,8 @@ files:
|
|
175
175
|
- ".rspec"
|
176
176
|
- ".travis.yml"
|
177
177
|
- ".yardopts"
|
178
|
+
- CHANGELOG.md
|
178
179
|
- Gemfile
|
179
|
-
- Gemfile.lock
|
180
180
|
- Guardfile
|
181
181
|
- LICENSE
|
182
182
|
- README.md
|