import assert from "node:assert/strict" import test from "node:test" import { restoreImportedTenantNumberRanges } from "../src/utils/tenantImportNumberRanges" test("restores number ranges when importing into an existing target tenant", async () => { const queries: { query: string, values: unknown[] }[] = [] const numberRanges = { invoices: { prefix: "RE-", suffix: "", nextNumber: 4712 }, } const client = { async query(query: string, values: unknown[]) { queries.push({ query, values }) return { rowCount: 1 } }, } const updated = await restoreImportedTenantNumberRanges(client, { tenantId: 42, tables: { tenants: [{ id: 42, name: "Zieltenant", numberRanges }], }, }) assert.equal(updated, 1) assert.deepEqual(queries, [{ query: `update "tenants" set "numberRanges" = $1::jsonb where "id" = $2`, values: [JSON.stringify(numberRanges), 42], }]) }) test("does not overwrite number ranges when the export contains none", async () => { let queryCalled = false const client = { async query() { queryCalled = true return { rowCount: 1 } }, } const updated = await restoreImportedTenantNumberRanges(client, { tenantId: 42, tables: { tenants: [{ id: 42, name: "Zieltenant" }] }, }) assert.equal(updated, 0) assert.equal(queryCalled, false) })