openpetswithchatandmcp/apps/desktop/tests/plugin-sdk-api-builder-platform.test.ts
2026-06-19 19:51:37 +00:00

19 lines
1.9 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 pluginSdkApiBuilderSource = readFileSync(resolve(desktopRoot, "src/plugin-sdk-api-builder.ts"), "utf8");
const pluginSdkApiBuilderPlatformSource = readFileSync(resolve(desktopRoot, "src/plugin-sdk-api-builder-platform.ts"), "utf8");
const pluginSdkApiBuilderPlatformFilesSource = readFileSync(resolve(desktopRoot, "src/plugin-sdk-api-builder-platform-files.ts"), "utf8");
assert.match(pluginSdkApiBuilderSource, /from "\.\/plugin-sdk-api-builder-platform(?:\.js)?"/, "Plugin SDK API builder must compose the extracted platform seam.");
assert.match(pluginSdkApiBuilderPlatformSource, /export function createPluginSdkPlatformApis/, "Plugin SDK platform seam must export the platform namespace builder.");
assert.match(pluginSdkApiBuilderPlatformSource, /from "\.\/plugin-sdk-api-builder-platform-files(?:\.js)?"/, "Plugin SDK platform seam must compose the extracted files namespace builder.");
assert.match(pluginSdkApiBuilderPlatformSource, /from "\.\/plugin-sdk-network(?:\.js)?"/, "Plugin SDK platform seam must import the network guard helpers.");
assert.match(pluginSdkApiBuilderPlatformSource, /from "\.\/plugin-sdk-validators(?:\.js)?"/, "Plugin SDK platform seam must import the validator helpers.");
assert.match(pluginSdkApiBuilderPlatformSource, /from "\.\/plugin-sdk-support(?:\.js)?"/, "Plugin SDK platform seam must import the locale and text support helpers.");
assert.match(pluginSdkApiBuilderPlatformFilesSource, /export function createPluginSdkFilesApi/, "Plugin SDK platform files seam must export the files namespace builder.");
console.error("Plugin SDK API builder platform seam validation passed.");