35 lines
1.6 KiB
TypeScript
35 lines
1.6 KiB
TypeScript
import assert from "node:assert/strict"
|
|
import test from "node:test"
|
|
import { mcpToolMap } from "../src/mcp/registry"
|
|
|
|
test("publishes the complete serial invoice configuration on create and update", () => {
|
|
for (const name of ["accounting.outgoing_documents.create", "accounting.outgoing_documents.update"]) {
|
|
const tool = mcpToolMap.get(name)
|
|
const properties = tool?.inputSchema.properties as Record<string, any>
|
|
|
|
assert.ok(properties.serialConfig, name)
|
|
assert.deepEqual(properties.serialConfig.properties.intervall.enum, [
|
|
"wöchentlich",
|
|
"2 - wöchentlich",
|
|
"monatlich",
|
|
"vierteljährlich",
|
|
"halbjährlich",
|
|
"jährlich",
|
|
])
|
|
assert.deepEqual(properties.serialConfig.properties.dateDirection.enum, ["Rückwirkend", "Im Voraus"])
|
|
assert.ok(properties.type.enum.includes("serialInvoices"))
|
|
}
|
|
})
|
|
|
|
test("registers tenant-scoped serial invoice execution tools", () => {
|
|
const execute = mcpToolMap.get("accounting.serial_invoices.execute")
|
|
const list = mcpToolMap.get("accounting.serial_invoice_executions.list")
|
|
const finish = mcpToolMap.get("accounting.serial_invoice_executions.finish")
|
|
|
|
assert.deepEqual(execute?.requiredPermissions, ["accounting.outgoing_documents.write"])
|
|
assert.deepEqual(execute?.inputSchema.required, ["executionDate", "templateIds"])
|
|
assert.deepEqual(list?.requiredPermissions, ["accounting.outgoing_documents.read"])
|
|
assert.deepEqual(finish?.requiredPermissions, ["accounting.outgoing_documents.write"])
|
|
assert.deepEqual(finish?.inputSchema.required, ["id"])
|
|
})
|