feat(auth): 注册协议 - 增加同意校验并预留影策协议正文
This commit is contained in:
41
web/test/auth-registration-agreement.test.ts
Normal file
41
web/test/auth-registration-agreement.test.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { readFileSync } from "node:fs";
|
||||
import { resolve } from "node:path";
|
||||
|
||||
describe("注册服务协议", () => {
|
||||
test("确认密码后展示协议入口,默认未同意且保留注册限流", () => {
|
||||
const source = readFileSync(resolve(import.meta.dir, "../src/pages/auth/register.tsx"), "utf8");
|
||||
const passwordIndex = source.indexOf('label="确认密码"');
|
||||
const agreementIndex = source.indexOf("Checkbox checked={agreementAccepted}");
|
||||
const submitIndex = source.indexOf('htmlType="submit"');
|
||||
|
||||
expect(passwordIndex).toBeGreaterThanOrEqual(0);
|
||||
expect(agreementIndex).toBeGreaterThan(passwordIndex);
|
||||
expect(submitIndex).toBeGreaterThan(agreementIndex);
|
||||
expect(source).toContain("[agreementAccepted, setAgreementAccepted] = useState(false)");
|
||||
expect(source).toContain("disabled={disabled || registerCountdown > 0 || !agreementAccepted}");
|
||||
expect(source).toContain("if (registering.current || registerCountdown > 0) return;");
|
||||
expect(source).toContain("disabled={!agreementAccepted}");
|
||||
});
|
||||
|
||||
test("普通注册与 Linux.do 注册传递同意状态,登录入口保留原合同", () => {
|
||||
const page = readFileSync(resolve(import.meta.dir, "../src/pages/auth/register.tsx"), "utf8");
|
||||
const login = readFileSync(resolve(import.meta.dir, "../src/pages/auth/login.tsx"), "utf8");
|
||||
const api = readFileSync(resolve(import.meta.dir, "../src/services/api/auth.ts"), "utf8");
|
||||
|
||||
expect(page).toContain("acceptedTerms: agreementAccepted");
|
||||
expect(page).toContain("agreementAccepted ? linuxDOLoginURL(next, true) : undefined");
|
||||
expect(page).toContain("请先同意影策服务协议");
|
||||
expect(login).toContain("linuxDOLoginURL(next)");
|
||||
expect(api).toContain("acceptedTerms: boolean");
|
||||
expect(api).toContain("acceptedTerms?: boolean");
|
||||
});
|
||||
|
||||
test("协议使用影策标题并提供正文承载区域", () => {
|
||||
const page = readFileSync(resolve(import.meta.dir, "../src/pages/auth/register.tsx"), "utf8");
|
||||
|
||||
expect(page).toContain('title="影策服务协议"');
|
||||
expect(page).toContain("SERVICE_AGREEMENT.map");
|
||||
expect(page).toContain("服务协议内容待补充。");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user