main
1require 'rails_helper'
2
3RSpec.describe SessionsController, type: :controller do
4 describe "GET #new" do
5 it "returns http success" do
6 get :new
7 expect(response).to have_http_status(:success)
8 end
9
10 it "loads a new user" do
11 get :new
12 expect(assigns(:user)).to be_new_record
13 end
14 end
15
16 describe "GET #create" do
17 context "when credentials are valid" do
18 let(:user) { create(:user) }
19
20 before { get :create, username: user.username, password: 'password' }
21
22 it "creates a new session for the user" do
23 expect(session[:x]).to eql(user.id)
24 end
25
26 it "redirects the user to the dashboard" do
27 expect(response).to redirect_to(agents_path)
28 end
29 end
30 end
31
32 describe "#destroy" do
33 let(:user) { create(:user) }
34
35 before :each do
36 session[:x] = user.id
37 end
38
39 it "redirects to the login page" do
40 delete :destroy, id: 'me'
41 expect(response).to redirect_to(new_session_path)
42 end
43
44 it "resets the session" do
45 delete :destroy, id: 'me'
46 expect(session[:x]).to be_nil
47 end
48 end
49end