feat(mcp): support serial invoice workflows
This commit is contained in:
34
backend/tests/mcpSerialInvoices.test.ts
Normal file
34
backend/tests/mcpSerialInvoices.test.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
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"])
|
||||
})
|
||||
Reference in New Issue
Block a user