Merge pull request #1915 from basecamp/sign-up-new-users-on-sign-in

Sign up new users on sign in
This commit is contained in:
Stanko Krtalić
2025-12-04 11:32:51 +01:00
committed by GitHub
2 changed files with 14 additions and 6 deletions
+8 -3
View File
@@ -9,11 +9,16 @@ class SessionsController < ApplicationController
end
def create
if identity = Identity.find_by_email_address(email_address)
magic_link = identity.send_magic_link
serve_development_magic_link(magic_link)
identity = Identity.find_by_email_address(email_address)
magic_link = if identity
identity.send_magic_link
else
Signup.new(email_address: email_address).create_identity
end
serve_development_magic_link(magic_link)
redirect_to session_magic_link_path
end
+6 -3
View File
@@ -24,12 +24,15 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest
test "create for a new user" do
untenanted do
assert_no_difference -> { MagicLink.count } do
post session_path,
params: { email_address: "nonexistent-#{SecureRandom.hex(6)}@example.com" }
assert_difference -> { MagicLink.count }, +1 do
assert_difference -> { Identity.count }, +1 do
post session_path,
params: { email_address: "nonexistent-#{SecureRandom.hex(6)}@example.com" }
end
end
assert_redirected_to session_magic_link_path
assert MagicLink.last.for_sign_up?
end
end