model spec

This commit is contained in:
uu59 2014-05-13 16:23:37 +09:00
parent e19ce05525
commit 1f8dd17c43
5 changed files with 69 additions and 1 deletions

View File

@ -8,4 +8,5 @@ group :development, :test do
gem "rake"
gem "pry"
gem "rspec-rails", "~> 2.0"
gem "factory_girl_rails"
end

View File

@ -61,6 +61,11 @@ GEM
unf (>= 0.0.5, < 1.0.0)
erubis (2.7.0)
execjs (2.0.2)
factory_girl (4.4.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.4.1)
factory_girl (~> 4.4.0)
railties (>= 3.0.0)
fluentd (0.10.46)
cool.io (>= 1.1.1, < 2.0.0, != 1.2.0)
http_parser.rb (>= 0.5.1, < 0.7.0)
@ -188,6 +193,7 @@ PLATFORMS
ruby
DEPENDENCIES
factory_girl_rails
fluentd-ui!
pry
rake

View File

@ -1,6 +1,9 @@
class User < ActiveRecord::Base
has_secure_password
validates :name, uniqueness: true, presence: true
validates :remember_token, uniqueness: true, allow_nil: true
def generate_remember_token
begin
token = SecureRandom.base64(32)

7
spec/factories/user.rb Normal file
View File

@ -0,0 +1,7 @@
FactoryGirl.define do
factory :user do
sequence(:name) {|n| "user#{n}" }
password "passw0rd"
password_confirmation "passw0rd"
end
end

View File

@ -1,5 +1,56 @@
require 'spec_helper'
describe User do
pending "add some examples to (or delete) #{__FILE__}"
let(:user) { FactoryGirl.build(:user) }
describe "#generate_remember_token" do
subject { user.generate_remember_token }
it { User.find_by(remember_token: subject).should be_nil }
end
describe "#valid?" do
it { user.should be_valid }
describe "name" do
it "nil is invalid" do
user.name = nil
user.should_not be_valid
end
it "taken name is invalid" do
another_user = FactoryGirl.create(:user)
user.name = another_user.name
user.should_not be_valid
end
end
describe "password" do
it "password != password_confirmation is invalid" do
user.password = "a"
user.password_confirmation = "b"
user.should_not be_valid
end
end
describe "remember_token" do
let(:token) { "xxx" }
it "nil is valid" do
user.remember_token = nil
user.should be_valid
end
it "nil and taken is valid " do
FactoryGirl.create(:user, remember_token: nil)
user.remember_token = nil
user.should be_valid
end
it "taken token is invalid" do
FactoryGirl.create(:user, remember_token: token)
user.remember_token = token
user.should_not be_valid
end
end
end
end