Skip to content

Instantly share code, notes, and snippets.

@goodside
Created February 1, 2010 00:54
Show Gist options
  • Save goodside/291346 to your computer and use it in GitHub Desktop.
Save goodside/291346 to your computer and use it in GitHub Desktop.
require 'spec_helper'
describe User do
before(:each) do
@valid_attributes = {
:name => "value for name",
:email => "[email protected]"
}
end
it "should create a new instance given valid attributes" do
User.create!(@valid_attributes)
end
it "should require a name" do
no_name_user = User.new(@valid_attributes.merge(:name => ""))
no_name_user.should_not be_valid
end
it "should require an email address" do
no_email_user = User.new(@valid_attributes.merge(:email => ""))
no_email_user.should_not be_valid
end
it "should reject names that are too long" do
long_name = "a" * 51
long_name_user = User.new(@valid_attributes.merge(:name => long_name))
long_name_user.should_not be_valid
end
it "should accept valid email addresses" do
addresses = %w[[email protected] [email protected] [email protected]]
addresses.each do |address|
valid_email_user = User.new(@valid_attributes.merge(:email => address))
valid_email_user.should be_valid
end
end
it "should reject invalid email addresses" do
addresses = %w[user@foo,com user_at_foo.org example.user@foo.]
addresses.each do |address|
invalid_email_user = User.new(@valid_attributes.merge(:email => address))
invalid_email_user.should_not be_valid
end
end
it "should reject duplicate email addresses" do
User.create!(@valid_attributes)
user_with_duplicate_email = User.new(@valid_attributes)
user_with_duplicate_email.should_not be_valid
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment