8f39c015ea
This is the first step of a multi-step SaaS engine extraction. Looking ahead to an open source release, we need to make sure that local authentication is treated as an "official" option, and not just a hack I added for Kevin to do load testing outside our DC. So this PR gets to green, and adds a CI step in "local authentication" mode. This all probably feels a little hacky to you, Reader, but the goal of this change is to ease the next step, which will be extracting the 37id and Queenbee integrations into a proprietary "SaaS mode" engine. In service of that goal, this commit simply wraps all of the dependent code and tests with a conditional check on `config.x.local_authentication`.
41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
require "test_helper"
|
|
|
|
class Sessions::LaunchpadControllerTest < ActionDispatch::IntegrationTest
|
|
unless Rails.application.config.x.local_authentication
|
|
test "show renders when not signed in" do
|
|
get session_launchpad_path(params: { sig: "test-sig" })
|
|
|
|
assert_response :success
|
|
|
|
assert_select "form input#sig" do |node|
|
|
assert_equal node.length, 1
|
|
assert_equal node.first["value"], "test-sig"
|
|
end
|
|
end
|
|
|
|
test "create establishes a session when the sig is valid" do
|
|
user = users(:david)
|
|
|
|
put session_launchpad_path(params: { sig: user.signal_user.perishable_signature })
|
|
|
|
assert_redirected_to root_url
|
|
assert parsed_cookies.signed[:session_token]
|
|
end
|
|
|
|
test "create checks user.active?" do
|
|
user = users(:david)
|
|
user.update! active: false
|
|
|
|
put session_launchpad_path(params: { sig: user.signal_user.perishable_signature })
|
|
|
|
assert_response :unauthorized
|
|
end
|
|
|
|
test "returns 401 when the sig is invalid" do
|
|
put session_launchpad_path(params: { sig: "invalid" })
|
|
|
|
assert_response :unauthorized
|
|
end
|
|
end
|
|
end
|