remarkable_devise 1.0.0.alpha2 → 1.0.0.alpha3
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.
- data/README.markdown +2 -0
- data/lib/remarkable/devise/matchers/be_a_token_authenticatable_matcher.rb +19 -0
- data/lib/remarkable/devise/matchers/be_a_validatable_matcher.rb +19 -0
- data/lib/remarkable/devise/version.rb +1 -1
- data/locale/en.yml +11 -0
- data/remarkable_devise.gemspec +2 -2
- data/spec/example_models.rb +2 -1
- data/spec/matchers/be_a_token_authenticatable_spec.rb +60 -0
- data/spec/matchers/be_a_validatable_spec.rb +25 -0
- data/spec/matchers_spec.rb +12 -0
- metadata +12 -6
data/README.markdown
CHANGED
@@ -19,10 +19,12 @@ Add the require after the remarkable/active_record line in your spec_heplers.rb:
|
|
19
19
|
# spec/models/user_spec.rb
|
20
20
|
describe User do
|
21
21
|
should_be_a_database_authenticatable
|
22
|
+
should_be_a_token_authenticatable
|
22
23
|
should_be_a_confirmable
|
23
24
|
should_be_a_recoverable
|
24
25
|
should_be_a_rememberable
|
25
26
|
should_be_a_trackable
|
27
|
+
should_be_a_validatable
|
26
28
|
end
|
27
29
|
|
28
30
|
## See alse
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Remarkable
|
2
|
+
module Devise
|
3
|
+
module Matchers
|
4
|
+
class BeATokenAuthenticatableMatcher < Base
|
5
|
+
assertions :included?, :has_authentication_token_column?
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def included?
|
10
|
+
subject_class.ancestors.include?(::Devise::Models::TokenAuthenticatable)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def be_a_token_authenticatable
|
15
|
+
BeATokenAuthenticatableMatcher.new
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Remarkable
|
2
|
+
module Devise
|
3
|
+
module Matchers
|
4
|
+
class BeAValidatableMatcher < Base
|
5
|
+
assertion :included?
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def included?
|
10
|
+
subject_class.ancestors.include?(::Devise::Models::Validatable)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def be_a_validatable
|
15
|
+
BeAValidatableMatcher.new
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/locale/en.yml
CHANGED
@@ -39,3 +39,14 @@ en:
|
|
39
39
|
has_last_sign_in_at_column: "%{subject_name} to have last_sign_in_at column"
|
40
40
|
has_current_sign_in_ip_column: "%{subject_name} to have current_sign_in_ip column"
|
41
41
|
has_last_sign_in_ip_column: "%{subject_name} to have last_sign_in_ip column"
|
42
|
+
|
43
|
+
be_a_validatable:
|
44
|
+
description: "be a validatable"
|
45
|
+
expectations:
|
46
|
+
included: "%{subject_name} to include Devise :validatable model"
|
47
|
+
|
48
|
+
be_a_token_authenticatable:
|
49
|
+
description: "be a token authenticatable"
|
50
|
+
expectations:
|
51
|
+
included: "%{subject_name} to include Devise :token_authenticatable model"
|
52
|
+
has_authentication_token_column: "%{subject_name} to have authentication_token column"
|
data/remarkable_devise.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors = ["Vasily Reys"]
|
9
9
|
s.email = "reys.vasily@gmail.com"
|
10
10
|
s.homepage = "http://github.com/vreys/remarkable_devise"
|
11
|
-
s.summary = "
|
12
|
-
s.description = "
|
11
|
+
s.summary = "Devise remarkable rspec matchers"
|
12
|
+
s.description = "remarkable_devise is a collection of RSpec matchers for Devise"
|
13
13
|
|
14
14
|
s.rubygems_version = "1.3.7"
|
15
15
|
s.rubyforge_project = "remarkbl-devise"
|
data/spec/example_models.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
class User < ActiveRecord::Base
|
2
|
-
devise :database_authenticatable, :confirmable, :recoverable,
|
2
|
+
devise :database_authenticatable, :confirmable, :recoverable,
|
3
|
+
:rememberable, :trackable, :validatable, :token_authenticatable
|
3
4
|
end
|
4
5
|
|
5
6
|
class FooUser < ActiveRecord::Base
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Remarkable::Devise::Matchers::BeATokenAuthenticatableMatcher do
|
4
|
+
before do
|
5
|
+
@valid_columns = ['authentication_token']
|
6
|
+
|
7
|
+
User.stubs(:column_names).returns(@valid_columns)
|
8
|
+
end
|
9
|
+
|
10
|
+
context "validate inclusion of Devise::Models::TokenAuthenticatable" do
|
11
|
+
it "should validate that model has Devise::Models::TokenAuthenticatable module included" do
|
12
|
+
subject.matches?(User).should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should validate that model has not Devise::Models::TokenAuthenticatable module included" do
|
16
|
+
subject.matches?(FooUser).should be_false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "columns validation" do
|
21
|
+
before do
|
22
|
+
subject.stubs(:included?).returns(true)
|
23
|
+
end
|
24
|
+
|
25
|
+
context "authentication_token column" do
|
26
|
+
it "should validate that model has authentication_column column" do
|
27
|
+
subject.matches?(User).should be_true
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should validate that model has no authentication_column column" do
|
31
|
+
User.stubs(:column_names).returns(@valid_columns - ['authentication_token'])
|
32
|
+
|
33
|
+
subject.matches?(User).should be_false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "description" do
|
39
|
+
specify { subject.description.should eql('be a token authenticatable') }
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "expectation message" do
|
43
|
+
context "when Devise::Models::TokenAuthenticatable is not included" do
|
44
|
+
before do
|
45
|
+
subject.matches?(FooUser)
|
46
|
+
end
|
47
|
+
|
48
|
+
specify { subject.failure_message_for_should.should match("to include Devise :token_authenticatable model") }
|
49
|
+
end
|
50
|
+
|
51
|
+
context "when model has no authentication_token column" do
|
52
|
+
before do
|
53
|
+
subject.stubs(:has_authentication_token_column?).returns(false)
|
54
|
+
subject.matches?(User)
|
55
|
+
end
|
56
|
+
|
57
|
+
specify { subject.failure_message_for_should.should match("to have authentication_token column") }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Remarkable::Devise::Matchers::BeAValidatableMatcher do
|
4
|
+
context "validate inclusion of Devise::Models::Validatable" do
|
5
|
+
it "should validate that model has Devise::Models::Validatable module included" do
|
6
|
+
subject.matches?(User).should be_true
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should validate that model has no Devise::Models::Validatable module included" do
|
10
|
+
subject.matches?(FooUser).should be_false
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "description" do
|
15
|
+
specify { subject.description.should eql('be a validatable') }
|
16
|
+
end
|
17
|
+
|
18
|
+
context "expectation message" do
|
19
|
+
before do
|
20
|
+
subject.matches?(FooUser)
|
21
|
+
end
|
22
|
+
|
23
|
+
specify { subject.failure_message_for_should.should match('to include Devise :validatable model')}
|
24
|
+
end
|
25
|
+
end
|
data/spec/matchers_spec.rb
CHANGED
@@ -30,4 +30,16 @@ describe Remarkable::Devise::Matchers do
|
|
30
30
|
be_a_trackable.should be_an_instance_of(Remarkable::Devise::Matchers::BeATrackableMatcher)
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
describe "#be_a_validatable" do
|
35
|
+
it "should return Remarkable::Devise::Matchers::BeAValidatableMatcher" do
|
36
|
+
be_a_validatable.should be_an_instance_of(Remarkable::Devise::Matchers::BeAValidatableMatcher)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#be_a_token_authenticatable" do
|
41
|
+
it "should return Remarkable::Devise::Matchers::BeATokenAuthenticatableMatcher" do
|
42
|
+
be_a_token_authenticatable.should be_an_instance_of(Remarkable::Devise::Matchers::BeATokenAuthenticatableMatcher)
|
43
|
+
end
|
44
|
+
end
|
33
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: remarkable_devise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -1710980575
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.0.0.
|
10
|
+
- alpha3
|
11
|
+
version: 1.0.0.alpha3
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Vasily Reys
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-12-
|
19
|
+
date: 2010-12-06 00:00:00 +06:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
version: "0"
|
115
115
|
type: :development
|
116
116
|
version_requirements: *id006
|
117
|
-
description:
|
117
|
+
description: remarkable_devise is a collection of RSpec matchers for Devise
|
118
118
|
email: reys.vasily@gmail.com
|
119
119
|
executables: []
|
120
120
|
|
@@ -135,7 +135,9 @@ files:
|
|
135
135
|
- lib/remarkable/devise/matchers/be_a_database_authenticatable_matcher.rb
|
136
136
|
- lib/remarkable/devise/matchers/be_a_recoverable_matcher.rb
|
137
137
|
- lib/remarkable/devise/matchers/be_a_rememberable_matcher.rb
|
138
|
+
- lib/remarkable/devise/matchers/be_a_token_authenticatable_matcher.rb
|
138
139
|
- lib/remarkable/devise/matchers/be_a_trackable_matcher.rb
|
140
|
+
- lib/remarkable/devise/matchers/be_a_validatable_matcher.rb
|
139
141
|
- lib/remarkable/devise/version.rb
|
140
142
|
- locale/en.yml
|
141
143
|
- remarkable_devise.gemspec
|
@@ -144,7 +146,9 @@ files:
|
|
144
146
|
- spec/matchers/be_a_database_authenticatable_spec.rb
|
145
147
|
- spec/matchers/be_a_recoverable_spec.rb
|
146
148
|
- spec/matchers/be_a_rememberable_spec.rb
|
149
|
+
- spec/matchers/be_a_token_authenticatable_spec.rb
|
147
150
|
- spec/matchers/be_a_trackable_spec.rb
|
151
|
+
- spec/matchers/be_a_validatable_spec.rb
|
148
152
|
- spec/matchers_spec.rb
|
149
153
|
- spec/spec_helper.rb
|
150
154
|
has_rdoc: true
|
@@ -182,13 +186,15 @@ rubyforge_project: remarkbl-devise
|
|
182
186
|
rubygems_version: 1.3.7
|
183
187
|
signing_key:
|
184
188
|
specification_version: 3
|
185
|
-
summary:
|
189
|
+
summary: Devise remarkable rspec matchers
|
186
190
|
test_files:
|
187
191
|
- spec/example_models.rb
|
188
192
|
- spec/matchers/be_a_confirmable_spec.rb
|
189
193
|
- spec/matchers/be_a_database_authenticatable_spec.rb
|
190
194
|
- spec/matchers/be_a_recoverable_spec.rb
|
191
195
|
- spec/matchers/be_a_rememberable_spec.rb
|
196
|
+
- spec/matchers/be_a_token_authenticatable_spec.rb
|
192
197
|
- spec/matchers/be_a_trackable_spec.rb
|
198
|
+
- spec/matchers/be_a_validatable_spec.rb
|
193
199
|
- spec/matchers_spec.rb
|
194
200
|
- spec/spec_helper.rb
|