rework setup wizard into phased flow
All checks were successful
deploy / deploy (push) Successful in 3m30s
All checks were successful
deploy / deploy (push) Successful in 3m30s
phase 1 (no admin): show only the email form phase 2 (admin created, not logged in): "check your inbox" gate with "wrong email? start over" link that deletes the unconfirmed user phase 3 (logged in via magic link): show provider + stripe steps removes the confusing redirect to /users/log-in after account creation. users now stay on /setup throughout the entire setup process. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -64,6 +64,47 @@ defmodule Berrypod.AccountsTest do
|
||||
end
|
||||
end
|
||||
|
||||
describe "admin_email/0" do
|
||||
test "returns nil when no users exist" do
|
||||
assert is_nil(Accounts.admin_email())
|
||||
end
|
||||
|
||||
test "returns the admin email" do
|
||||
user = user_fixture()
|
||||
assert Accounts.admin_email() == user.email
|
||||
end
|
||||
end
|
||||
|
||||
describe "get_unconfirmed_admin/0" do
|
||||
test "returns nil when no users exist" do
|
||||
assert is_nil(Accounts.get_unconfirmed_admin())
|
||||
end
|
||||
|
||||
test "returns unconfirmed user" do
|
||||
user = unconfirmed_user_fixture()
|
||||
assert Accounts.get_unconfirmed_admin().id == user.id
|
||||
end
|
||||
|
||||
test "returns nil for confirmed user" do
|
||||
_user = user_fixture()
|
||||
assert is_nil(Accounts.get_unconfirmed_admin())
|
||||
end
|
||||
end
|
||||
|
||||
describe "delete_unconfirmed_user/1" do
|
||||
test "deletes an unconfirmed user" do
|
||||
user = unconfirmed_user_fixture()
|
||||
assert {:ok, _} = Accounts.delete_unconfirmed_user(user)
|
||||
refute Accounts.has_admin?()
|
||||
end
|
||||
|
||||
test "refuses to delete a confirmed user" do
|
||||
user = user_fixture()
|
||||
assert {:error, :already_confirmed} = Accounts.delete_unconfirmed_user(user)
|
||||
assert Accounts.has_admin?()
|
||||
end
|
||||
end
|
||||
|
||||
describe "register_user/1" do
|
||||
test "requires email to be set" do
|
||||
{:error, changeset} = Accounts.register_user(%{})
|
||||
|
||||
Reference in New Issue
Block a user