unidom-visitor 1.13.5 → 1.13.6
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/README.md +30 -0
- data/app/models/unidom/visitor/authenticating.rb +6 -0
- data/lib/rspec/models/unidom/visitor/authenticating_spec.rb +4 -0
- data/lib/rspec/models/unidom/visitor/concerns/as_credential_shared_examples.rb +15 -0
- data/lib/rspec/models/unidom/visitor/password_spec.rb +3 -0
- data/lib/unidom/visitor/rspec_shared_examples.rb +1 -0
- data/lib/unidom/visitor/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 965c0d4b461fa86cb4de642a82d12a11ba39ce2e
|
4
|
+
data.tar.gz: 7d65ee1adaf397f5526620f4ed3459573c0ec1d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95de860e9cbecfcdda077f54472543aba0b0b27fb55f8d1ef1f4e4533ae8db56401ce15c6b3c3f5530ae0f238518ebb05d4437aaef0f0228b171e70cf16660a8
|
7
|
+
data.tar.gz: 6e59631301751832e8cdb7a0bed2441220bb9c5e7a18c95489ad788072816bdae52020070a76b4d81cb509d632c712460296d338773e79af0c1e713643c69bfc
|
data/README.md
CHANGED
@@ -160,6 +160,8 @@ end
|
|
160
160
|
|
161
161
|
## RSpec examples
|
162
162
|
|
163
|
+
### RSpec example manifest (run automatically)
|
164
|
+
|
163
165
|
```ruby
|
164
166
|
# spec/models/unidom_spec.rb
|
165
167
|
require 'unidom/visitor/models_rspec'
|
@@ -170,3 +172,31 @@ require 'unidom/visitor/types_rspec'
|
|
170
172
|
# spec/validators/unidom_spec.rb
|
171
173
|
require 'unidom/visitor/validators_rspec'
|
172
174
|
```
|
175
|
+
|
176
|
+
### RSpec shared examples (to be integrated)
|
177
|
+
|
178
|
+
```ruby
|
179
|
+
# The Unidom::Visitor::Password model already include the Unidom::Visitor::Concerns::AsCredential concern
|
180
|
+
|
181
|
+
# app/models/your_credential.rb
|
182
|
+
class YourCredential < ApplicationRecord
|
183
|
+
|
184
|
+
include Unidom::Common::Concerns::ModelExtension
|
185
|
+
include Unidom::Visitor::Concerns::AsCredential
|
186
|
+
|
187
|
+
end
|
188
|
+
|
189
|
+
# spec/support/unidom_rspec_shared_examples.rb
|
190
|
+
require 'unidom/visitor/rspec_shared_examples'
|
191
|
+
|
192
|
+
# spec/models/your_credential_spec.rb
|
193
|
+
describe YourCredential, type: :model do
|
194
|
+
|
195
|
+
model_attribtues = {
|
196
|
+
your_attribute: 'your value'
|
197
|
+
}
|
198
|
+
|
199
|
+
it_behaves_like 'Unidom::Visitor::Concerns::AsCredential', model_attribtues
|
200
|
+
|
201
|
+
end
|
202
|
+
```
|
@@ -25,7 +25,13 @@ class Unidom::Visitor::Authenticating < Unidom::Visitor::ApplicationRecord
|
|
25
25
|
# 将访问者 visitor 和信任状 credential 关联起来。关联时间是 opened_at ,缺省是当前时间。如:
|
26
26
|
# Unidom::Visitor::Authenticating.authenticate! user, with: password
|
27
27
|
def self.authenticate!(visitor, with: nil, opened_at: Time.now)
|
28
|
+
|
29
|
+
#assert_present! :visitor, visitor
|
30
|
+
#assert_present! :with, with
|
31
|
+
#assert_present! :opened_at, opened_at
|
32
|
+
|
28
33
|
credential_is(with).visitor_is(visitor).valid_at.alive.first_or_create! opened_at: opened_at
|
34
|
+
|
29
35
|
end
|
30
36
|
|
31
37
|
end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Visitor::Authenticating'
|
@@ -31,6 +31,10 @@ describe Unidom::Visitor::Authenticating, type: :model do
|
|
31
31
|
it_behaves_like 'polymorphic scope', model_attributes, :visitor_is, :visitor, [ Unidom::Visitor::User, Unidom::Visitor::Guest ]
|
32
32
|
it_behaves_like 'polymorphic scope', model_attributes, :credential_is, :credential, [ Unidom::Visitor::Password ]
|
33
33
|
|
34
|
+
#visitor = Unidom::Visitor::User.create! user_attributes
|
35
|
+
#password = Unidom::Visitor::Password.create! password_attributes
|
36
|
+
#it_behaves_like 'assert_present!', described_class, :authenticate!, [ visitor, { with: password, opened_at: Time.now } ], [ { 0 => :visitor }, :with, :opened_at ]
|
37
|
+
|
34
38
|
end
|
35
39
|
|
36
40
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
shared_examples 'Unidom::Visitor::Concerns::AsCredential' do |model_attributes|
|
2
|
+
|
3
|
+
context do
|
4
|
+
|
5
|
+
authenticating_attributes = {
|
6
|
+
visitor_id: SecureRandom.uuid,
|
7
|
+
visitor_type: 'Unidom::Visitor::Visitor::Mock',
|
8
|
+
flag_code: Unidom::Visitor::Flag::REQUIRED.code
|
9
|
+
}
|
10
|
+
|
11
|
+
it_behaves_like 'has_one', model_attributes, :authenticating, Unidom::Visitor::Authenticating, authenticating_attributes
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'rspec/models/unidom/visitor/concerns/as_credential_shared_examples'
|
2
|
+
|
1
3
|
describe Unidom::Visitor::Password, type: :model do
|
2
4
|
|
3
5
|
before :each do
|
@@ -13,6 +15,7 @@ describe Unidom::Visitor::Password, type: :model do
|
|
13
15
|
}
|
14
16
|
|
15
17
|
it_behaves_like 'Unidom::Common::Concerns::ModelExtension', model_attributes
|
18
|
+
it_behaves_like 'Unidom::Visitor::Concerns::AsCredential', model_attributes
|
16
19
|
|
17
20
|
it_behaves_like 'validates text', model_attributes, :clear_text,
|
18
21
|
length: 6..200
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'rspec/models/unidom/visitor/concerns/as_credential_shared_examples'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unidom-visitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.13.
|
4
|
+
version: 1.13.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Topbit Du
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unidom-common
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- db/migrate/20000211000000_create_unidom_users.rb
|
67
67
|
- db/migrate/20000220000000_create_unidom_passwords.rb
|
68
68
|
- lib/rspec/models/unidom/visitor/authenticating_spec.rb
|
69
|
+
- lib/rspec/models/unidom/visitor/concerns/as_credential_shared_examples.rb
|
69
70
|
- lib/rspec/models/unidom/visitor/guest_spec.rb
|
70
71
|
- lib/rspec/models/unidom/visitor/identificating_spec.rb
|
71
72
|
- lib/rspec/models/unidom/visitor/password_spec.rb
|
@@ -76,6 +77,7 @@ files:
|
|
76
77
|
- lib/unidom/visitor.rb
|
77
78
|
- lib/unidom/visitor/engine.rb
|
78
79
|
- lib/unidom/visitor/models_rspec.rb
|
80
|
+
- lib/unidom/visitor/rspec_shared_examples.rb
|
79
81
|
- lib/unidom/visitor/types_rspec.rb
|
80
82
|
- lib/unidom/visitor/validators_rspec.rb
|
81
83
|
- lib/unidom/visitor/version.rb
|