mirror of
https://github.com/bknd-io/bknd/
synced 2026-08-02 08:06:00 +00:00
78 lines
2.1 KiB
TypeScript
78 lines
2.1 KiB
TypeScript
import { describe, test, expect, beforeAll, afterAll } from "bun:test";
|
|
import { type App, createApp, createMcpToolCaller } from "core/test/utils";
|
|
import type { McpServer } from "bknd/utils";
|
|
import { disableConsoleLog, enableConsoleLog } from "core/utils/test";
|
|
|
|
beforeAll(() => disableConsoleLog());
|
|
afterAll(enableConsoleLog);
|
|
|
|
/**
|
|
* - [x] config_server_get
|
|
* - [x] config_server_update
|
|
*/
|
|
describe("mcp system", async () => {
|
|
let app: App;
|
|
let server: McpServer;
|
|
beforeAll(async () => {
|
|
app = createApp({
|
|
config: {
|
|
server: {
|
|
mcp: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
await app.build();
|
|
await app.getMcpClient().ping();
|
|
server = app.mcp!;
|
|
});
|
|
|
|
const tool = createMcpToolCaller();
|
|
|
|
test("config_server_get", async () => {
|
|
const result = await tool(server, "config_server_get", {});
|
|
expect(JSON.parse(JSON.stringify(result))).toEqual({
|
|
path: "",
|
|
secrets: false,
|
|
partial: false,
|
|
value: JSON.parse(JSON.stringify(app.toJSON().server)),
|
|
});
|
|
});
|
|
|
|
test("config_server_get2", async () => {
|
|
const result = await tool(server, "config_server_get", {});
|
|
expect(JSON.parse(JSON.stringify(result))).toEqual({
|
|
path: "",
|
|
secrets: false,
|
|
partial: false,
|
|
value: JSON.parse(JSON.stringify(app.toJSON().server)),
|
|
});
|
|
});
|
|
|
|
test("config_server_update", async () => {
|
|
const original = JSON.parse(JSON.stringify(app.toJSON().server));
|
|
const result = await tool(server, "config_server_update", {
|
|
value: {
|
|
cors: {
|
|
origin: "http://localhost",
|
|
},
|
|
},
|
|
return_config: true,
|
|
});
|
|
|
|
expect(JSON.parse(JSON.stringify(result))).toEqual({
|
|
success: true,
|
|
module: "server",
|
|
config: {
|
|
...original,
|
|
cors: {
|
|
...original.cors,
|
|
origin: "http://localhost",
|
|
},
|
|
},
|
|
});
|
|
expect(app.toJSON().server.cors.origin).toBe("http://localhost");
|
|
});
|
|
});
|