diff options
Diffstat (limited to 'spec/controllers/sessions_controller_spec.rb')
| -rw-r--r-- | spec/controllers/sessions_controller_spec.rb | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 9100777..b82b8a1 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -9,13 +9,7 @@ describe SessionsController do end describe "#create" do - let(:user) { double(id: 1, authenticate: false) } - - before :each do - allow(User).to receive(:find_by).with(email: 'email@example.com').and_return(user) - allow(User).to receive(:find_by).with(email: 'unknown@example.com').and_return(nil) - allow(user).to receive(:authenticate).with('password').and_return(true) - end + let!(:user) { create(:user, password: 'password') } context "when the email and password is incorrect" do it "displays an error" do @@ -34,21 +28,12 @@ describe SessionsController do end context "when the email and password is correct" do - before :each do - post :create, email: 'email@example.com', password: 'password' - end + before { post :create, email: user.email, password: 'password' } it "redirects to the dashboard" do expect(response).to redirect_to(root_path(anchor: '')) end - it "creates a new session" do - expect(session[:user_session_id]).to_not be_nil - last_session = Session.last - expect(session[:user_session_id]).to eql(last_session.id) - expect(last_session.ip_address).to eql("0.0.0.0") - end - it 'assigns a session key to a secure cookie' do expect(cookies.signed[:raphael]).to eql(Session.last.id) end @@ -56,7 +41,7 @@ describe SessionsController do end context "#destroy" do - let(:user_session) { Session.create! } + let(:user_session) { create(:session) } it "removes the current session" do delete :destroy, { id: 'mine' }, { user_session_id: user_session.id } |
