feat(api): expose board automation endpoints (#6213)
* feat(api): expose board automation endpoints * style: auto-fix lint and format * test(api): cover board settings updates * Delete .opencode/changelog/2026-07-06.md
This commit is contained in:
1 parent
718f095cb7
commit
7c152cf4fe
9 files changed
+303
-40
No files matched your search
@@ -2,16 +2,20 @@ import { expect, test, vi } from "vitest";
|
||||
import { extractToolsFromProcedures } from "trpc-to-mcp";
|
||||
|
||||
import { appRouter } from "../router/app";
|
||||
import { boardRouter } from "../router/board";
|
||||
import { infoRouter } from "../router/info";
|
||||
import { inviteRouter } from "../router/invite";
|
||||
import { serverSettingsRouter } from "../router/serverSettings";
|
||||
import { createTRPCRouter } from "../trpc";
|
||||
|
||||
vi.mock("@homarr/auth", () => ({}));
|
||||
|
||||
const mcpTestRouter = createTRPCRouter({
|
||||
app: appRouter,
|
||||
board: boardRouter,
|
||||
info: infoRouter,
|
||||
invite: inviteRouter,
|
||||
serverSettings: serverSettingsRouter,
|
||||
});
|
||||
|
||||
test("MCP tools should be extractable from the router", () => {
|
||||
@@ -28,8 +32,12 @@ test("MCP tools should contain expected procedures", () => {
|
||||
expect(toolNames).toContain("app_all");
|
||||
expect(toolNames).toContain("app_byId");
|
||||
expect(toolNames).toContain("app_create");
|
||||
expect(toolNames).toContain("board_savePartialBoardSettings");
|
||||
expect(toolNames).toContain("board_duplicateBoard");
|
||||
expect(toolNames).toContain("info_getInfo");
|
||||
expect(toolNames).toContain("invite_getAll");
|
||||
expect(toolNames).toContain("serverSettings_getBoardSettings");
|
||||
expect(toolNames).toContain("serverSettings_updateBoardSettings");
|
||||
});
|
||||
|
||||
test("MCP tools should have descriptions", () => {
|
||||
|
||||
@@ -14,3 +14,12 @@ test("OpenAPI documentation should be generated", () => {
|
||||
// Assert
|
||||
expect(act).not.toThrow();
|
||||
});
|
||||
|
||||
test("OpenAPI documentation should expose board automation endpoints", () => {
|
||||
const document = openApiDocument("https://homarr.dev");
|
||||
|
||||
expect(document.info.version).toBe("1.1.0");
|
||||
expect(document.paths).toHaveProperty("/api/boards/{id}/settings");
|
||||
expect(document.paths).toHaveProperty("/api/boards/{id}/duplicate");
|
||||
expect(document.paths).toHaveProperty("/api/settings/board");
|
||||
});
|
||||
Reference in new issue
Block a user