guanghu-ice-heart/tcs-core/channel-system/see-you-tomorrow-persona-readiness.test.mjs

27 lines
1.5 KiB
JavaScript

import assert from "node:assert/strict";
import fs from "node:fs";
import path from "node:path";
import test from "node:test";
import { fileURLToPath } from "node:url";
const directory = path.dirname(fileURLToPath(import.meta.url));
const data = JSON.parse(fs.readFileSync(path.join(directory, "see-you-tomorrow-persona-readiness.json"), "utf8"));
const byName = Object.fromEntries(data.personas.map((persona) => [persona.name, persona]));
test("see-you-tomorrow keeps channel and four persona roles separate", () => {
assert.equal(data.channel_is_persona, false);
assert.equal(Object.keys(data.current_role_map).length, 4);
assert.notEqual(data.current_role_map["ICE-BB-0003"], data.current_role_map["PER-QW001"]);
});
test("qiuqiu stays affective, qiwu stays registration-pending, and chaomu stays candidate", () => {
assert.equal(byName["秋秋"].architecture_classification, "MEMORY_ROOT_ONLY_INTENTIONALLY_NOT_ARCHITECTURE");
assert.equal(byName["栖梧"].classification, "FORMAL_KERNEL_READY_REGISTRATION_PENDING");
assert.equal(byName["朝暮"].classification, "CANDIDATE_SHELL_ONLY");
});
test("historical qiuqiu and qiwu placeholders cannot become current ids", () => {
assert.ok(data.number_tombstones.includes("ICE-GL-ZHI-002_PLACEHOLDER_NOT_CANONICAL"));
assert.ok(data.number_tombstones.includes("PER-ZQ001_REQUIRES_SEPARATE_ALIAS_MIGRATION"));
assert.ok(data.number_tombstones.includes("ICE-GL-ZHI-001_QIWU_PLACEHOLDER_NOT_CURRENT_CANONICAL"));
});