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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e5d969e6040123759001a610740fe46115eb5c8
4
- data.tar.gz: 64345632abd3e80a2216bcd5f8b912be6c30718a
3
+ metadata.gz: bf2e261e73d78a50c736b1821ec334ac00574a4f
4
+ data.tar.gz: eb8e02a61b51589136030b10a4c3bb888a905073
5
5
  SHA512:
6
- metadata.gz: 4d876fa8b49fb2f66979cdaac78e7051ba294087f3747cf97cffc94240d48b8e503866d1ee9173cda6d4534cf3c4f6f12c4a1a42ebcfe4f180ae14708926ae73
7
- data.tar.gz: 60be216d386341d9428a535406ba309116c086a5e1cc18e18b08218133fdcdd8f96f003f39dd4c857e5ffe1e1a1affb7066b9394934932a4b2d49f32f617c915
6
+ metadata.gz: 13a5da1bcb56e9b2933a5c64de5d1c16cf9719a420957a138127df81a648501144144c02508479c6a23c9f1c81308edd793b1113590467a521fc084693c7447f
7
+ data.tar.gz: d4341e7c86de918ea31a908753c21f5e6f34981ed78c5ea6beae8cd6df673a4babed5f5ea941015635ae4f4d461fd06950586b98d1642e968a7c3c75bccc5cc1
@@ -2,8 +2,9 @@ language: ruby
2
2
  sudo: false
3
3
  cache: bundler
4
4
  rvm:
5
- - 1.9.3
6
- - 2.2
5
+ - ruby-2.2.6
6
+ - ruby-2.3.3
7
+ - ruby-2.4.0
7
8
  - ruby-head
8
9
  matrix:
9
10
  allow_failures:
@@ -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
- # Enable if PERCY_ENABLE=1 in local dev (allow disabling if 0).
36
- return @enabled ||= ENV['PERCY_ENABLE'] == '1' if ENV['PERCY_ENABLE']
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
- # If in supported CI environment.
39
- @enabled ||= !Percy::Client::Environment.current_ci.nil?
48
+ # Disable otherwise
49
+ return @enabled = false
40
50
  end
41
51
 
42
52
  def disable!
@@ -32,6 +32,7 @@ module Percy
32
32
  end
33
33
 
34
34
  def build_initialized?
35
+ return false unless defined? @current_build
35
36
  !!@current_build
36
37
  end
37
38
 
@@ -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
- # @priivate
211
+ # @private
214
212
  def _current_host_port
215
213
  url_match = URL_REGEX.match(page.current_url)
216
- host_port = url_match[1] + url_match[2] + (url_match[3] || '')
214
+ url_match[1] + url_match[2] + (url_match[3] || '')
217
215
  end
218
216
 
219
217
  # @private
@@ -1,5 +1,5 @@
1
1
  module Percy
2
2
  module Capybara
3
- VERSION = '2.3.3'
3
+ VERSION = '2.3.4'
4
4
  end
5
5
  end
@@ -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
- before(:each) do
9
- @original_env = ENV['TRAVIS_BUILD_ID']
10
- ENV['TRAVIS_BUILD_ID'] = nil
11
- end
12
- after(:each) do
13
- ENV['TRAVIS_BUILD_ID'] = @original_env
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
- it 'is false by default for local dev environments or unknown CI environments' do
24
- expect(Percy::Capybara::Client.new.enabled?).to eq(false)
25
- end
26
- it 'is true if PERCY_ENABLE=1 is set' do
27
- ENV['PERCY_ENABLE'] = '1'
28
- expect(Percy::Capybara::Client.new.enabled?).to eq(true)
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['PERCY_ENABLE'] = nil
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 not enabled' do
31
- ENV['PERCY_ENABLE'] = nil
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 not enabled' do
56
- ENV['PERCY_ENABLE'] = nil
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.capybara_client
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
- end
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.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: 2016-12-06 00:00:00.000000000 Z
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