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 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"]) })