feat: harden plugin api for separate repos, signed updates and generic external login

This commit is contained in:
LukeGus committed 2026-09-29 18:11:59 -05:00
1 parent fb9c168b6b
commit 80944301dd
310 files changed
+6577 -4927

No files matched your search

@@ -13,10 +13,6 @@ import locales from "../../locales/en.json";
const manifest = manifestJson as unknown as PluginManifest;
const linked = vi.hoisted(() => ({ serverUrl: null as string | null }));
vi.mock("@/lib/linked-server", () => ({
getLinkedSession: async () =>
linked.serverUrl ? { serverUrl: linked.serverUrl, token: "t" } : null,
}));
let rendered: RenderedPluginApp | null = null;
@@ -76,7 +72,11 @@ function stubApi(options: { identity?: boolean; linked?: number[] } = {}) {
describe(`${manifest.id} activate`, () => {
it("registers the rail item, panel, tab and credential badge", async () => {
rendered = await renderWithApp(plugin, { manifest, locales });
rendered = await renderWithApp(plugin, {
manifest,
locales,
remoteServerUrl: () => linked.serverUrl,
});
expect(rendered.registered.railItems()).toEqual([
expect.objectContaining({
id: "termix-id",
@@ -106,7 +106,11 @@ describe(`${manifest.id} activate`, () => {
isElectron: true,
invoke: vi.fn(async () => null),
};
rendered = await renderWithApp(plugin, { manifest, locales });
rendered = await renderWithApp(plugin, {
manifest,
locales,
remoteServerUrl: () => linked.serverUrl,
});
await waitFor(() =>
expect(rendered!.registered.railItems()).toEqual([
expect.objectContaining({ id: "termix-id", hidden: true }),
@@ -120,7 +124,11 @@ describe(`${manifest.id} activate`, () => {
isElectron: true,
invoke: vi.fn(async () => null),
};
rendered = await renderWithApp(plugin, { manifest, locales });
rendered = await renderWithApp(plugin, {
manifest,
locales,
remoteServerUrl: () => linked.serverUrl,
});
await waitFor(() =>
expect(rendered!.registered.railItems()[0]?.hidden).toBe(true),
);