percy-client 1.10.0 → 1.10.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 +11 -2
- data/Guardfile +2 -2
- data/lib/percy/client/resources.rb +15 -0
- data/lib/percy/client/version.rb +1 -1
- data/percy-client.gemspec +3 -2
- data/spec/lib/percy/client/resources_spec.rb +83 -35
- 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: 8c6c5d15e4d9aad29d9ec9f1ff5bf4f551f10caa
|
4
|
+
data.tar.gz: a177a1b2e91a815ea115b08c28961cc5139cd7f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 730613e8ca357612b2caa17b1f09837667d6207d964576f42cd8713969436a113395b9c205c030b8619055f0709ea74cfbee1670ddfbe0f803b00e0ae708c1b1
|
7
|
+
data.tar.gz: aeb0147032f403c4874962b56d7f1782e19cfcc51348bab2e8013e567abc204f94d4eceaf9ebb6612f00a3d2256a8a147efa83eba767a36f7af1502b2f97a4a8
|
data/.rubocop.yml
CHANGED
@@ -4,6 +4,9 @@ AllCops:
|
|
4
4
|
Include:
|
5
5
|
- Rakefile
|
6
6
|
- lib/**/*.rake
|
7
|
+
Exclude:
|
8
|
+
- 'vendor/**/*'
|
9
|
+
- 'percy-client.gemspec'
|
7
10
|
|
8
11
|
Lint/EndAlignment:
|
9
12
|
EnforcedStyleAlignWith: variable
|
@@ -36,6 +39,12 @@ Style/MultilineOperationIndentation:
|
|
36
39
|
Style/NumericLiterals:
|
37
40
|
Enabled: false
|
38
41
|
|
42
|
+
Style/FileName:
|
43
|
+
Enabled: false
|
44
|
+
|
45
|
+
Style/SymbolArray:
|
46
|
+
Enabled: false
|
47
|
+
|
39
48
|
Style/NumericPredicate:
|
40
49
|
EnforcedStyle: comparison
|
41
50
|
|
@@ -58,8 +67,8 @@ Style/TrailingCommaInLiteral:
|
|
58
67
|
RSpec/MessageSpies:
|
59
68
|
EnforcedStyle: receive
|
60
69
|
|
61
|
-
|
62
|
-
|
70
|
+
RSpec/NotToNot:
|
71
|
+
Enabled: false
|
63
72
|
|
64
73
|
|
65
74
|
# Will be able to do this in >= v1.11
|
data/Guardfile
CHANGED
@@ -43,6 +43,21 @@ module Percy
|
|
43
43
|
}
|
44
44
|
end
|
45
45
|
|
46
|
+
def ==(other)
|
47
|
+
other.is_a?(self.class) &&
|
48
|
+
other.sha == sha &&
|
49
|
+
other.resource_url == resource_url &&
|
50
|
+
other.mimetype == mimetype
|
51
|
+
end
|
52
|
+
|
53
|
+
def hash
|
54
|
+
[sha, resource_url, mimetype].hash
|
55
|
+
end
|
56
|
+
|
57
|
+
def eql?(other)
|
58
|
+
self == other && hash == other.hash
|
59
|
+
end
|
60
|
+
|
46
61
|
def inspect
|
47
62
|
content_msg = content.nil? ? '' : "content.length: #{content.length}"
|
48
63
|
"<Resource #{sha} #{resource_url} is_root:#{!!is_root} #{mimetype} #{content_msg}>"
|
data/lib/percy/client/version.rb
CHANGED
data/percy-client.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'percy/client/version'
|
@@ -8,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
8
9
|
spec.version = Percy::Client::VERSION
|
9
10
|
spec.authors = ['Perceptual Inc.']
|
10
11
|
spec.email = ['team@percy.io']
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
12
|
+
spec.summary = 'Percy::Client'
|
13
|
+
spec.description = ''
|
13
14
|
spec.homepage = ''
|
14
15
|
spec.license = 'MIT'
|
15
16
|
|
@@ -1,44 +1,10 @@
|
|
1
1
|
require 'digest'
|
2
2
|
|
3
|
+
# rubocop:disable RSpec/MultipleDescribes
|
3
4
|
RSpec.describe Percy::Client::Resources, :vcr do
|
4
5
|
let(:content) { "hello world! #{described_class.name}" }
|
5
6
|
let(:sha) { Digest::SHA256.hexdigest(content) }
|
6
7
|
|
7
|
-
describe 'Percy::Client::Resource' do
|
8
|
-
it 'can be initialized with minimal data' do
|
9
|
-
resource = Percy::Client::Resource.new('/foo.html', sha: sha)
|
10
|
-
expect(resource.serialize).to eq(
|
11
|
-
'type' => 'resources',
|
12
|
-
'id' => sha,
|
13
|
-
'attributes' => {
|
14
|
-
'resource-url' => '/foo.html',
|
15
|
-
'mimetype' => nil,
|
16
|
-
'is-root' => nil,
|
17
|
-
},
|
18
|
-
)
|
19
|
-
end
|
20
|
-
it 'can be initialized with all data' do
|
21
|
-
resource = Percy::Client::Resource.new(
|
22
|
-
'/foo new.html',
|
23
|
-
sha: sha,
|
24
|
-
is_root: true,
|
25
|
-
mimetype: 'text/html',
|
26
|
-
content: content,
|
27
|
-
)
|
28
|
-
expect(resource.serialize).to eq(
|
29
|
-
'type' => 'resources',
|
30
|
-
'id' => sha,
|
31
|
-
'attributes' => {
|
32
|
-
'resource-url' => '/foo%20new.html',
|
33
|
-
'mimetype' => 'text/html',
|
34
|
-
'is-root' => true,
|
35
|
-
},
|
36
|
-
)
|
37
|
-
end
|
38
|
-
it 'errors if not given sha or content' do
|
39
|
-
expect { Percy::Client::Resource.new('/foo.html') }.to raise_error(ArgumentError)
|
40
|
-
end
|
41
|
-
end
|
42
8
|
describe '#upload_resource' do
|
43
9
|
it 'returns true with success' do
|
44
10
|
build = Percy.create_build('fotinakis/percy-examples')
|
@@ -51,3 +17,85 @@ RSpec.describe Percy::Client::Resources, :vcr do
|
|
51
17
|
end
|
52
18
|
end
|
53
19
|
end
|
20
|
+
|
21
|
+
RSpec.describe Percy::Client::Resource do
|
22
|
+
let(:content) { "hello world! #{described_class.name}" }
|
23
|
+
let(:sha) { Digest::SHA256.hexdigest(content) }
|
24
|
+
|
25
|
+
it 'can be initialized with minimal data' do
|
26
|
+
resource = described_class.new('/foo.html', sha: sha)
|
27
|
+
expect(resource.serialize).to eq(
|
28
|
+
'type' => 'resources',
|
29
|
+
'id' => sha,
|
30
|
+
'attributes' => {
|
31
|
+
'resource-url' => '/foo.html',
|
32
|
+
'mimetype' => nil,
|
33
|
+
'is-root' => nil,
|
34
|
+
},
|
35
|
+
)
|
36
|
+
end
|
37
|
+
it 'can be initialized with all data' do
|
38
|
+
resource = described_class.new(
|
39
|
+
'/foo new.html',
|
40
|
+
sha: sha,
|
41
|
+
is_root: true,
|
42
|
+
mimetype: 'text/html',
|
43
|
+
content: content,
|
44
|
+
)
|
45
|
+
expect(resource.serialize).to eq(
|
46
|
+
'type' => 'resources',
|
47
|
+
'id' => sha,
|
48
|
+
'attributes' => {
|
49
|
+
'resource-url' => '/foo%20new.html',
|
50
|
+
'mimetype' => 'text/html',
|
51
|
+
'is-root' => true,
|
52
|
+
},
|
53
|
+
)
|
54
|
+
end
|
55
|
+
it 'errors if not given sha or content' do
|
56
|
+
expect { described_class.new('/foo.html') }.to raise_error(ArgumentError)
|
57
|
+
end
|
58
|
+
|
59
|
+
describe 'object equality' do
|
60
|
+
subject(:resource) { described_class.new('/some-content', sha: sha, mimetype: mimetype) }
|
61
|
+
|
62
|
+
let(:sha) { '123456' }
|
63
|
+
let(:mimetype) { 'text/plain' }
|
64
|
+
|
65
|
+
describe 'two resources with same properties' do
|
66
|
+
let(:other) { described_class.new('/some-content', sha: sha, mimetype: mimetype) }
|
67
|
+
|
68
|
+
it { is_expected.to eq(other) }
|
69
|
+
it { is_expected.to eql(other) }
|
70
|
+
it { expect(resource.hash).to eq(other.hash) }
|
71
|
+
it('makes their array unique') { expect([resource, other].uniq).to eq([resource]) }
|
72
|
+
end
|
73
|
+
|
74
|
+
describe 'two resources with different sha' do
|
75
|
+
let(:other) { described_class.new('/some-content', sha: sha.reverse, mimetype: mimetype) }
|
76
|
+
|
77
|
+
it { is_expected.not_to eq(other) }
|
78
|
+
it { is_expected.not_to eql(other) }
|
79
|
+
it { expect(resource.hash).not_to eq(other.hash) }
|
80
|
+
it('makes array unique') { expect([resource, other].uniq).to eq([resource, other]) }
|
81
|
+
end
|
82
|
+
|
83
|
+
describe 'two resources with different url' do
|
84
|
+
let(:other) { described_class.new('/different-content', sha: sha, mimetype: mimetype) }
|
85
|
+
|
86
|
+
it { is_expected.not_to eq(other) }
|
87
|
+
it { is_expected.not_to eql(other) }
|
88
|
+
it { expect(resource.hash).not_to eq(other.hash) }
|
89
|
+
it('makes array unique') { expect([resource, other].uniq).to eq([resource, other]) }
|
90
|
+
end
|
91
|
+
|
92
|
+
describe 'two resources with different mimetype' do
|
93
|
+
let(:other) { described_class.new('/some-content', sha: sha, mimetype: 'text/css') }
|
94
|
+
|
95
|
+
it { is_expected.not_to eq(other) }
|
96
|
+
it { is_expected.not_to eql(other) }
|
97
|
+
it { expect(resource.hash).not_to eq(other.hash) }
|
98
|
+
it('makes array unique') { expect([resource, other].uniq).to eq([resource, other]) }
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: percy-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.
|
4
|
+
version: 1.10.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-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
188
|
version: '0'
|
189
189
|
requirements: []
|
190
190
|
rubyforge_project:
|
191
|
-
rubygems_version: 2.
|
191
|
+
rubygems_version: 2.6.7
|
192
192
|
signing_key:
|
193
193
|
specification_version: 4
|
194
194
|
summary: Percy::Client
|