percy-capybara 0.1.2 → 0.1.3

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: a138585a2c8cb1eda5cad2d69fe5462824f99718
4
- data.tar.gz: 454f5f69e67bee8a859d8bc678c4c66e2d3b9376
3
+ metadata.gz: e3dce95f1470e064a58efea7de8c8e324ce26cd2
4
+ data.tar.gz: 25cc759cc54c27a9519b42bf4e582e86d1879f85
5
5
  SHA512:
6
- metadata.gz: a7a87b43488b3c31826f6162c547aa926c2ee097e2650e10186ef53ed480d04d73c2c39bbd48502f86172c179529ec3dcd8d4ea5efc19d85570cc4159e2882bd
7
- data.tar.gz: 9976e107091eb0476bceccdbf80039e360287dd3d375a78caf3a8a2eba31068fa5c69bb5bbe99195284907de7dae0897fc289c7ece78d261aea4a2015974e487
6
+ metadata.gz: fcc5c0a05c238b73155485b9bd3917755f647bdfc0945f502e156b65f4495c18d35678ba7eb158bc122a764173e924bd77eb371930cb594a70e3cd39bc32ba13
7
+ data.tar.gz: 6ea4f3b98cade21c21b6fa20500db0d974679b484fdf881171787660efd07122dee0ba0168f56240802a6dbcf3db67821fa2a9d4fd35c0751e3aad13f61541b8
@@ -3,6 +3,7 @@ module Percy
3
3
  class Client
4
4
  module Builds
5
5
  def current_build
6
+ return if !enabled? # Silently skip if the client is disabled.
6
7
  @current_build ||= client.create_build(client.config.repo)
7
8
  end
8
9
  alias_method :initialize_build, :current_build
@@ -12,6 +13,7 @@ module Percy
12
13
  end
13
14
 
14
15
  def finalize_current_build
16
+ return if !enabled? # Silently skip if the client is disabled.
15
17
  if !build_initialized?
16
18
  raise Percy::Capybara::Client::BuildNotInitializedError.new(
17
19
  'Failed to finalize build because no build has been initialized.')
@@ -15,6 +15,7 @@ module Percy
15
15
  # builds. By default this is the URL of the page, but can be customized if the URL does not
16
16
  # entirely identify the current state.
17
17
  def snapshot(page, options = {})
18
+ return if !enabled? # Silently skip if the client is disabled.
18
19
  name = options[:name]
19
20
  current_build_id = current_build['data']['id']
20
21
  resource_map = _find_resources(page)
@@ -15,6 +15,12 @@ module Percy
15
15
 
16
16
  def initialize(options = {})
17
17
  @client = options[:client] || Percy.client
18
+ @enabled = options[:enabled]
19
+ end
20
+
21
+ def enabled?
22
+ # Only enable if in supported CI environment or local dev with PERCY_ENABLE=1.
23
+ @enabled ||= !Percy::Client::Environment.current_ci.nil? || ENV['PERCY_ENABLE'] == '1'
18
24
  end
19
25
  end
20
26
  end
@@ -1,5 +1,5 @@
1
1
  module Percy
2
2
  module Capybara
3
- VERSION = '0.1.2'
3
+ VERSION = '0.1.3'
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  RSpec.describe Percy::Capybara::Client::Builds do
2
- let(:capybara_client) { Percy::Capybara::Client.new }
2
+ let(:capybara_client) { Percy::Capybara::Client.new(enabled: true) }
3
3
 
4
4
  describe '#current_build' do
5
5
  it 'returns the current build or creates a new one' do
@@ -2,7 +2,7 @@ require 'json'
2
2
  require 'digest'
3
3
 
4
4
  RSpec.describe Percy::Capybara::Client::Snapshots, type: :feature do
5
- let(:capybara_client) { Percy::Capybara::Client.new }
5
+ let(:capybara_client) { Percy::Capybara::Client.new(enabled: true) }
6
6
 
7
7
  # Start a temp webserver that serves the testdata directory.
8
8
  # You can test this server manually by running:
@@ -0,0 +1,32 @@
1
+ RSpec.describe Percy::Capybara::Client do
2
+ it 'accepts and memoizes a client arg' do
3
+ client = Percy::Client.new
4
+ capybara_client = Percy::Capybara::Client.new(client: client)
5
+ expect(capybara_client.client).to eq(client)
6
+ end
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'
20
+ expect(Percy::Capybara::Client.new.enabled?).to be_truthy
21
+ end
22
+ end
23
+ it 'is false by default for local dev environments or unknown CI environments' do
24
+ expect(Percy::Capybara::Client.new.enabled?).to be_falsey
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 be_truthy
29
+ end
30
+ end
31
+ end
32
+
@@ -1,5 +1,15 @@
1
1
  RSpec.describe Percy::Capybara do
2
- before(:each) { Percy::Capybara.reset }
2
+ before(:each) do
3
+ Percy::Capybara.reset
4
+ @original_env = ENV['TRAVIS_BUILD_ID']
5
+ ENV['PERCY_ENABLE'] = '1'
6
+ ENV['TRAVIS_BUILD_ID'] = nil
7
+ end
8
+ after(:each) do
9
+ ENV['TRAVIS_BUILD_ID'] = @original_env
10
+ ENV['PERCY_ENABLE'] = nil
11
+ end
12
+
3
13
 
4
14
  describe '#capybara_client' do
5
15
  it 'returns the current client or creates a new one' do
@@ -18,8 +28,13 @@ RSpec.describe Percy::Capybara do
18
28
  expect(capybara_client).to receive(:snapshot).with(mock_page, name: '/foo.html (modal)').once
19
29
  Percy::Capybara.snapshot(mock_page, name: '/foo.html (modal)')
20
30
  end
31
+ it 'silently skips if not enabled' do
32
+ ENV['PERCY_ENABLE'] = nil
33
+ mock_page = double('page')
34
+ Percy::Capybara.snapshot(mock_page)
35
+ end
21
36
  end
22
- describe '#snapshot' do
37
+ describe '#initialize_build' do
23
38
  it 'delegates to Percy::Capybara::Client' do
24
39
  capybara_client = Percy::Capybara.capybara_client
25
40
  expect(capybara_client).to receive(:initialize_build).once
@@ -38,6 +53,14 @@ RSpec.describe Percy::Capybara do
38
53
  expect(capybara_client).to receive(:finalize_current_build).once
39
54
  Percy::Capybara.finalize_build
40
55
  end
56
+ it 'silently skips if not enabled' do
57
+ ENV['PERCY_ENABLE'] = nil
58
+ capybara_client = Percy::Capybara.capybara_client
59
+ expect(capybara_client.client).to_not receive(:create_build)
60
+ Percy::Capybara.initialize_build
61
+ expect(capybara_client).to_not receive(:finalize_current_build)
62
+ Percy::Capybara.finalize_build
63
+ end
41
64
  end
42
65
  describe '#reset' do
43
66
  it 'clears the current capybara_client' do
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: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Perceptual Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-25 00:00:00.000000000 Z
11
+ date: 2015-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: percy-client
@@ -179,6 +179,7 @@ files:
179
179
  - spec/lib/percy/capybara/client/testdata/index.html
180
180
  - spec/lib/percy/capybara/client/testdata/test-css.html
181
181
  - spec/lib/percy/capybara/client/testdata/test-images.html
182
+ - spec/lib/percy/capybara/client_spec.rb
182
183
  - spec/lib/percy/capybara/httpfetcher_spec.rb
183
184
  - spec/lib/percy/capybara_spec.rb
184
185
  - spec/spec_helper.rb
@@ -228,8 +229,8 @@ test_files:
228
229
  - spec/lib/percy/capybara/client/testdata/index.html
229
230
  - spec/lib/percy/capybara/client/testdata/test-css.html
230
231
  - spec/lib/percy/capybara/client/testdata/test-images.html
232
+ - spec/lib/percy/capybara/client_spec.rb
231
233
  - spec/lib/percy/capybara/httpfetcher_spec.rb
232
234
  - spec/lib/percy/capybara_spec.rb
233
235
  - spec/spec_helper.rb
234
236
  - spec/support/test_helpers.rb
235
- has_rdoc: