feat: add display kiosk host
This commit is contained in:
@@ -59,7 +59,7 @@ async function registerAndCaptureRoutes(): Promise<{
|
||||
}
|
||||
|
||||
describe("module template", () => {
|
||||
it("ships a valid backend-only manifest", async () => {
|
||||
it("ships a valid product manifest with independently declared primary and display UI", async () => {
|
||||
const manifestUrl = new URL("../ekklesia.module.json", import.meta.url);
|
||||
const manifestInput = JSON.parse(await readFile(manifestUrl, "utf8")) as unknown;
|
||||
const manifest = parseModuleManifest(manifestInput);
|
||||
@@ -72,6 +72,11 @@ describe("module template", () => {
|
||||
baseline: "restricted",
|
||||
description: "Read example records.",
|
||||
},
|
||||
{
|
||||
id: "example.display.view",
|
||||
baseline: "restricted",
|
||||
description: "View the example full-screen display.",
|
||||
},
|
||||
]);
|
||||
// The template declares **no** logical storage bucket, deliberately. Since ADR 0030 a declared
|
||||
// bucket is a real requirement: a module that declares one is blocked on an installation with no
|
||||
@@ -80,6 +85,11 @@ describe("module template", () => {
|
||||
expect(manifest.storage.buckets).toEqual([]);
|
||||
expect(manifest.entrypoints.schema).toBe("./dist/schema/index.js");
|
||||
expect(manifest.entrypoints.migrations).toBe("./drizzle");
|
||||
expect(manifest.entrypoints.ui).toBe("./dist/ui/index.js");
|
||||
expect(manifest.entrypoints.display).toEqual({
|
||||
artifact: "./dist/display/index.js",
|
||||
permission: "example.display.view",
|
||||
});
|
||||
});
|
||||
|
||||
it("packages a generated stable Drizzle migration and matching policy", async () => {
|
||||
|
||||
Reference in New Issue
Block a user