Files
tyx_AI_xhs/tests/unit/wp1-03-notice.test.ts
T

36 lines
1.1 KiB
TypeScript

import { createHash } from "node:crypto";
import { describe, expect, it } from "vitest";
import { registrationNotice } from "../../packages/shared-contracts/src/index.js";
describe("TDD-WP1-NOTICE-001-registration-consent", () => {
it("freezes a versioned and hash-verifiable registration notice", () => {
expect(registrationNotice.version).toMatch(/^p0a-registration-notice-v[1-9][0-9]*$/);
expect(registrationNotice.effectiveAt).toMatch(/^20[0-9]{2}-[0-9]{2}-[0-9]{2}$/);
expect(registrationNotice.sections.length).toBeGreaterThanOrEqual(5);
expect(
createHash("sha256").update(registrationNotice.content, "utf8").digest("hex"),
).toBe(registrationNotice.contentSha256);
});
it.each([
"AI 网关",
"Resend",
"高德",
"DYN004",
"Windows",
"文件系统权限",
"应用层加密",
"云备份",
"LocalDataRoot",
"超级管理员",
"账号注销",
"180 天",
"不自动备份",
"不会迁移到正式系统",
])("contains the frozen topic %s", (topic) => {
expect(registrationNotice.content).toContain(topic);
});
});