完成50%
This commit is contained in:
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user