完成50%

This commit is contained in:
2026-07-23 08:23:59 +08:00
parent 9b0ad62df4
commit f1edc6b533
218 changed files with 24318 additions and 5514 deletions
@@ -0,0 +1,53 @@
"use strict";
const assert = require("assert");
const fs = require("fs");
const path = require("path");
const run = async () => {
const source = fs.readFileSync(path.join(__dirname, "../data/mock.js"), "utf8");
const contractSource = fs.readFileSync(
path.join(__dirname, "../utils/genealogy-contracts.js"),
"utf8",
);
const contractUrl = `data:text/javascript;base64,${Buffer.from(contractSource).toString("base64")}`;
const moduleUrl = `data:text/javascript;base64,${Buffer.from(source.replace("../utils/genealogy-contracts.js", contractUrl)).toString("base64")}`;
const {
findNotificationFixture,
listNotificationFixtures,
notifications,
} = await import(moduleUrl);
assert.deepStrictEqual(
notifications.map((notice) => notice.id),
["review-1", "approved"],
"notification owner must use one lexical identity for list and detail",
);
for (const notice of notifications) {
assert.strictEqual(typeof notice.id, "string");
assert.strictEqual(typeof notice.unread, "boolean");
assert.strictEqual(Object.prototype.hasOwnProperty.call(notice, "read"), false);
assert.strictEqual(typeof notice.targetType, "string");
assert.strictEqual(typeof notice.targetParams?.genealogyId, "string");
assert.strictEqual(Object.prototype.hasOwnProperty.call(notice, "target"), false);
assert.strictEqual(Object.prototype.hasOwnProperty.call(notice, "detailId"), false);
}
assert.strictEqual(findNotificationFixture("missing"), null);
assert.strictEqual(findNotificationFixture("__proto__"), null);
const listSnapshot = listNotificationFixtures();
listSnapshot[0].title = "changed";
listSnapshot[0].targetParams.genealogyId = "changed";
assert.notStrictEqual(findNotificationFixture("review-1").title, "changed");
assert.notStrictEqual(
findNotificationFixture("review-1").targetParams.genealogyId,
"changed",
);
process.stdout.write("NOTIFICATION-FIXTURE-RUNTIME-SMOKE PASS\n");
};
run().catch((error) => {
process.stderr.write(`${error.stack || error.message}\n`);
process.exit(1);
});