feat(scum): add file config workbench

This commit is contained in:
npc0-hue
2026-07-28 14:43:24 +08:00
parent e739dd9c79
commit e4ef4024a8
22 changed files with 397 additions and 109 deletions
+6 -6
View File
@@ -470,8 +470,8 @@ describe("plugin manifest validation", () => {
"maintenance.prepare"
]));
expect(manifest.gameClientBridge.snapshots.map((snapshot) => snapshot.type)).toEqual(expect.arrayContaining(["companion.health", "online.sessions", "players", "squads", "vehicles", "flags"]));
expect(manifest.gameClientBridge.pages.map((page) => page.pageKey)).toContain("operations");
expect(manifest.gameClientBridge.pages.find((page) => page.pageKey === "operations")?.commandTypes).toEqual(expect.arrayContaining([
expect(manifest.gameClientBridge.pages.map((page) => page.pageKey)).toContain("files-config");
expect(manifest.gameClientBridge.pages.find((page) => page.pageKey === "files-config")?.commandTypes).toEqual(expect.arrayContaining([
"announcement.send",
"companion.diagnostics",
"player.lookup",
@@ -480,7 +480,7 @@ describe("plugin manifest validation", () => {
"restart.prepare",
"maintenance.prepare"
]));
expect(manifest.pages.map((page) => page.key)).toContain("operations");
expect(manifest.pages.map((page) => page.key)).toContain("files-config");
expect(manifest.runtimeProfiles?.lifecycleProfiles?.find((profile) => profile.key === "scum-client")?.capabilities).not.toContain("remote.run.rcon.command");
expect(manifest.runtimeProfiles?.logSources?.map((source) => source.key)).toEqual(expect.arrayContaining(["scum-chat-events", "scum-server-events", "scum-client-events"]));
});
@@ -587,7 +587,7 @@ describe("plugin manifest validation", () => {
}
}
const operationsPage = manifest.gameClientBridge.pages.find((page) => page.pageKey === "operations");
const operationsPage = manifest.gameClientBridge.pages.find((page) => page.pageKey === "files-config");
expect(operationsPage?.snapshotTypes).toEqual(expect.arrayContaining(expectedTypes));
});
@@ -663,8 +663,8 @@ describe("plugin manifest validation", () => {
}
}
const operationsPage = manifest.gameClientBridge.pages.find((page) => page.pageKey === "operations");
const operationsPluginPage = manifest.pages.find((page) => page.key === "operations");
const operationsPage = manifest.gameClientBridge.pages.find((page) => page.pageKey === "files-config");
const operationsPluginPage = manifest.pages.find((page) => page.key === "files-config");
expect(operationsPage?.queryTemplateKeys).toEqual(expect.arrayContaining(expectedKeys));
expect(operationsPluginPage?.permissions).toEqual(expect.arrayContaining(["server.game-client.read", "server.remote.access"]));
expect(operationsPluginPage?.bridgeActions).toContain("remote.access.request");