Merge remote-tracking branch 'origin/main' into review/pr-5-machine-federation-fixes

# Conflicts:
#	src/client/src/api.ts
#	src/client/src/api/clients.ts
#	src/client/src/api/parsers.ts
#	src/client/src/components/PiWebApp.ts
#	src/server/app.ts
#	src/shared/apiTypes.ts
This commit is contained in:
Federico Jaramillo Martinez
2026-06-04 10:31:23 +02:00
76 changed files with 2423 additions and 767 deletions
+25
View File
@@ -88,6 +88,31 @@ describe("PiWebPluginService", () => {
await expect(service.readAsset("dev", "pi-web-plugin.js")).resolves.toBeDefined();
});
it("filters disabled plugins from the manifest while reporting them through plugin status", async () => {
await writePlugin(join(tempDir, "plugins", "enabled"), {
packageJson: { piWeb: { plugins: [{ id: "enabled", module: "pi-web-plugin.js" }] } },
files: { "pi-web-plugin.js": "export default {};" },
});
await writePlugin(join(tempDir, "plugins", "disabled"), {
packageJson: { piWeb: { plugins: [{ id: "disabled", module: "pi-web-plugin.js" }] } },
files: { "pi-web-plugin.js": "export default {};" },
});
const service = new PiWebPluginService({
roots: [{ path: join(tempDir, "plugins"), source: "test", scope: "local" }],
packageProvider: false,
configProvider: () => ({ plugins: { disabled: { enabled: false, settings: { hidden: true } } } }),
});
await expect(service.manifest()).resolves.toMatchObject({ plugins: [{ id: "enabled" }] });
await expect(service.plugins()).resolves.toMatchObject({
plugins: [
{ id: "disabled", enabled: false },
{ id: "enabled", enabled: true },
],
});
});
it("skips duplicate plugin ids", async () => {
await writePlugin(join(tempDir, "plugins", "one"), {
packageJson: { piWeb: { plugins: [{ id: "duplicate", module: "pi-web-plugin.js" }] } },