effective_test_bot 0.0.7 → 0.0.8
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 +1 -0
- data/app/helpers/effective_test_bot_helper.rb +137 -0
- data/lib/effective_test_bot/engine.rb +7 -0
- data/lib/effective_test_bot/version.rb +1 -1
- data/lib/generators/templates/minitest/test_helper.rb +42 -8
- data/lib/tasks/effective_test_bot_tasks.rake +5 -5
- data/test/test_bot/integration/devise/sign_in_test.rb +84 -0
- data/test/test_bot/integration/home_page_test.rb +28 -0
- data/test/test_bot/models/database_test.rb +24 -0
- data/test/test_bot/models/user_test.rb +20 -0
- metadata +49 -4
- data/test/features/home_page_test.rb +0 -9
- data/test/models/user_test.rb +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56a5ca16769d862bb00827de7e8a90d5237bba0e
|
4
|
+
data.tar.gz: c04f6efc857cc2d34d8e379730e4856dedbffca4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06509576f68274751a0952c467e8a7870c55d8eca12ac2aaacfaf76d150d113b091d3f12038b74aa1facedfa8567eb78eed81a5d1f7af7d97ad8762ed5b64608
|
7
|
+
data.tar.gz: ccf648a5bb36c3c78641efcc0aedfdd8a3105e08316fbea4b8405ad746641a4a5e348fb7d8c0b06d4d14451c14a5089750ff585a9d506f63b0e72360600582fd
|
data/README.md
CHANGED
@@ -0,0 +1,137 @@
|
|
1
|
+
module EffectiveTestBotHelper
|
2
|
+
def sign_up(email = Faker::Internet.email, password = Faker::Internet.password)
|
3
|
+
visit new_user_registration_path
|
4
|
+
|
5
|
+
within('form#new_user') do
|
6
|
+
fill_form(:email => email, :password => password, :password_confirmation => password)
|
7
|
+
submit_form
|
8
|
+
end
|
9
|
+
|
10
|
+
assert_equal page.status_code, 200
|
11
|
+
assert_content I18n.t('devise.registrations.signed_up')
|
12
|
+
|
13
|
+
User.find_by_email(email)
|
14
|
+
end
|
15
|
+
|
16
|
+
def sign_in(user) # Warden::Test::Helpers
|
17
|
+
if user.kind_of?(String)
|
18
|
+
login_as(User.find_by_email(user))
|
19
|
+
else
|
20
|
+
login_as(user)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# def sign_in(user)
|
25
|
+
# visit new_user_session_path
|
26
|
+
|
27
|
+
# within('form#new_user') do
|
28
|
+
# fill_form(:email => email, :password => password)
|
29
|
+
# page.save_screenshot('signin.png')
|
30
|
+
# submit_form
|
31
|
+
# page.save_screenshot('signin2.png')
|
32
|
+
# end
|
33
|
+
|
34
|
+
# assert_equal page.status_code, 200
|
35
|
+
# assert_content I18n.t('devise.sessions.signed_in')
|
36
|
+
# end
|
37
|
+
|
38
|
+
# fill_form(:email => 'somethign@soneone.com', :password => 'blahblah', 'user.last_name' => 'hlwerewr')
|
39
|
+
def fill_form(fills = {})
|
40
|
+
fills = HashWithIndifferentAccess.new(fills)
|
41
|
+
|
42
|
+
all('input,select,textarea').each do |field|
|
43
|
+
case [field.tag_name, field['type']].compact.join('_')
|
44
|
+
when 'input_text', 'input_email', 'input_password', 'input_tel', 'input_number', 'textarea'
|
45
|
+
field.set(fill_value(field, fills))
|
46
|
+
when 'input_checkbox', 'input_radio'
|
47
|
+
field.set(fill_value(field, fills)) # TODO
|
48
|
+
when 'select'
|
49
|
+
field.select(fill_value(field, fills), match: :first)
|
50
|
+
when 'input_file'
|
51
|
+
puts "Warning, input_file not yet supported"
|
52
|
+
when 'input_submit'
|
53
|
+
# Do nothing
|
54
|
+
else
|
55
|
+
raise "unsupported field type #{[field.tag_name, field['type']].compact.join('_')}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Operates on just string keys
|
61
|
+
def fill_value(field, fills = nil)
|
62
|
+
attributes = field['name'].to_s.gsub(']', '').split('[') # user[something_attributes][last_name] => ['user', 'something_attributes', 'last_name']
|
63
|
+
field_name = [field.tag_name, field['type']].compact.join('_')
|
64
|
+
fill_value = nil
|
65
|
+
|
66
|
+
if fills.present?
|
67
|
+
key = nil
|
68
|
+
attributes.reverse_each do |name|
|
69
|
+
key = (key.present? ? "#{name}.#{key}" : name)
|
70
|
+
|
71
|
+
if fills.key?(key)
|
72
|
+
fill_value = fills[key]
|
73
|
+
|
74
|
+
if field_name == 'select'
|
75
|
+
break
|
76
|
+
else
|
77
|
+
return fill_value
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
case field_name
|
84
|
+
when 'input_email'
|
85
|
+
Faker::Internet.email
|
86
|
+
when 'input_number'
|
87
|
+
Faker::Number.number(4)
|
88
|
+
when 'input_password'
|
89
|
+
Faker::Internet.password
|
90
|
+
when 'input_tel'
|
91
|
+
dig = (1..9).to_a
|
92
|
+
"#{dig.sample}#{dig.sample}#{dig.sample}-#{dig.sample}#{dig.sample}#{dig.sample}-#{dig.sample}#{dig.sample}#{dig.sample}#{dig.sample}"
|
93
|
+
when 'input_text'
|
94
|
+
classes = field['class'].to_s.split(' ')
|
95
|
+
|
96
|
+
if classes.include?('date') # Let's assume this is a date input.
|
97
|
+
Faker::Date.backward(365).strftime('%y-%m-%d')
|
98
|
+
elsif classes.include?('datetime')
|
99
|
+
Faker::Date.backward(365).strftime('%y-%m-%d %H:%m')
|
100
|
+
elsif attributes.last.to_s.include?('first_name')
|
101
|
+
Faker::Name.first_name
|
102
|
+
elsif attributes.last.to_s.include?('last_name')
|
103
|
+
Faker::Name.last_name
|
104
|
+
elsif attributes.last.to_s.include?('name')
|
105
|
+
Faker::Name.name
|
106
|
+
else
|
107
|
+
Faker::Lorem.word
|
108
|
+
end
|
109
|
+
when 'select'
|
110
|
+
if fill_value.present? # It might be a value or a label
|
111
|
+
field.all('option').each do |option|
|
112
|
+
return option.text if option.text == fill_value || option.value.to_s == fill_value.to_s
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
field.all('option').select { |option| option.value.present? }.sample.try(:text) || ''
|
117
|
+
when 'textarea'
|
118
|
+
Faker::Lorem.sentence
|
119
|
+
when 'input_checkbox'
|
120
|
+
[true, false].sample
|
121
|
+
when 'input_radio'
|
122
|
+
binding.pry
|
123
|
+
else
|
124
|
+
raise "fill_value unsupported field type: #{field['type']}"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
def submit_form(label = nil)
|
129
|
+
if label.present?
|
130
|
+
click_on(label)
|
131
|
+
#find_field(label).click
|
132
|
+
else
|
133
|
+
first(:css, "input[type='submit']").click
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
@@ -7,5 +7,12 @@ module EffectiveTestBot
|
|
7
7
|
# Set up our defaults, as per our initializer template
|
8
8
|
eval File.read("#{config.root}/lib/generators/templates/effective_test_bot.rb")
|
9
9
|
end
|
10
|
+
|
11
|
+
initializer 'effective_test_bot.test_suite' do |app|
|
12
|
+
Rails.application.config.to_prepare do
|
13
|
+
ActionDispatch::IntegrationTest.send(:include, EffectiveTestBotHelper)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
10
17
|
end
|
11
18
|
end
|
@@ -1,17 +1,51 @@
|
|
1
|
-
ENV[
|
1
|
+
ENV['RAILS_ENV'] = 'test'
|
2
2
|
require File.expand_path("../../config/environment", __FILE__)
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'rails/test_help'
|
4
|
+
require 'minitest/rails'
|
5
|
+
require 'minitest/rails/capybara'
|
6
|
+
require 'minitest/pride'
|
7
|
+
require 'minitest/reporters'
|
5
8
|
|
6
|
-
|
7
|
-
|
8
|
-
require "minitest/rails/capybara"
|
9
|
+
require 'shoulda-matchers'
|
10
|
+
require 'shoulda'
|
9
11
|
|
10
|
-
|
11
|
-
require
|
12
|
+
require 'capybara/webkit'
|
13
|
+
require 'capybara-screenshot/minitest'
|
12
14
|
|
13
15
|
class ActiveSupport::TestCase
|
14
16
|
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
|
15
17
|
fixtures :all
|
16
18
|
# Add more helper methods to be used by all tests here...
|
17
19
|
end
|
20
|
+
|
21
|
+
class ActionDispatch::IntegrationTest
|
22
|
+
# Make the Capybara DSL available in all integration tests
|
23
|
+
include Capybara::DSL
|
24
|
+
include Capybara::Assertions
|
25
|
+
include Capybara::Screenshot::MiniTestPlugin
|
26
|
+
include Warden::Test::Helpers if defined?(Devise)
|
27
|
+
end
|
28
|
+
|
29
|
+
Capybara.default_driver = :webkit
|
30
|
+
Capybara.javascript_driver = :webkit
|
31
|
+
Capybara::Screenshot.autosave_on_failure = true
|
32
|
+
Capybara::Screenshot.prune_strategy = :keep_last_run
|
33
|
+
Capybara::Screenshot.webkit_options = { width: 1024, height: 768 }
|
34
|
+
|
35
|
+
Rake::Task['db:seed'].invoke
|
36
|
+
|
37
|
+
#Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
# # Make all database transactions use the same thread
|
42
|
+
# class ActiveRecord::Base
|
43
|
+
# mattr_accessor :shared_connection
|
44
|
+
# @@shared_connection = nil
|
45
|
+
|
46
|
+
# def self.connection
|
47
|
+
# @@shared_connection || retrieve_connection
|
48
|
+
# end
|
49
|
+
# end
|
50
|
+
|
51
|
+
# ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
|
@@ -25,12 +25,12 @@ namespace :test do
|
|
25
25
|
# Rails.application.load_seed
|
26
26
|
|
27
27
|
Rails::TestTask.new('effective_test_bot' => 'test:prepare') do |t|
|
28
|
-
puts "Read effective_test_bot rake task!"
|
29
|
-
|
30
|
-
puts "#{File.dirname(__FILE__)}/../../test/**/*_test.rb"
|
31
|
-
puts FileList["#{File.dirname(__FILE__)}/../../test/**/*_test.rb"]
|
32
|
-
|
33
28
|
t.libs << 'test'
|
34
29
|
t.test_files = FileList["#{File.dirname(__FILE__)}/../../test/**/*_test.rb"]
|
35
30
|
end
|
36
31
|
end
|
32
|
+
|
33
|
+
# Rake::Task['db:fixtures:load'].enhance do
|
34
|
+
# Rake::Task['db:seed'].invoke
|
35
|
+
# end
|
36
|
+
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
if defined?(Devise) && defined?(User)
|
4
|
+
module TestBot
|
5
|
+
class SignInTest < ActionDispatch::IntegrationTest
|
6
|
+
let(:user) { users(:normal) }
|
7
|
+
|
8
|
+
test 'valid sign in' do
|
9
|
+
visit new_user_session_path
|
10
|
+
|
11
|
+
binding.pry
|
12
|
+
|
13
|
+
within('form#new_user') do
|
14
|
+
fill_in 'user_email', with: user.email
|
15
|
+
fill_in 'user_password', with: 'password'
|
16
|
+
find('input[type=submit]').click
|
17
|
+
end
|
18
|
+
|
19
|
+
assert_equal 200, page.status_code
|
20
|
+
assert_content I18n.t('devise.sessions.signed_in')
|
21
|
+
|
22
|
+
assert_equal 1, User.find_by_email(user.email).sign_in_count
|
23
|
+
end
|
24
|
+
|
25
|
+
test 'invalid sign in' do
|
26
|
+
visit new_user_session_path
|
27
|
+
|
28
|
+
binding.pry
|
29
|
+
|
30
|
+
within('form#new_user') do
|
31
|
+
fill_in 'user_email', with: user.email
|
32
|
+
fill_in 'user_password', with: 'not-correct-password'
|
33
|
+
find('input[type=submit]').click
|
34
|
+
end
|
35
|
+
|
36
|
+
assert_equal 200, page.status_code
|
37
|
+
assert_content I18n.t('devise.failure.invalid', authentication_keys: Devise.authentication_keys.join(', '))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# require 'rails_helper'
|
44
|
+
|
45
|
+
# if defined?(Devise) && defined?(User)
|
46
|
+
|
47
|
+
# feature 'Devise Sign In' do
|
48
|
+
# let(:user) do
|
49
|
+
# User.new(email: "user_#{Time.now.to_i}@example.com", password: '1234567890').tap { |u| u.save(validate: false) }
|
50
|
+
# end
|
51
|
+
|
52
|
+
# it 'allows a valid sign in' do
|
53
|
+
# visit new_user_session_path
|
54
|
+
|
55
|
+
# within('form#new_user') do
|
56
|
+
# fill_in 'user_email', with: user.email
|
57
|
+
# fill_in 'user_password', with: user.password
|
58
|
+
|
59
|
+
# find('input[type=submit]').click
|
60
|
+
# end
|
61
|
+
|
62
|
+
# expect(page.status_code).to eq 200
|
63
|
+
# expect(page).to have_content I18n.t('devise.sessions.signed_in')
|
64
|
+
|
65
|
+
# existing_user = User.find_by_email(user.email)
|
66
|
+
# expect(existing_user.sign_in_count).to eq 1
|
67
|
+
|
68
|
+
# it 'prevents sign in when provided an invalid password' do
|
69
|
+
# visit new_user_session_path
|
70
|
+
|
71
|
+
# within('form#new_user') do
|
72
|
+
# fill_in 'user_email', with: user.email
|
73
|
+
# fill_in 'user_password', with: 'invalid_password'
|
74
|
+
|
75
|
+
# find('input[type=submit]').click
|
76
|
+
# end
|
77
|
+
|
78
|
+
# expect(page.status_code).to eq 200
|
79
|
+
# expect(page).to have_content I18n.t('devise.failure.invalid', authentication_keys: Devise.authentication_keys.join(', '))
|
80
|
+
# end
|
81
|
+
|
82
|
+
# end
|
83
|
+
|
84
|
+
# end # /defined?(Devise)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module TestBot
|
4
|
+
class HomePageTest < ActionDispatch::IntegrationTest
|
5
|
+
test 'home page loads successfully' do
|
6
|
+
visit root_path
|
7
|
+
assert_equal page.status_code, 200
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
# let(:something) { User.new(:email => 'homepagetest@someone.com') }
|
12
|
+
|
13
|
+
# test "sanity" do
|
14
|
+
# visit root_path
|
15
|
+
# page.save_screenshot('something.png')
|
16
|
+
|
17
|
+
# assert_equal current_path, 'http://something.com', 'unexpected root_url'
|
18
|
+
|
19
|
+
# assert_content "Testbot home page spec!"
|
20
|
+
# end
|
21
|
+
|
22
|
+
# test "does something" do
|
23
|
+
# visit root_path
|
24
|
+
# page.must_have_content "Test bot home page spec!"
|
25
|
+
# end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module TestBot
|
4
|
+
class DatabaseTest < ActiveSupport::TestCase
|
5
|
+
test 'should be 1 user record available' do
|
6
|
+
assert_equal 1, User.count
|
7
|
+
end
|
8
|
+
|
9
|
+
test 'should be 0 user records available after delete' do
|
10
|
+
User.destroy_all
|
11
|
+
assert_equal 0, User.count
|
12
|
+
end
|
13
|
+
|
14
|
+
test 'should be 2 user records if I create one' do
|
15
|
+
assert_equal 1, User.count
|
16
|
+
assert User.create(:email => 'someone@somehting.com', :password => '123456789', :password_confirmation => '123456789')
|
17
|
+
|
18
|
+
assert_equal 2, User.count
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
if defined?(Devise) && defined?(User)
|
4
|
+
module TestBot
|
5
|
+
class UserTest < ActiveSupport::TestCase
|
6
|
+
let(:user) { User.new() }
|
7
|
+
|
8
|
+
should validate_presence_of(:email)
|
9
|
+
should validate_presence_of(:password)
|
10
|
+
should validate_presence_of(:encrypted_password)
|
11
|
+
|
12
|
+
test "user fails validation when password and confirmation mismatch" do
|
13
|
+
user.password = '123456789'
|
14
|
+
user.password_confirmation = '987654321'
|
15
|
+
|
16
|
+
refute user.valid?, 'user should be invalid with mismatched passwords'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_test_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest-reporters
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: capybara
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +150,34 @@ dependencies:
|
|
136
150
|
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: shoulda-matchers
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: faker
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
139
181
|
description: A shared library of rails model & capybara-based feature tests that should
|
140
182
|
pass in every Rails application.
|
141
183
|
email:
|
@@ -147,6 +189,7 @@ files:
|
|
147
189
|
- MIT-LICENSE
|
148
190
|
- README.md
|
149
191
|
- Rakefile
|
192
|
+
- app/helpers/effective_test_bot_helper.rb
|
150
193
|
- lib/effective_test_bot.rb
|
151
194
|
- lib/effective_test_bot/engine.rb
|
152
195
|
- lib/effective_test_bot/version.rb
|
@@ -161,8 +204,10 @@ files:
|
|
161
204
|
- spec/features/devise/sign_up_spec.rb
|
162
205
|
- spec/features/home_page_spec.rb
|
163
206
|
- spec/models/user_spec.rb
|
164
|
-
- test/
|
165
|
-
- test/
|
207
|
+
- test/test_bot/integration/devise/sign_in_test.rb
|
208
|
+
- test/test_bot/integration/home_page_test.rb
|
209
|
+
- test/test_bot/models/database_test.rb
|
210
|
+
- test/test_bot/models/user_test.rb
|
166
211
|
homepage: https://github.com/code-and-effect/effective_test_bot
|
167
212
|
licenses:
|
168
213
|
- MIT
|
data/test/models/user_test.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
if defined?(Devise) && defined?(User)
|
4
|
-
|
5
|
-
class UserTest < ActiveSupport::TestCase
|
6
|
-
#should validate_presence_of(:email)
|
7
|
-
#should validate_presence_of(:password)
|
8
|
-
#should validate_presence_of(:encrypted_password)
|
9
|
-
|
10
|
-
def user
|
11
|
-
User.new()
|
12
|
-
end
|
13
|
-
|
14
|
-
test "User fails validation when password and confirmation mismatch" do
|
15
|
-
user.password = '123456789'
|
16
|
-
user.password_confirmation = '987654321'
|
17
|
-
|
18
|
-
assert user.valid?, 'Test bot model yo!'
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
# require 'rails_helper'
|
25
|
-
|
26
|
-
# if defined?(Devise) && defined?(User)
|
27
|
-
|
28
|
-
# describe User, type: :model do
|
29
|
-
# let(:user) { User.new() }
|
30
|
-
|
31
|
-
# it { should validate_presence_of(:email) }
|
32
|
-
# it { should validate_presence_of(:password) }
|
33
|
-
# it { should validate_presence_of(:encrypted_password) }
|
34
|
-
|
35
|
-
# it 'fails validation when password and password_confirmation are different' do
|
36
|
-
# user.password = '123456789'
|
37
|
-
# user.password_confirmation = '987654321'
|
38
|
-
# expect(user.valid?).to eq false
|
39
|
-
# end
|
40
|
-
# end
|
41
|
-
|
42
|
-
# end # /defined?(Devise) && defined?(User)
|