15 lines
1.2 KiB
TypeScript
15 lines
1.2 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
import { dirname, resolve } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const desktopRoot = process.env.FAMILIAROS_DESKTOP_ROOT ?? resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
const pluginManifestSource = readFileSync(resolve(desktopRoot, "src/plugin-manifest.ts"), "utf8");
|
|
const pluginManifestConfigValidationSource = readFileSync(resolve(desktopRoot, "src/plugin-manifest-config-validation.ts"), "utf8");
|
|
|
|
assert.match(pluginManifestSource, /from "\.\/plugin-manifest-config-validation(?:\.js)?"/, "plugin-manifest must import the extracted config/action validation seam.");
|
|
assert.match(pluginManifestConfigValidationSource, /export function validateConfigSchema/, "plugin-manifest config validation seam must export config schema validation.");
|
|
assert.match(pluginManifestConfigValidationSource, /export function validateTriggers/, "plugin-manifest config validation seam must export trigger and action validation.");
|
|
assert.match(pluginManifestConfigValidationSource, /allowedReactions/, "plugin-manifest config validation seam must own reaction-select validation.");
|
|
|
|
console.error("Plugin manifest config validation seam passed.");
|