From 64724231e944ccdbf016fe4749403deda9f66ba0 Mon Sep 17 00:00:00 2001 From: Skud Date: Wed, 5 Dec 2012 16:13:08 +1100 Subject: [PATCH] Fixed tests to work with TOS agreement --- spec/models/user_spec.rb | 46 +++++++++++++++------- spec/support/controller_macros.rb | 8 +++- spec/views/updates/index.html.haml_spec.rb | 3 +- spec/views/updates/show.html.haml_spec.rb | 8 +++- 4 files changed, 45 insertions(+), 20 deletions(-) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 19611123a..97e8e22c2 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -2,24 +2,40 @@ require 'spec_helper' describe 'user' do - before(:each) do - @user = User.new - @user.email = "example@example.com" - @user.username = "someone" - @user.password = "irrelevant" + context 'valid user' do + before(:each) do + @user = User.new + @user.email = "example@example.com" + @user.username = "someone" + @user.password = "irrelevant" + @user.tos_agreement = true + end + + it 'should save a basic user' do + @user.save.should be_true + end + + it 'should be fetchable from the database' do + @user.save + @user2 = User.find_by_email('example@example.com') + @user2.email.should == "example@example.com" + @user2.username.should == "someone" + @user2.slug.should == "someone" + @user2.encrypted_password.should_not be_nil + end end - it 'should save a basic user' do - @user.save.should be_true - end + context 'no TOS agreement' do + before(:each) do + @user = User.new + @user.email = "example@example.com" + @user.username = "someone" + @user.password = "irrelevant" + end - it 'should be fetchable from the database' do - @user.save - @user2 = User.find_by_email('example@example.com') - @user2.email.should == "example@example.com" - @user2.username.should == "someone" - @user2.slug.should == "someone" - @user2.encrypted_password.should_not be_nil + it "should refuse to save a user who hasn't agreed to the TOS" do + @user.save.should_not be_true + end end end diff --git a/spec/support/controller_macros.rb b/spec/support/controller_macros.rb index 98b604b63..a5c56a521 100644 --- a/spec/support/controller_macros.rb +++ b/spec/support/controller_macros.rb @@ -3,8 +3,12 @@ module ControllerMacros def login_user before(:each) do @request.env["devise.mapping"] = Devise.mappings[:user] - user = User.create! :username => "fred", :email => "fred@example.com", - :password => "Yabba-dabba-doo" + user = User.create!( + :username => "fred", + :email => "fred@example.com", + :password => "Yabba-dabba-doo", + :tos_agreement => true + ) user.confirm! sign_in user end diff --git a/spec/views/updates/index.html.haml_spec.rb b/spec/views/updates/index.html.haml_spec.rb index edd697730..591b53d1c 100644 --- a/spec/views/updates/index.html.haml_spec.rb +++ b/spec/views/updates/index.html.haml_spec.rb @@ -5,7 +5,8 @@ describe "updates/index" do user = User.create!( :username => "test_user", :email => "test@growstuff.org", - :password => "password" + :password => "password", + :tos_agreement => true ) assign(:updates, [ stub_model(Update, diff --git a/spec/views/updates/show.html.haml_spec.rb b/spec/views/updates/show.html.haml_spec.rb index 772cdfeb4..a35266b52 100644 --- a/spec/views/updates/show.html.haml_spec.rb +++ b/spec/views/updates/show.html.haml_spec.rb @@ -2,8 +2,12 @@ require 'spec_helper' describe "updates/show" do before(:each) do - @user = User.create! :username => "test_user", :email => "test@example.com", - :password => "password" + @user = User.create!( + :username => "test_user", + :email => "test@example.com", + :password => "password", + :tos_agreement => true + ) end it "renders the post" do