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