28 lines
904 B
Python
28 lines
904 B
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
LOGIN = ROOT / "frontend" / "src" / "app" / "login" / "page.tsx"
|
|
README = ROOT / "frontend" / "README.md"
|
|
|
|
|
|
def test_email_login_sends_and_verifies_otp() -> None:
|
|
source = LOGIN.read_text(encoding="utf-8")
|
|
readme = README.read_text(encoding="utf-8")
|
|
|
|
assert ".auth.signInWithOtp" in source
|
|
assert ".auth.verifyOtp" in source
|
|
assert 'type: "email"' in source
|
|
assert "emailRedirectTo" not in source
|
|
assert "发送验证码" in source
|
|
assert "{{ .Token }}" in readme
|
|
|
|
|
|
def test_admin_pages_are_guarded_server_side() -> None:
|
|
layout = (ROOT / "frontend" / "src" / "app" / "admin" / "layout.tsx").read_text(encoding="utf-8")
|
|
|
|
assert "createServerSupabaseClient" in layout
|
|
assert "isAdminEmail(user.email)" in layout
|
|
assert 'redirect("/login")' in layout
|
|
assert 'redirect("/")' in layout
|