Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module UserSpecHelper
- def valid_user_hash
- {:username => "Blinchik", :password => "1234", :password_confirmation => "1234"}
- end
- end
- describe Users do
- include UserSpecHelper
- before(:each) do
- @user = mock(User, valid_user_hash)
- dispatch_to(Users, :index)
- end
- # TODO: Use mocking/stubbing.
- describe "in general" do
- before(:each) do
- User.stub!(:new).and_return(@user)
- @user.stub!(:save).and_return(true)
- end
- it "requires username on signup" do
- lambda do
- controller = create_user(:username => nil)
- controller.assigns(:user).errors.on(:username).should_not be_nil
- controller.should be_successful
- end.should_not change(User, :count)
- end
- it "requires password on signup" do
- lambda do
- controller = create_user(:password => nil)
- controller.assigns(:user).errors.on(:password).should_not be_nil
- controller.should be_successful
- end.should_not change(User, :count)
- end
- it "requires password confirmation on signup" do
- lambda do
- controller = create_user(:password_confirmation => nil)
- controller.assigns(:user).errors.on(:password_confirmation).should_not be_nil
- controller.should be_successful
- end.should_not change(User, :count)
- end
- def create_user(options = {})
- dispatch_to(Users, :create, :user => valid_user_hash.merge(options))
- end
- end
- describe "#create with valid user" do
- before(:each) do
- User.stub!(:new).and_return(@user)
- @user.stub!(:save).and_return(true)
- @params = {:user => valid_user_hash}
- end
- it "should save the user" do
- @user.should_receive(:save).and_return(true)
- dispatch_to(Users, :create, @params)
- end
- end
- end
Add Comment
Please, Sign In to add comment