solidus_br_common 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/models/spree/address_decorator.rb +15 -0
- data/app/models/spree/user_decorator.rb +1 -2
- data/solidus_br_common.gemspec +1 -1
- data/spec/models/spree/address_spec.rb +59 -13
- data/spec/models/spree/user_spec.rb +94 -41
- 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: 59064445995a3c758e8e9d7744504aeac0127565
|
4
|
+
data.tar.gz: 4eefd345f10455fa62eb379bc41a6e768a6c2334
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af8e33de2576ebaf7b0d58e0a32e94b3f619cf450c3a33be4a39565e8ca96832f2a93e3a149df3a37e72fba10a5a4c31825bac11f98b9840abf654135f782d16
|
7
|
+
data.tar.gz: a7a805070f3659bb2e7b4b396ffe0fe80e40f7a7358850e703c183d1a150f36576ec92776b200c03f8cf8985d22982d7b2d64e115c1aad41bd571696282c6a80
|
@@ -3,4 +3,19 @@ Spree::Address.class_eval do
|
|
3
3
|
|
4
4
|
validates :number, :numericality => {greater_than: 0}, :presence => true
|
5
5
|
validates :district, length: { maximum: 150}, presence: true
|
6
|
+
|
7
|
+
before_validation :sanitize_phone
|
8
|
+
|
9
|
+
def phone_area_code
|
10
|
+
phone[0..1] if phone
|
11
|
+
end
|
12
|
+
|
13
|
+
def phone_number
|
14
|
+
phone[2..-1] if phone
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
def sanitize_phone
|
19
|
+
phone.gsub!(/[^\d]/, '')
|
20
|
+
end
|
6
21
|
end
|
@@ -3,7 +3,7 @@ require 'validates_timeliness'
|
|
3
3
|
|
4
4
|
Spree::User.class_eval do
|
5
5
|
|
6
|
-
validates_presence_of :phone
|
6
|
+
validates_presence_of :phone, :cpf
|
7
7
|
validates :date_of_birth,
|
8
8
|
presence: true,
|
9
9
|
timeliness: {
|
@@ -11,7 +11,6 @@ Spree::User.class_eval do
|
|
11
11
|
on_or_after: lambda { 100.years.ago.at_midnight },
|
12
12
|
type: :datetime
|
13
13
|
}
|
14
|
-
validates :cpf, presence: true
|
15
14
|
validates :first_name, :last_name, presence: true, length: {maximum: 100}
|
16
15
|
validates :phone, :alternative_phone, length: {maximum: 11}
|
17
16
|
validate :valid_cpf
|
data/solidus_br_common.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.platform = Gem::Platform::RUBY
|
4
4
|
s.name = 'solidus_br_common'
|
5
|
-
s.version = '1.1.
|
5
|
+
s.version = '1.1.3'
|
6
6
|
s.summary = 'Brazil commons aspects'
|
7
7
|
s.description = 'This extension has goal to provide common aspects as cities, extras address information and some seeds to Brazil'
|
8
8
|
s.required_ruby_version = '>= 2.0.0'
|
@@ -1,31 +1,77 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Spree::Address do
|
4
|
-
|
4
|
+
subject { build(:address, phone: '(11) 2334-4433') }
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
describe 'validations' do
|
7
|
+
it { is_expected.to validate_presence_of(:number) }
|
8
|
+
it { is_expected.to validate_presence_of(:district) }
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
context 'phone' do
|
11
|
+
it 'validates length of district' do
|
12
|
+
subject.district = string_with_length(151)
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
+
expect(subject).to_not be_valid
|
15
|
+
end
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
+
it 'validates number negative' do
|
18
|
+
subject.number = -1
|
17
19
|
|
18
|
-
|
20
|
+
expect(subject).to_not be_valid
|
21
|
+
end
|
22
|
+
end
|
19
23
|
end
|
20
24
|
|
21
25
|
context '#save' do
|
22
|
-
|
23
|
-
|
24
|
-
before { address.save! }
|
26
|
+
before { subject.save! }
|
25
27
|
|
26
28
|
it { is_expected.to be_persisted }
|
27
29
|
end
|
28
30
|
|
31
|
+
context '#phone_area_code' do
|
32
|
+
context 'when there is phone' do
|
33
|
+
before { subject.valid? }
|
34
|
+
|
35
|
+
it 'returns only the phone area code' do
|
36
|
+
expect(subject.phone_area_code).to eq('11')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'when there is not phone' do
|
41
|
+
before { subject.phone = nil }
|
42
|
+
|
43
|
+
it 'returns nil' do
|
44
|
+
expect(subject.phone_area_code).to be_nil
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context '#phone_number' do
|
50
|
+
context 'when there is phone' do
|
51
|
+
before { subject.valid? }
|
52
|
+
|
53
|
+
it 'returns only the phone number' do
|
54
|
+
expect(subject.phone_number).to eq('23344433')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'when there is not phone' do
|
59
|
+
before { subject.phone = nil }
|
60
|
+
|
61
|
+
it 'returns nil' do
|
62
|
+
expect(subject.phone_number).to be_nil
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'sanitize_phone' do
|
68
|
+
it 'keeps only numbers' do
|
69
|
+
subject.valid?
|
70
|
+
|
71
|
+
expect(subject.phone).to eq('1123344433')
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
29
75
|
def string_with_length(length)
|
30
76
|
(1..length).map { (65 + rand(26)).chr }.join
|
31
77
|
end
|
@@ -5,15 +5,57 @@ describe Spree::User do
|
|
5
5
|
(1..length).map { (65 + rand(26)).chr }.join
|
6
6
|
end
|
7
7
|
|
8
|
-
|
8
|
+
subject(:user) { build(:user, phone: '(11) 2334-4433') }
|
9
9
|
|
10
|
-
|
11
|
-
is_expected.to validate_presence_of(:cpf)
|
12
|
-
is_expected.to validate_presence_of(:first_name)
|
13
|
-
is_expected.to validate_presence_of(:last_name)
|
14
|
-
is_expected.to validate_presence_of(:date_of_birth)
|
15
|
-
is_expected.to validate_presence_of(:phone)
|
16
|
-
|
10
|
+
context 'validations' do
|
11
|
+
it { is_expected.to validate_presence_of(:cpf)}
|
12
|
+
it { is_expected.to validate_presence_of(:first_name)}
|
13
|
+
it { is_expected.to validate_presence_of(:last_name)}
|
14
|
+
it { is_expected.to validate_presence_of(:date_of_birth)}
|
15
|
+
it { is_expected.to validate_presence_of(:phone)}
|
16
|
+
|
17
|
+
context 'cpf' do
|
18
|
+
it 'returns valid' do
|
19
|
+
user.cpf = CPF.generate(true)
|
20
|
+
|
21
|
+
expect(user).to be_valid
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'when the length is incorrect' do
|
25
|
+
it 'returns invalid' do
|
26
|
+
user.cpf = '123456789'
|
27
|
+
|
28
|
+
expect(user).to_not be_valid
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'when the number is incorrect' do
|
33
|
+
it 'returns invalid' do
|
34
|
+
user.cpf = '12345678910'
|
35
|
+
|
36
|
+
expect(user).to_not be_valid
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'validates length of first_name' do
|
42
|
+
user.first_name = string_with_length(101)
|
43
|
+
|
44
|
+
expect(user).to_not be_valid
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'validates length of last_name' do
|
48
|
+
user.last_name = string_with_length(101)
|
49
|
+
|
50
|
+
expect(user).to_not be_valid
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'validates date_of_birth is greater or equal to 18 years' do
|
54
|
+
user.date_of_birth = 17.years.ago
|
55
|
+
|
56
|
+
expect(user).to_not be_valid
|
57
|
+
end
|
58
|
+
end
|
17
59
|
|
18
60
|
context '#full_name' do
|
19
61
|
it 'should return first_name + last_name' do
|
@@ -31,58 +73,69 @@ describe Spree::User do
|
|
31
73
|
end
|
32
74
|
end
|
33
75
|
|
34
|
-
it '
|
76
|
+
it 'responds to extra properties' do
|
35
77
|
expect(user).to respond_to :first_name, :last_name, :cpf, :date_of_birth, :phone, :alternative_phone
|
36
78
|
end
|
37
79
|
|
38
|
-
it '
|
80
|
+
it 'saves user with success' do
|
39
81
|
expect(user.save!).to be_truthy
|
40
82
|
end
|
41
83
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
cpf = CPF.new(cpf_formatted)
|
84
|
+
context '#phone_area_code' do
|
85
|
+
context 'when there is phone' do
|
86
|
+
before { subject.valid? }
|
46
87
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
88
|
+
it 'returns only the phone area code' do
|
89
|
+
expect(subject.phone_area_code).to eq('11')
|
90
|
+
end
|
91
|
+
end
|
51
92
|
|
52
|
-
|
53
|
-
|
54
|
-
user.save!
|
93
|
+
context 'when there is not phone' do
|
94
|
+
before { subject.phone = nil }
|
55
95
|
|
56
|
-
|
96
|
+
it 'returns nil' do
|
97
|
+
expect(subject.phone_area_code).to be_nil
|
98
|
+
end
|
99
|
+
end
|
57
100
|
end
|
58
101
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
user.cpf = '123456789'
|
102
|
+
context '#phone_number' do
|
103
|
+
context 'when there is phone' do
|
104
|
+
before { subject.valid? }
|
63
105
|
|
64
|
-
|
106
|
+
it 'returns only the phone number' do
|
107
|
+
expect(subject.phone_number).to eq('23344433')
|
108
|
+
end
|
109
|
+
end
|
65
110
|
|
66
|
-
|
111
|
+
context 'when there is not phone' do
|
112
|
+
before { subject.phone = nil }
|
67
113
|
|
68
|
-
|
114
|
+
it 'returns nil' do
|
115
|
+
expect(subject.phone_number).to be_nil
|
116
|
+
end
|
117
|
+
end
|
69
118
|
end
|
70
119
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
end
|
120
|
+
context 'sanitize' do
|
121
|
+
context 'phone' do
|
122
|
+
it 'keeps only numbers' do
|
123
|
+
subject.valid?
|
76
124
|
|
77
|
-
|
78
|
-
|
125
|
+
expect(subject.phone).to eq('1123344433')
|
126
|
+
end
|
127
|
+
end
|
79
128
|
|
80
|
-
|
81
|
-
|
129
|
+
context 'cpf' do
|
130
|
+
it 'keeps only number' do
|
131
|
+
cpf_formatted = CPF.generate(true)
|
132
|
+
user.cpf = cpf_formatted
|
133
|
+
cpf = CPF.new(cpf_formatted)
|
82
134
|
|
83
|
-
|
84
|
-
user.date_of_birth = 17.years.ago
|
135
|
+
user.valid?
|
85
136
|
|
86
|
-
|
137
|
+
expect(user.cpf).to eq(cpf.stripped)
|
138
|
+
end
|
139
|
+
end
|
87
140
|
end
|
88
141
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_br_common
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Diego Domingues
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|