Skip to content

Instantly share code, notes, and snippets.

@aalvesjr
Created April 20, 2016 16:13
Show Gist options
  • Save aalvesjr/6379c5d82c9503a42785dbf397606b06 to your computer and use it in GitHub Desktop.
Save aalvesjr/6379c5d82c9503a42785dbf397606b06 to your computer and use it in GitHub Desktop.
Testando modelo de Usuário
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