Created
April 20, 2016 16:13
-
-
Save aalvesjr/6379c5d82c9503a42785dbf397606b06 to your computer and use it in GitHub Desktop.
Testando modelo de Usuário
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'test_helper' | |
class UserTest < ActiveSupport::TestCase | |
test 'nome é obrigatório' do | |
user = User.create(name: '') | |
assert user.errors, :name | |
end | |
test 'associação com empresa é obrigatória' do | |
user = User.create | |
assert user.errors, :company_id | |
end | |
test 'password (hash e salt) são obrigatório' do | |
user = User.create() | |
assert_includes user.errors, :password_hash | |
assert_includes user.errors, :password_salt | |
end | |
test 'password (hash e salt) são preenchidos com o atributo password' do | |
user = User.create(password: 'testando pass') | |
assert_not_includes user.errors, :password_hash | |
assert_not_includes user.errors, :password_salt | |
end | |
test 'admin é obrigatório' do | |
user = User.create(admin: nil) | |
assert_includes user.errors, :admin | |
user = User.create(admin: false) # "presence: true" da erro com valores false | |
assert_not_includes user.errors, :admin | |
end | |
test 'inactive é obrigatório' do | |
user = User.create(inactive: nil) | |
assert_includes user.errors, :inactive | |
user = User.create(inactive: false) # "presence: true" da erro com valores false | |
assert_not_includes user.errors, :inactive | |
end | |
test "Deve ser default atributo inactive como false" do | |
assert_not User.new.inactive? | |
end | |
test "Deve ser default atributo admin como false" do | |
assert_not User.new.admin? | |
end | |
%w[ | |
'invali d' | |
'inv@lid' | |
'i-nvalid' | |
'in.valid' | |
'in_valid' | |
'in,valid' | |
].each do |login| | |
test "é necessario um login valido (#{login})" do | |
user = User.create(login: login) | |
assert user.errors[:login].any? | |
end | |
end | |
test 'login é unico' do | |
@user = User.create(login: 'administrador', admin: true, name: 'Teste', company_id: 1, password: '123456') | |
@user2 = User.create(login: 'administrador', admin: true, name: 'Teste', company_id: 1, password: '123456') | |
assert_includes @user2.errors, :login | |
end | |
test 'login é unico case-sensitive' do | |
@user = User.create(login: 'mandachuva', admin: true, name: 'Teste', company_id: 1, password: '123456') | |
@user2 = User.create(login: 'MANDACHUVA', admin: true, name: 'Teste', company_id: 1, password: '123456') | |
assert_includes @user2.errors, :login | |
end | |
test "Testando escopo de ativos" do | |
assert_difference 'User.active.size', -1 do | |
users(:user_one).update_attribute :inactive, true | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment