summaryrefslogtreecommitdiff
path: root/spec/controllers/sessions_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/sessions_controller_spec.rb')
-rw-r--r--spec/controllers/sessions_controller_spec.rb21
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 }