eBooru/test/functional/sessions_controller_test.rb

58 lines
1.6 KiB
Ruby

# frozen_string_literal: true
require "test_helper"
class SessionsControllerTest < ActionDispatch::IntegrationTest
context "the sessions controller" do
context "new action" do
should "render" do
get new_session_path
assert_response :success
end
end
context "create action" do
should "create a new session" do
user = create(:user)
post session_path, params: { session: { name: user.name, password: "6cQE!wbA" } }
user.reload
assert_redirected_to(posts_path)
assert_not_nil(user.last_ip_addr)
assert_equal(user.id, session[:user_id])
end
should "not update last_ip_addr for banned accounts" do
user = create(:banned_user)
get_auth posts_path, user, params: { format: :json }
user.reload
assert_nil(user.last_ip_addr)
end
should "fail when provided an invalid password" do
user = create(:user, password: "6cQE!wbA", password_confirmation: "6cQE!wbA")
post session_path, params: { session: { name: user.name, password: "yyy" } }
assert_nil(session[:user_id])
assert_equal("Username/Password was incorrect", flash[:notice])
end
end
context "destroy action" do
should "clear the session" do
user = create(:user)
post session_path, params: { session: { name: user.name, password: "6cQE!wbA" } }
assert_not_nil(session[:user_id])
delete_auth(session_path, user)
assert_redirected_to(posts_path)
assert_nil(session[:user_id])
end
end
end
end