init mcp data tests, added crud for $record

This commit is contained in:
dswbx
2025-08-12 12:55:14 +02:00
parent 1e8c373dd4
commit f40ea0ec5b
6 changed files with 117 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
import { describe, it, expect, beforeAll } from "bun:test";
import { type App, createApp } from "core/test/utils";
import { describe, test, expect, beforeAll } from "bun:test";
import { type App, createApp, createMcpToolCaller } from "core/test/utils";
import { getSystemMcp } from "modules/mcp/system-mcp";
/**
@@ -16,10 +16,10 @@ import { getSystemMcp } from "modules/mcp/system-mcp";
* - [ ] data_entity_info
* - [ ] config_data_get
* - [ ] config_data_update
* - [ ] config_data_entities_get
* - [ ] config_data_entities_add
* - [ ] config_data_entities_update
* - [ ] config_data_entities_remove
* - [x] config_data_entities_get
* - [x] config_data_entities_add
* - [x] config_data_entities_update
* - [x] config_data_entities_remove
* - [ ] config_data_relations_get
* - [ ] config_data_relations_add
* - [ ] config_data_relations_update
@@ -44,5 +44,60 @@ describe("mcp data", async () => {
});
await app.build();
server = getSystemMcp(app);
server.setLogLevel("error");
server.onNotification((message) => {
console.dir(message, { depth: null });
});
});
const tool = createMcpToolCaller();
test("config_data_entities_{add,get,update,remove}", async () => {
const result = await tool(server, "config_data_entities_add", {
key: "test",
value: {},
});
expect(result.success).toBe(true);
expect(result.module).toBe("data");
expect(result.config.entities.test.type).toEqual("regular");
const entities = Object.keys(app.toJSON().data.entities ?? {});
expect(entities).toContain("test");
{
// get
const result = await tool(server, "config_data_entities_get", {
key: "test",
});
expect(result.module).toBe("data");
expect(result.key).toBe("test");
expect(result.value.type).toEqual("regular");
}
{
// update
const result = await tool(server, "config_data_entities_update", {
key: "test",
value: {
config: {
name: "Test",
},
},
});
expect(result.success).toBe(true);
expect(result.module).toBe("data");
expect(result.config.entities.test.config?.name).toEqual("Test");
expect(app.toJSON().data.entities?.test?.config?.name).toEqual("Test");
}
{
// remove
const result = await tool(server, "config_data_entities_remove", {
key: "test",
});
expect(result.success).toBe(true);
expect(result.module).toBe("data");
expect(app.toJSON().data.entities?.test).toBeUndefined();
}
});
});