refactor(environment): rename urls payload to data

- replace hardcoded URL keys with a generic key-value data map

- align backend DTOs, MCP schemas, and service import/export mapping

- update environment UI forms to edit JSON data instead of fixed fields
This commit is contained in:
2026-04-10 21:22:46 +03:00
parent b45f95d8cf
commit fd515ee459
15 changed files with 141 additions and 143 deletions
+16 -16
View File
@@ -19,44 +19,44 @@ describe("EnvironmentController", () => {
it("creates an environment and returns 201", async () => {
const res = await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-a", urls: { id_url: "https://id.example.com" } })
.send({ name: "env-a", data: { id: "https://id.example.com" } })
.expect(201);
expect(res.body.id).toBeDefined();
expect(res.body.name).toBe("env-a");
expect(res.body.urls.id_url).toBe("https://id.example.com");
expect(res.body.data.id).toBe("https://id.example.com");
});
it("returns 400 when name is missing", async () => {
await request(app.getHttpServer())
.post("/environments")
.send({ urls: { id_url: "https://id.example.com" } })
.send({ data: { id: "https://id.example.com" } })
.expect(400);
});
it("returns 400 when urls is missing", async () => {
it("returns 400 when data is missing", async () => {
await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-no-urls" })
.send({ name: "env-no-data" })
.expect(400);
});
it("returns 400 when urls is not an object", async () => {
it("returns 400 when data is not an object", async () => {
await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-bad-urls", urls: "not-an-object" })
.send({ name: "env-bad-data", data: "not-an-object" })
.expect(400);
});
it("returns 409 when name already exists", async () => {
await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-duplicate", urls: {} })
.send({ name: "env-duplicate", data: {} })
.expect(201);
await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-duplicate", urls: {} })
.send({ name: "env-duplicate", data: {} })
.expect(409);
});
});
@@ -78,11 +78,11 @@ describe("EnvironmentController", () => {
// seed two extra environments
await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-page-1", urls: {} })
.send({ name: "env-page-1", data: {} })
.expect(201);
await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-page-2", urls: {} })
.send({ name: "env-page-2", data: {} })
.expect(201);
const res = await request(app.getHttpServer())
@@ -109,10 +109,10 @@ describe("EnvironmentController", () => {
it("orders by name ASC", async () => {
await request(app.getHttpServer())
.post("/environments")
.send({ name: "zzz-env", urls: {} });
.send({ name: "zzz-env", data: {} });
await request(app.getHttpServer())
.post("/environments")
.send({ name: "aaa-env", urls: {} });
.send({ name: "aaa-env", data: {} });
const res = await request(app.getHttpServer())
.get("/environments?orderBy=name&orderDir=ASC")
@@ -148,7 +148,7 @@ describe("EnvironmentController", () => {
.post("/environments")
.send({
name: "env-get-one",
urls: { cabinet_url: "https://cabinet.example.com" },
data: { cabinet: "https://cabinet.example.com" },
})
.expect(201);
@@ -174,7 +174,7 @@ describe("EnvironmentController", () => {
it("updates name and returns 200", async () => {
const created = await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-patch-me", urls: {} })
.send({ name: "env-patch-me", data: {} })
.expect(201);
const res = await request(app.getHttpServer())
@@ -199,7 +199,7 @@ describe("EnvironmentController", () => {
it("deletes and returns 204", async () => {
const created = await request(app.getHttpServer())
.post("/environments")
.send({ name: "env-delete-me", urls: {} })
.send({ name: "env-delete-me", data: {} })
.expect(201);
await request(app.getHttpServer())
+1 -1
View File
@@ -118,7 +118,7 @@ describe("McpController", () => {
it("creates an environment via MCP", async () => {
const { status, rpc } = await mcpCall("create_environment", {
name: "mcp-test-env",
urls: { id_url: "https://id.example.com" },
data: { id: "https://id.example.com" },
});
expect(status).toBe(200);
const result = rpc.result as { content: { text: string }[] };