openpetswithchatandmcp/apps/desktop/tests/plugins-view-presentation.test.ts
2026-06-19 05:22:41 +00:00

17 lines
1.5 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 pluginsViewSource = readFileSync(resolve(desktopRoot, "src/renderer/src/control-center/plugins-view.tsx"), "utf8");
const pluginsViewPresentationSource = readFileSync(resolve(desktopRoot, "src/renderer/src/control-center/plugins-view-presentation.tsx"), "utf8");
assert.match(pluginsViewSource, /from "\.\/plugins-view-presentation"/, "Plugins view must import the extracted presentation seam.");
assert.match(pluginsViewPresentationSource, /export const pluginFilterLabelKeys/, "Plugins presentation seam must export filter labels.");
assert.match(pluginsViewPresentationSource, /export const pluginPermissionLabelKeys/, "Plugins presentation seam must export permission labels.");
assert.match(pluginsViewPresentationSource, /export function PluginIconImage/, "Plugins presentation seam must export the icon presentation helper.");
assert.match(pluginsViewPresentationSource, /export function pluginPrimaryLabel/, "Plugins presentation seam must export primary badge labeling.");
assert.match(pluginsViewPresentationSource, /export function pluginDescription/, "Plugins presentation seam must export plugin description shaping.");
console.error("Plugins view presentation seam validation passed.");