@accounter/server 0.0.9-alpha-20251210155614-e6e65aaecafef9e8fedd0b933f613ffcf478cecf → 0.0.9-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/CHANGELOG.md +43 -5
  2. package/dist/server/src/__tests__/factories/business.d.ts +2 -2
  3. package/dist/server/src/__tests__/factories/business.js +5 -4
  4. package/dist/server/src/__tests__/factories/business.js.map +1 -1
  5. package/dist/server/src/__tests__/factories/business.test.js +2 -2
  6. package/dist/server/src/__tests__/factories/business.test.js.map +1 -1
  7. package/dist/server/src/__tests__/factories/charge.d.ts +9 -9
  8. package/dist/server/src/__tests__/factories/charge.js +15 -15
  9. package/dist/server/src/__tests__/factories/charge.js.map +1 -1
  10. package/dist/server/src/__tests__/factories/charge.test.js +14 -14
  11. package/dist/server/src/__tests__/factories/charge.test.js.map +1 -1
  12. package/dist/server/src/__tests__/factories/document.d.ts +9 -9
  13. package/dist/server/src/__tests__/factories/document.js +11 -11
  14. package/dist/server/src/__tests__/factories/document.js.map +1 -1
  15. package/dist/server/src/__tests__/factories/document.test.js +38 -38
  16. package/dist/server/src/__tests__/factories/document.test.js.map +1 -1
  17. package/dist/server/src/__tests__/factories/financial-account.js +2 -2
  18. package/dist/server/src/__tests__/factories/financial-account.js.map +1 -1
  19. package/dist/server/src/__tests__/factories/financial-account.test.js +7 -7
  20. package/dist/server/src/__tests__/factories/financial-account.test.js.map +1 -1
  21. package/dist/server/src/__tests__/factories/index.d.ts +2 -2
  22. package/dist/server/src/__tests__/factories/index.js +2 -2
  23. package/dist/server/src/__tests__/factories/index.js.map +1 -1
  24. package/dist/server/src/__tests__/factories/index.test.js +12 -12
  25. package/dist/server/src/__tests__/factories/index.test.js.map +1 -1
  26. package/dist/server/src/__tests__/factories/tax-category.d.ts +3 -3
  27. package/dist/server/src/__tests__/factories/tax-category.js +6 -5
  28. package/dist/server/src/__tests__/factories/tax-category.js.map +1 -1
  29. package/dist/server/src/__tests__/factories/tax-category.test.js +4 -4
  30. package/dist/server/src/__tests__/factories/tax-category.test.js.map +1 -1
  31. package/dist/server/src/__tests__/factories/transaction.d.ts +7 -7
  32. package/dist/server/src/__tests__/factories/transaction.js +11 -11
  33. package/dist/server/src/__tests__/factories/transaction.js.map +1 -1
  34. package/dist/server/src/__tests__/factories/transaction.test.js +27 -27
  35. package/dist/server/src/__tests__/factories/transaction.test.js.map +1 -1
  36. package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-a.js +20 -20
  37. package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-a.js.map +1 -1
  38. package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.js +20 -20
  39. package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.js.map +1 -1
  40. package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.test.js +8 -8
  41. package/dist/server/src/__tests__/fixtures/expenses/expense-scenario-b.test.js.map +1 -1
  42. package/dist/server/src/__tests__/helpers/db-setup.d.ts +0 -1
  43. package/dist/server/src/__tests__/helpers/db-setup.js +0 -2
  44. package/dist/server/src/__tests__/helpers/db-setup.js.map +1 -1
  45. package/dist/server/src/__tests__/helpers/fixture-loader.js +2 -2
  46. package/dist/server/src/__tests__/helpers/fixture-loader.js.map +1 -1
  47. package/dist/server/src/__tests__/helpers/fixture-loader.test.js +32 -29
  48. package/dist/server/src/__tests__/helpers/fixture-loader.test.js.map +1 -1
  49. package/dist/server/src/__tests__/helpers/fixture-validation.test.js +50 -50
  50. package/dist/server/src/__tests__/helpers/fixture-validation.test.js.map +1 -1
  51. package/dist/server/src/__tests__/helpers/seed-helpers.business.test.js +23 -31
  52. package/dist/server/src/__tests__/helpers/seed-helpers.business.test.js.map +1 -1
  53. package/dist/server/src/__tests__/helpers/seed-helpers.concurrent.test.js +8 -8
  54. package/dist/server/src/__tests__/helpers/seed-helpers.concurrent.test.js.map +1 -1
  55. package/dist/server/src/__tests__/helpers/seed-helpers.financial-entity.test.js +41 -50
  56. package/dist/server/src/__tests__/helpers/seed-helpers.financial-entity.test.js.map +1 -1
  57. package/dist/server/src/__tests__/helpers/seed-helpers.tax-category.test.js +23 -31
  58. package/dist/server/src/__tests__/helpers/seed-helpers.tax-category.test.js.map +1 -1
  59. package/dist/server/src/__tests__/helpers/test-db-config.js +1 -1
  60. package/dist/server/src/__tests__/helpers/test-db-config.js.map +1 -1
  61. package/dist/server/src/__tests__/seed-admin-context.integration.test.js +128 -131
  62. package/dist/server/src/__tests__/seed-admin-context.integration.test.js.map +1 -1
  63. package/dist/server/src/demo-fixtures/__tests__/deterministic-uuid.test.js +58 -0
  64. package/dist/server/src/demo-fixtures/__tests__/deterministic-uuid.test.js.map +1 -0
  65. package/dist/server/src/demo-fixtures/helpers/deterministic-uuid.d.ts +50 -0
  66. package/dist/server/src/demo-fixtures/helpers/deterministic-uuid.js +66 -0
  67. package/dist/server/src/demo-fixtures/helpers/deterministic-uuid.js.map +1 -0
  68. package/dist/server/src/modules/admin-context/{heplers → helpers}/admin-context.helper.d.ts +1 -1
  69. package/dist/server/src/modules/admin-context/{heplers → helpers}/admin-context.helper.js +2 -2
  70. package/dist/server/src/modules/admin-context/{heplers → helpers}/admin-context.helper.js.map +1 -1
  71. package/dist/server/src/modules/admin-context/resolvers/admin-context.resolvers.js +1 -1
  72. package/dist/server/src/modules/business-trips/providers/business-trips.provider.d.ts +1 -1
  73. package/dist/server/src/modules/business-trips/providers/business-trips.provider.js +1 -1
  74. package/dist/server/src/modules/business-trips/providers/business-trips.provider.js.map +1 -1
  75. package/dist/server/src/modules/charges/helpers/common.helper.js +3 -3
  76. package/dist/server/src/modules/charges/helpers/common.helper.js.map +1 -1
  77. package/dist/server/src/modules/charges/helpers/{merge-charges.hepler.js → merge-charges.helper.js} +6 -6
  78. package/dist/server/src/modules/charges/helpers/{merge-charges.hepler.js.map → merge-charges.helper.js.map} +1 -1
  79. package/dist/server/src/modules/charges/resolvers/charges.resolver.js +1 -1
  80. package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js +2 -2
  81. package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js.map +1 -1
  82. package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js +1 -1
  83. package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js.map +1 -1
  84. package/dist/server/src/modules/corn-jobs/resolvers/corn-jobs.resolver.js +1 -1
  85. package/dist/server/src/modules/corn-jobs/resolvers/corn-jobs.resolver.js.map +1 -1
  86. package/dist/server/src/modules/ledger/__tests__/helpers/ledger-assertions.d.ts +0 -2
  87. package/dist/server/src/modules/ledger/__tests__/helpers/ledger-assertions.js +0 -4
  88. package/dist/server/src/modules/ledger/__tests__/helpers/ledger-assertions.js.map +1 -1
  89. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.js +20 -20
  90. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.js.map +1 -1
  91. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js +21 -21
  92. package/dist/server/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.js.map +1 -1
  93. package/dist/server/src/modules/transactions/helpers/common.helper.js +11 -6
  94. package/dist/server/src/modules/transactions/helpers/common.helper.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/__tests__/factories/business.test.ts +3 -3
  97. package/src/__tests__/factories/business.ts +5 -4
  98. package/src/__tests__/factories/charge.test.ts +14 -14
  99. package/src/__tests__/factories/charge.ts +16 -16
  100. package/src/__tests__/factories/document.test.ts +38 -38
  101. package/src/__tests__/factories/document.ts +11 -11
  102. package/src/__tests__/factories/financial-account.test.ts +7 -7
  103. package/src/__tests__/factories/financial-account.ts +3 -3
  104. package/src/__tests__/factories/index.test.ts +12 -12
  105. package/src/__tests__/factories/index.ts +2 -2
  106. package/src/__tests__/factories/tax-category.test.ts +4 -4
  107. package/src/__tests__/factories/tax-category.ts +7 -6
  108. package/src/__tests__/factories/transaction.test.ts +27 -27
  109. package/src/__tests__/factories/transaction.ts +11 -11
  110. package/src/__tests__/fixtures/expenses/expense-scenario-a.ts +20 -20
  111. package/src/__tests__/fixtures/expenses/expense-scenario-b.test.ts +8 -8
  112. package/src/__tests__/fixtures/expenses/expense-scenario-b.ts +20 -20
  113. package/src/__tests__/helpers/db-setup.ts +0 -3
  114. package/src/__tests__/helpers/fixture-loader.test.ts +31 -29
  115. package/src/__tests__/helpers/fixture-loader.ts +2 -2
  116. package/src/__tests__/helpers/fixture-validation.test.ts +50 -50
  117. package/src/__tests__/helpers/seed-helpers.business.test.ts +145 -147
  118. package/src/__tests__/helpers/seed-helpers.concurrent.test.ts +10 -10
  119. package/src/__tests__/helpers/seed-helpers.financial-entity.test.ts +218 -231
  120. package/src/__tests__/helpers/seed-helpers.tax-category.test.ts +162 -164
  121. package/src/__tests__/helpers/test-db-config.ts +1 -1
  122. package/src/__tests__/seed-admin-context.integration.test.ts +199 -208
  123. package/src/demo-fixtures/__tests__/deterministic-uuid.test.ts +75 -0
  124. package/src/demo-fixtures/helpers/deterministic-uuid.ts +68 -0
  125. package/src/modules/admin-context/{heplers → helpers}/admin-context.helper.ts +3 -3
  126. package/src/modules/admin-context/resolvers/admin-context.resolvers.ts +1 -1
  127. package/src/modules/business-trips/providers/business-trips.provider.ts +1 -1
  128. package/src/modules/charges/helpers/common.helper.ts +3 -3
  129. package/src/modules/charges/helpers/{merge-charges.hepler.ts → merge-charges.helper.ts} +5 -5
  130. package/src/modules/charges/resolvers/charges.resolver.ts +1 -1
  131. package/src/modules/charges-matcher/__tests__/auto-match-integration.test.ts +2 -2
  132. package/src/modules/charges-matcher/providers/charges-matcher.provider.ts +1 -1
  133. package/src/modules/corn-jobs/resolvers/corn-jobs.resolver.ts +1 -1
  134. package/src/modules/ledger/__tests__/helpers/ledger-assertions.ts +0 -5
  135. package/src/modules/ledger/__tests__/ledger-scenario-a.integration.test.ts +20 -20
  136. package/src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts +21 -21
  137. package/src/modules/transactions/helpers/common.helper.ts +12 -6
  138. package/dist/server/src/__tests__/factories/ids.d.ts +0 -22
  139. package/dist/server/src/__tests__/factories/ids.js +0 -46
  140. package/dist/server/src/__tests__/factories/ids.js.map +0 -1
  141. package/dist/server/src/__tests__/factories/ids.test.js +0 -71
  142. package/dist/server/src/__tests__/factories/ids.test.js.map +0 -1
  143. package/src/__tests__/factories/ids.test.ts +0 -80
  144. package/src/__tests__/factories/ids.ts +0 -49
  145. /package/dist/server/src/{__tests__/factories/ids.test.d.ts → demo-fixtures/__tests__/deterministic-uuid.test.d.ts} +0 -0
  146. /package/dist/server/src/modules/charges/helpers/{merge-charges.hepler.d.ts → merge-charges.helper.d.ts} +0 -0
@@ -2,7 +2,7 @@ import { describe, it, expect, beforeAll, afterAll, afterEach } from 'vitest';
2
2
  import { TestDatabase } from '../../../__tests__/helpers/db-setup.js';
3
3
  import { insertFixture } from '../../../__tests__/helpers/fixture-loader.js';
4
4
  import { expenseScenarioB } from '../../../__tests__/fixtures/expenses/expense-scenario-b.js';
5
- import { makeUUID } from '../../../__tests__/factories/ids.js';
5
+ import { makeUUID } from '../../../demo-fixtures/helpers/deterministic-uuid.js';
6
6
  import { qualifyTable } from '../../../__tests__/helpers/test-db-config.js';
7
7
  import { buildAdminContextFromDb } from '../../../__tests__/helpers/admin-context-builder.js';
8
8
  import { mockExchangeRate } from '../../../__tests__/helpers/exchange-mock.js';
@@ -42,7 +42,7 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
42
42
  afterEach(async () => {
43
43
  const client = await db.getPool().connect();
44
44
  try {
45
- const chargeId = makeUUID('charge-consulting-services');
45
+ const chargeId = makeUUID('charge', 'charge-consulting-services');
46
46
  await client.query(`DELETE FROM ${qualifyTable('ledger_records')} WHERE charge_id = $1`, [chargeId]);
47
47
  // Also clear the scenario's fixture rows to keep DB tidy
48
48
  await client.query(`DELETE FROM ${qualifyTable('documents')} WHERE charge_id = $1`, [chargeId]);
@@ -50,15 +50,15 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
50
50
  await client.query(`DELETE FROM ${qualifyTable('charges')} WHERE id = $1`, [chargeId]);
51
51
  // Clean up fixture-specific entities to prevent count inflation
52
52
  await client.query(`DELETE FROM ${qualifyTable('financial_accounts_tax_categories')}
53
- WHERE tax_category_id IN ($1, $2)`, [makeUUID('expense-consulting'), makeUUID('usd-account-tax-category')]);
53
+ WHERE tax_category_id IN ($1, $2)`, [makeUUID('tax-category', 'expense-consulting'), makeUUID('tax-category', 'usd-account-tax-category')]);
54
54
  await client.query(`DELETE FROM ${qualifyTable('financial_accounts')} WHERE account_number = $1`, ['USD-ACCOUNT-001']);
55
- await client.query(`DELETE FROM ${qualifyTable('tax_categories')} WHERE id IN ($1, $2)`, [makeUUID('expense-consulting'), makeUUID('usd-account-tax-category')]);
56
- await client.query(`DELETE FROM ${qualifyTable('businesses')} WHERE id IN ($1, $2)`, [makeUUID('admin-business-usd'), makeUUID('supplier-us-vendor-llc')]);
55
+ await client.query(`DELETE FROM ${qualifyTable('tax_categories')} WHERE id IN ($1, $2)`, [makeUUID('tax-category', 'expense-consulting'), makeUUID('tax-category', 'usd-account-tax-category')]);
56
+ await client.query(`DELETE FROM ${qualifyTable('businesses')} WHERE id IN ($1, $2)`, [makeUUID('business', 'admin-business-usd'), makeUUID('business', 'supplier-us-vendor-llc')]);
57
57
  await client.query(`DELETE FROM ${qualifyTable('financial_entities')} WHERE id IN ($1, $2, $3, $4)`, [
58
- makeUUID('admin-business-usd'),
59
- makeUUID('supplier-us-vendor-llc'),
60
- makeUUID('expense-consulting'),
61
- makeUUID('usd-account-tax-category'),
58
+ makeUUID('business', 'admin-business-usd'),
59
+ makeUUID('business', 'supplier-us-vendor-llc'),
60
+ makeUUID('tax-category', 'expense-consulting'),
61
+ makeUUID('tax-category', 'usd-account-tax-category'),
62
62
  ]);
63
63
  }
64
64
  finally {
@@ -71,7 +71,7 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
71
71
  try {
72
72
  await insertClient.query('BEGIN');
73
73
  await insertFixture(insertClient, expenseScenarioB);
74
- const chargeId = makeUUID('charge-consulting-services');
74
+ const chargeId = makeUUID('charge', 'charge-consulting-services');
75
75
  // Verify inserts within the same transaction
76
76
  const chargeResult = await insertClient.query(`SELECT * FROM ${qualifyTable('charges')} WHERE id = $1`, [chargeId]);
77
77
  expect(chargeResult.rows).toHaveLength(1);
@@ -99,7 +99,7 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
99
99
  // Re-open a new client (outside prior transaction) for verification & generation
100
100
  const client = await db.getPool().connect();
101
101
  try {
102
- const chargeId = makeUUID('charge-consulting-services');
102
+ const chargeId = makeUUID('charge', 'charge-consulting-services');
103
103
  const chargeResult = await client.query(`SELECT * FROM ${qualifyTable('charges')} WHERE id = $1`, [chargeId]);
104
104
  const charge = chargeResult.rows[0];
105
105
  // Build AdminContext from database
@@ -136,8 +136,8 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
136
136
  assertForeignExpenseScenario(ledgerResult.rows, {
137
137
  chargeId: charge.id,
138
138
  ownerId: charge.owner_id, // Use actual charge owner id
139
- expenseEntity: makeUUID('expense-consulting'),
140
- bankEntity: makeUUID('usd-account-tax-category'),
139
+ expenseEntity: makeUUID('tax-category', 'expense-consulting'),
140
+ bankEntity: makeUUID('tax-category', 'usd-account-tax-category'),
141
141
  expectedCurrency: Currency.Usd,
142
142
  expectedForeignAmount: ledgerExpectation?.foreignAmount || 200.0,
143
143
  expectedRate: ledgerExpectation?.exchangeRate || 3.5,
@@ -156,7 +156,7 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
156
156
  it('should be idempotent on repeated foreign ledger generation (no duplicate records)', async () => {
157
157
  const client = await db.getPool().connect();
158
158
  try {
159
- const chargeId = makeUUID('charge-consulting-services');
159
+ const chargeId = makeUUID('charge', 'charge-consulting-services');
160
160
  // Ensure fixture inserted if absent
161
161
  const existingCharge = await client.query(`SELECT * FROM ${qualifyTable('charges')} WHERE id = $1`, [chargeId]);
162
162
  if (existingCharge.rows.length === 0) {
@@ -216,12 +216,12 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
216
216
  const accountMapping = expenseScenarioB.accountTaxCategories?.mappings[0];
217
217
  expect(accountMapping?.accountNumber).toBe('USD-ACCOUNT-001');
218
218
  expect(accountMapping?.currency).toBe(Currency.Usd);
219
- expect(accountMapping?.taxCategoryId).toBe(makeUUID('usd-account-tax-category'));
219
+ expect(accountMapping?.taxCategoryId).toBe(makeUUID('tax-category', 'usd-account-tax-category'));
220
220
  // Verify expectations are defined
221
221
  expect(expenseScenarioB.expectations).toBeDefined();
222
222
  expect(expenseScenarioB.expectations?.ledger).toHaveLength(1);
223
223
  const ledgerExpectation = expenseScenarioB.expectations?.ledger?.[0];
224
- expect(ledgerExpectation?.chargeId).toBe(makeUUID('charge-consulting-services'));
224
+ expect(ledgerExpectation?.chargeId).toBe(makeUUID('charge', 'charge-consulting-services'));
225
225
  expect(ledgerExpectation?.recordCount).toBe(2);
226
226
  expect(ledgerExpectation?.balanced).toBe(true);
227
227
  expect(ledgerExpectation?.totalDebitLocal).toBe(1400.0);
@@ -234,11 +234,11 @@ describe('Ledger Generation - Expense Scenario B (Foreign Currency)', () => {
234
234
  });
235
235
  it('should create deterministic UUIDs for reproducible tests', () => {
236
236
  // Verify all IDs are deterministic and match expected values
237
- const adminBusinessId = makeUUID('admin-business-usd');
238
- const supplierId = makeUUID('supplier-us-vendor-llc');
239
- const chargeId = makeUUID('charge-consulting-services');
240
- const transactionId = makeUUID('transaction-consulting-payment');
241
- const documentId = makeUUID('document-consulting-invoice');
237
+ const adminBusinessId = makeUUID('business', 'admin-business-usd');
238
+ const supplierId = makeUUID('business', 'supplier-us-vendor-llc');
239
+ const chargeId = makeUUID('charge', 'charge-consulting-services');
240
+ const transactionId = makeUUID('transaction', 'transaction-consulting-payment');
241
+ const documentId = makeUUID('document', 'document-consulting-invoice');
242
242
  expect(adminBusinessId).toBe(expenseScenarioB.businesses?.businesses[0]?.id);
243
243
  expect(supplierId).toBe(expenseScenarioB.businesses?.businesses[1]?.id);
244
244
  expect(chargeId).toBe(expenseScenarioB.charges?.charges[0]?.id);
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-scenario-b.integration.test.js","sourceRoot":"","sources":["../../../../../../src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger-scenario-b.integration.test.js","sourceRoot":"","sources":["../../../../../../src/modules/ledger/__tests__/ledger-scenario-b.integration.test.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,18 @@ export function getTransactionsMeta(transactions) {
5
5
  let invalidTransactions = false;
6
6
  let transactionsMinDebitDate = null;
7
7
  let transactionsMinEventDate = null;
8
+ const hasFee = transactions.some(t => t.is_fee);
9
+ const onlyFee = transactions.every(t => t.is_fee);
10
+ const hasSomeFeeTransactions = hasFee && !onlyFee;
8
11
  transactions.map(t => {
9
- const amountAsNumber = Number(t.amount);
10
- const amount = Number.isNaN(amountAsNumber) ? null : amountAsNumber;
11
- if (amount != null) {
12
- transactionsAmount ??= 0;
13
- transactionsAmount += amount;
14
- currenciesSet.add(t.currency);
12
+ if ((hasSomeFeeTransactions && !t.is_fee) || !hasSomeFeeTransactions) {
13
+ const amountAsNumber = Number(t.amount);
14
+ const amount = Number.isNaN(amountAsNumber) ? null : amountAsNumber;
15
+ if (amount != null) {
16
+ transactionsAmount ??= 0;
17
+ transactionsAmount += amount;
18
+ currenciesSet.add(t.currency);
19
+ }
15
20
  }
16
21
  if (t.debit_timestamp) {
17
22
  transactionsMinDebitDate ??= t.debit_timestamp;
@@ -1 +1 @@
1
- {"version":3,"file":"common.helper.js","sourceRoot":"","sources":["../../../../../../src/modules/transactions/helpers/common.helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CAAC,YAA2C;IAC7E,IAAI,kBAAkB,GAAkB,IAAI,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAY,CAAC;IAC1C,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,wBAAwB,GAAgB,IAAI,CAAC;IACjD,IAAI,wBAAwB,GAAgB,IAAI,CAAC;IAEjD,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnB,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;QACpE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,kBAAkB,KAAK,CAAC,CAAC;YACzB,kBAAkB,IAAI,MAAM,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAoB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YACtB,wBAAwB,KAAK,CAAC,CAAC,eAAe,CAAC;YAC/C,IAAI,wBAAwB,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;gBACjD,wBAAwB,GAAG,CAAC,CAAC,eAAe,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACxB,wBAAwB,KAAK,CAAC,CAAC,UAAU,CAAC;YAC1C,IAAI,wBAAwB,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC5C,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,wBAAwB,KAAK,CAAC,CAAC,UAAU,CAAC;QAC1C,IAAI,wBAAwB,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;YAC5C,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,oBAAoB,GACxB,sBAAsB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,OAAO;QACL,iBAAiB,EAAE,YAAY,CAAC,MAAM;QACtC,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,mBAAmB;QACnB,wBAAwB;QACxB,wBAAwB;KACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"common.helper.js","sourceRoot":"","sources":["../../../../../../src/modules/transactions/helpers/common.helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CAAC,YAA2C;IAC7E,IAAI,kBAAkB,GAAkB,IAAI,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAY,CAAC;IAC1C,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,wBAAwB,GAAgB,IAAI,CAAC;IACjD,IAAI,wBAAwB,GAAgB,IAAI,CAAC;IAEjD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;IAElD,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnB,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACrE,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;YACpE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,kBAAkB,KAAK,CAAC,CAAC;gBACzB,kBAAkB,IAAI,MAAM,CAAC;gBAC7B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAoB,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YACtB,wBAAwB,KAAK,CAAC,CAAC,eAAe,CAAC;YAC/C,IAAI,wBAAwB,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;gBACjD,wBAAwB,GAAG,CAAC,CAAC,eAAe,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACxB,wBAAwB,KAAK,CAAC,CAAC,UAAU,CAAC;YAC1C,IAAI,wBAAwB,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC5C,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,wBAAwB,KAAK,CAAC,CAAC,UAAU,CAAC;QAC1C,IAAI,wBAAwB,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;YAC5C,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,oBAAoB,GACxB,sBAAsB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,OAAO;QACL,iBAAiB,EAAE,YAAY,CAAC,MAAM;QACtC,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,mBAAmB;QACnB,wBAAwB;QACxB,wBAAwB;KACzB,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@accounter/server",
3
- "version": "0.0.9-alpha-20251210155614-e6e65aaecafef9e8fedd0b933f613ffcf478cecf",
3
+ "version": "0.0.9-alpha-20251210171954-c9c0e7693ebe08d3643d9ee2c00c03606a53e334",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "license": "MIT",
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
  import { UUID_REGEX } from '../../shared/constants.js';
3
3
  import { createBusiness } from './business.js';
4
- import { makeUUID } from './ids.js';
4
+ import { makeUUID } from '../../demo-fixtures/helpers/deterministic-uuid.js';
5
5
  import { CountryCode } from '../../modules/countries/types.js';
6
6
 
7
7
  describe('Factory: Business', () => {
@@ -39,11 +39,11 @@ describe('Factory: Business', () => {
39
39
  });
40
40
 
41
41
  it('should apply overrides correctly', () => {
42
- const customId = makeUUID('custom-business');
42
+ const customId = makeUUID('business', 'custom-business');
43
43
  const business = createBusiness({
44
44
  id: customId,
45
45
  hebrewName: 'עסק ישראלי',
46
- country: CountryCode.Israel,
46
+ country: CountryCode.Israel,
47
47
  exemptDealer: true,
48
48
  isReceiptEnough: true,
49
49
  isDocumentsOptional: true,
@@ -1,5 +1,5 @@
1
1
  import type { IInsertBusinessesParams } from '../../modules/financial-entities/__generated__/businesses.types.js';
2
- import { makeUUID } from './ids.js';
2
+ import { makeUUIDLegacy } from '../../demo-fixtures/helpers/deterministic-uuid.js';
3
3
  import { CountryCode } from '../../modules/countries/types.js';
4
4
 
5
5
  /**
@@ -20,11 +20,11 @@ import { CountryCode } from '../../modules/countries/types.js';
20
20
  * @example
21
21
  * ```typescript
22
22
  * // Minimal business (uses defaults)
23
- * const business = createBusiness({ id: makeUUID('supplier-1') });
23
+ * const business = createBusiness({ id: makeUUID('business', 'supplier-1') });
24
24
  *
25
25
  * // Business with custom fields
26
26
  * const supplier = createBusiness({
27
- * id: makeUUID('supplier-usd'),
27
+ * id: makeUUID('business', 'supplier-usd'),
28
28
  * hebrewName: 'ספק אמריקאי',
29
29
  * country: 'USA',
30
30
  * isReceiptEnough: true,
@@ -34,8 +34,9 @@ import { CountryCode } from '../../modules/countries/types.js';
34
34
  export function createBusiness(
35
35
  overrides?: Partial<IInsertBusinessesParams['businesses'][number]>,
36
36
  ): IInsertBusinessesParams['businesses'][number] {
37
+ const defaultId = makeUUIDLegacy();
37
38
  return {
38
- id: makeUUID(),
39
+ id: defaultId,
39
40
  hebrewName: null,
40
41
  address: null,
41
42
  email: null,
@@ -1,12 +1,12 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
  import { UUID_REGEX } from '../../shared/constants.js';
3
3
  import { createCharge } from './charge.js';
4
- import { makeUUID } from './ids.js';
4
+ import { makeUUID } from '../../demo-fixtures/helpers/deterministic-uuid.js';
5
5
 
6
6
  describe('Factory: Charge', () => {
7
7
  describe('createCharge', () => {
8
8
  it('should create charge with required fields', () => {
9
- const ownerId = makeUUID('test-owner');
9
+ const ownerId = makeUUID('business', 'test-owner');
10
10
  const charge = createCharge({ owner_id: ownerId });
11
11
 
12
12
  // Required field
@@ -27,7 +27,7 @@ describe('Factory: Charge', () => {
27
27
  });
28
28
 
29
29
  it('should generate unique IDs by default', () => {
30
- const ownerId = makeUUID('test-owner');
30
+ const ownerId = makeUUID('business', 'test-owner');
31
31
  const charge1 = createCharge({ owner_id: ownerId });
32
32
  const charge2 = createCharge({ owner_id: ownerId });
33
33
 
@@ -35,8 +35,8 @@ describe('Factory: Charge', () => {
35
35
  });
36
36
 
37
37
  it('should accept tax_category_id in params', () => {
38
- const ownerId = makeUUID('test-owner');
39
- const taxCategoryId = makeUUID('tax-cat-1');
38
+ const ownerId = makeUUID('business', 'test-owner');
39
+ const taxCategoryId = makeUUID('tax-category', 'tax-cat-1');
40
40
  const charge = createCharge({
41
41
  owner_id: ownerId,
42
42
  tax_category_id: taxCategoryId,
@@ -46,7 +46,7 @@ describe('Factory: Charge', () => {
46
46
  });
47
47
 
48
48
  it('should accept user_description in params', () => {
49
- const ownerId = makeUUID('test-owner');
49
+ const ownerId = makeUUID('business', 'test-owner');
50
50
  const charge = createCharge({
51
51
  owner_id: ownerId,
52
52
  user_description: 'Office supplies',
@@ -56,8 +56,8 @@ describe('Factory: Charge', () => {
56
56
  });
57
57
 
58
58
  it('should apply overrides correctly', () => {
59
- const ownerId = makeUUID('test-owner');
60
- const customId = makeUUID('custom-charge');
59
+ const ownerId = makeUUID('business', 'test-owner');
60
+ const customId = makeUUID('charge', 'custom-charge');
61
61
  const charge = createCharge(
62
62
  { owner_id: ownerId },
63
63
  {
@@ -77,7 +77,7 @@ describe('Factory: Charge', () => {
77
77
  });
78
78
 
79
79
  it('should allow partial overrides', () => {
80
- const ownerId = makeUUID('test-owner');
80
+ const ownerId = makeUUID('business', 'test-owner');
81
81
  const charge = createCharge(
82
82
  {
83
83
  owner_id: ownerId,
@@ -95,7 +95,7 @@ describe('Factory: Charge', () => {
95
95
  });
96
96
 
97
97
  it('should preserve all required fields', () => {
98
- const ownerId = makeUUID('test-owner');
98
+ const ownerId = makeUUID('business', 'test-owner');
99
99
  const charge = createCharge({ owner_id: ownerId });
100
100
 
101
101
  // Verify structure matches expected interface
@@ -110,9 +110,9 @@ describe('Factory: Charge', () => {
110
110
  });
111
111
 
112
112
  it('should handle all params and overrides together', () => {
113
- const ownerId = makeUUID('test-owner');
114
- const taxCategoryId = makeUUID('tax-cat-2');
115
- const customId = makeUUID('custom-charge-2');
113
+ const ownerId = makeUUID('business', 'test-owner');
114
+ const taxCategoryId = makeUUID('tax-category', 'tax-cat-2');
115
+ const customId = makeUUID('charge', 'custom-charge-2');
116
116
 
117
117
  const charge = createCharge(
118
118
  {
@@ -140,7 +140,7 @@ describe('Factory: Charge', () => {
140
140
  });
141
141
 
142
142
  it('should allow explicit null overrides', () => {
143
- const ownerId = makeUUID('test-owner');
143
+ const ownerId = makeUUID('business', 'test-owner');
144
144
  const charge = createCharge(
145
145
  { owner_id: ownerId },
146
146
  {
@@ -11,7 +11,7 @@
11
11
  * @see packages/migrations/src/actions/*-charges-*.ts (migrations)
12
12
  */
13
13
 
14
- import { makeUUID } from './ids.js';
14
+ import { makeUUID, makeUUIDLegacy } from '../../demo-fixtures/helpers/deterministic-uuid.js';
15
15
 
16
16
  /**
17
17
  * Charge insert parameters shape
@@ -42,24 +42,24 @@ export interface ChargeInsertParams {
42
42
  * - tax_category_id defaults to deterministic UUID if not provided
43
43
  * - user_description defaults to null (will be auto-generated by database if needed)
44
44
  * - type defaults to null (database will determine based on related records)
45
- * - accountant_status defaults to null
46
- * - optional_vat defaults to null (uses tax category default)
47
- * - documents_optional_flag defaults to null (uses business default)
45
+ * - accountant_status defaults to 'PENDING' (database requires NOT NULL)
46
+ * - optional_vat defaults to false (database requires NOT NULL)
47
+ * - documents_optional_flag defaults to false (database requires NOT NULL)
48
48
  * - id defaults to deterministic UUID if not provided
49
49
  *
50
50
  * @example
51
51
  * ```typescript
52
52
  * // Minimal charge with required fields
53
53
  * const charge = createCharge({
54
- * owner_id: makeUUID('test-owner'),
55
- * tax_category_id: makeUUID('tax-cat-1'),
54
+ * owner_id: makeUUID('business', 'test-owner'),
55
+ * tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
56
56
  * });
57
57
  *
58
58
  * // Charge with user description
59
59
  * const descCharge = createCharge(
60
60
  * {
61
- * owner_id: makeUUID('test-owner'),
62
- * tax_category_id: makeUUID('tax-cat-1'),
61
+ * owner_id: makeUUID('business', 'test-owner'),
62
+ * tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
63
63
  * user_description: 'Office supplies purchase',
64
64
  * }
65
65
  * );
@@ -67,8 +67,8 @@ export interface ChargeInsertParams {
67
67
  * // Charge with overrides
68
68
  * const customCharge = createCharge(
69
69
  * {
70
- * owner_id: makeUUID('test-owner'),
71
- * tax_category_id: makeUUID('tax-cat-1'),
70
+ * owner_id: makeUUID('business', 'test-owner'),
71
+ * tax_category_id: makeUUID('tax-category', 'tax-cat-1'),
72
72
  * },
73
73
  * {
74
74
  * type: 'PAYROLL',
@@ -87,14 +87,14 @@ export function createCharge(
87
87
  overrides?: Partial<ChargeInsertParams>,
88
88
  ): ChargeInsertParams {
89
89
  return {
90
- id: makeUUID(),
90
+ id: makeUUIDLegacy(),
91
91
  owner_id: params.owner_id,
92
92
  type: null,
93
- accountant_status: 'PENDING', // Database requires NOT NULL, default to PENDING
93
+ accountant_status: 'PENDING',
94
94
  user_description: params.user_description ?? null,
95
- tax_category_id: params.tax_category_id ?? makeUUID('default-tax-category'),
96
- optional_vat: false, // Database requires NOT NULL
97
- documents_optional_flag: false, // Database requires NOT NULL
95
+ tax_category_id: params.tax_category_id ?? makeUUID('tax-category', 'default-tax-category'),
96
+ optional_vat: false,
97
+ documents_optional_flag: false,
98
98
  ...overrides,
99
99
  };
100
- }
100
+ }
@@ -1,14 +1,14 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
  import { UUID_REGEX } from '../../shared/constants.js';
3
3
  import { createDocument } from './document.js';
4
- import { makeUUID } from './ids.js';
4
+ import { makeUUID } from '../../demo-fixtures/helpers/deterministic-uuid.js';
5
5
 
6
6
  describe('Factory: Document', () => {
7
7
  describe('createDocument', () => {
8
8
  it('should create document with required fields', () => {
9
- const chargeId = makeUUID('charge-1');
10
- const creditorId = makeUUID('supplier-1');
11
- const debtorId = makeUUID('my-business');
9
+ const chargeId = makeUUID('charge', 'charge-1');
10
+ const creditorId = makeUUID('business', 'supplier-1');
11
+ const debtorId = makeUUID('business', 'my-business');
12
12
 
13
13
  const document = createDocument({
14
14
  charge_id: chargeId,
@@ -46,9 +46,9 @@ describe('Factory: Document', () => {
46
46
  });
47
47
 
48
48
  it('should generate unique IDs by default', () => {
49
- const chargeId = makeUUID('charge-1');
50
- const creditorId = makeUUID('supplier-1');
51
- const debtorId = makeUUID('my-business');
49
+ const chargeId = makeUUID('charge', 'charge-1');
50
+ const creditorId = makeUUID('business', 'supplier-1');
51
+ const debtorId = makeUUID('business', 'my-business');
52
52
 
53
53
  const document1 = createDocument({
54
54
  charge_id: chargeId,
@@ -74,9 +74,9 @@ describe('Factory: Document', () => {
74
74
  });
75
75
 
76
76
  it('should accept Date object for date field', () => {
77
- const chargeId = makeUUID('charge-1');
78
- const creditorId = makeUUID('supplier-1');
79
- const debtorId = makeUUID('my-business');
77
+ const chargeId = makeUUID('charge', 'charge-1');
78
+ const creditorId = makeUUID('business', 'supplier-1');
79
+ const debtorId = makeUUID('business', 'my-business');
80
80
  const date = new Date('2024-03-15T12:00:00Z');
81
81
 
82
82
  const document = createDocument({
@@ -93,9 +93,9 @@ describe('Factory: Document', () => {
93
93
  });
94
94
 
95
95
  it('should handle different document types', () => {
96
- const chargeId = makeUUID('charge-1');
97
- const creditorId = makeUUID('supplier-1');
98
- const debtorId = makeUUID('my-business');
96
+ const chargeId = makeUUID('charge', 'charge-1');
97
+ const creditorId = makeUUID('business', 'supplier-1');
98
+ const debtorId = makeUUID('business', 'my-business');
99
99
 
100
100
  const invoice = createDocument({
101
101
  charge_id: chargeId,
@@ -133,10 +133,10 @@ describe('Factory: Document', () => {
133
133
  });
134
134
 
135
135
  it('should apply overrides correctly', () => {
136
- const chargeId = makeUUID('charge-1');
137
- const creditorId = makeUUID('supplier-1');
138
- const debtorId = makeUUID('my-business');
139
- const customId = makeUUID('custom-doc');
136
+ const chargeId = makeUUID('charge', 'charge-1');
137
+ const creditorId = makeUUID('business', 'supplier-1');
138
+ const debtorId = makeUUID('business', 'my-business');
139
+ const customId = makeUUID('document', 'custom-doc');
140
140
 
141
141
  const document = createDocument(
142
142
  {
@@ -165,9 +165,9 @@ describe('Factory: Document', () => {
165
165
  });
166
166
 
167
167
  it('should allow partial overrides', () => {
168
- const chargeId = makeUUID('charge-1');
169
- const creditorId = makeUUID('customer-1');
170
- const debtorId = makeUUID('my-business');
168
+ const chargeId = makeUUID('charge', 'charge-1');
169
+ const creditorId = makeUUID('business', 'customer-1');
170
+ const debtorId = makeUUID('business', 'my-business');
171
171
 
172
172
  const document = createDocument(
173
173
  {
@@ -192,9 +192,9 @@ describe('Factory: Document', () => {
192
192
  });
193
193
 
194
194
  it('should preserve all required fields', () => {
195
- const chargeId = makeUUID('charge-1');
196
- const creditorId = makeUUID('supplier-1');
197
- const debtorId = makeUUID('my-business');
195
+ const chargeId = makeUUID('charge', 'charge-1');
196
+ const creditorId = makeUUID('business', 'customer-1');
197
+ const debtorId = makeUUID('business', 'my-business');
198
198
 
199
199
  const document = createDocument({
200
200
  charge_id: chargeId,
@@ -227,9 +227,9 @@ describe('Factory: Document', () => {
227
227
  });
228
228
 
229
229
  it('should handle different currency codes', () => {
230
- const chargeId = makeUUID('charge-1');
231
- const creditorId = makeUUID('supplier-1');
232
- const debtorId = makeUUID('my-business');
230
+ const chargeId = makeUUID('charge', 'charge-1');
231
+ const creditorId = makeUUID('business', 'supplier-1');
232
+ const debtorId = makeUUID('business', 'my-business');
233
233
 
234
234
  const ilsDoc = createDocument({
235
235
  charge_id: chargeId,
@@ -267,9 +267,9 @@ describe('Factory: Document', () => {
267
267
  });
268
268
 
269
269
  it('should handle VAT amount', () => {
270
- const chargeId = makeUUID('charge-1');
271
- const creditorId = makeUUID('supplier-1');
272
- const debtorId = makeUUID('my-business');
270
+ const chargeId = makeUUID('charge', 'charge-1');
271
+ const creditorId = makeUUID('business', 'supplier-1');
272
+ const debtorId = makeUUID('business', 'my-business');
273
273
 
274
274
  const document = createDocument(
275
275
  {
@@ -291,9 +291,9 @@ describe('Factory: Document', () => {
291
291
  });
292
292
 
293
293
  it('should handle file URLs and image URLs', () => {
294
- const chargeId = makeUUID('charge-1');
295
- const creditorId = makeUUID('supplier-1');
296
- const debtorId = makeUUID('my-business');
294
+ const chargeId = makeUUID('charge', 'charge-1');
295
+ const creditorId = makeUUID('business', 'supplier-1');
296
+ const debtorId = makeUUID('business', 'my-business');
297
297
 
298
298
  const document = createDocument(
299
299
  {
@@ -316,9 +316,9 @@ describe('Factory: Document', () => {
316
316
  });
317
317
 
318
318
  it('should handle negative amounts for credit invoices', () => {
319
- const chargeId = makeUUID('charge-1');
320
- const creditorId = makeUUID('supplier-1');
321
- const debtorId = makeUUID('my-business');
319
+ const chargeId = makeUUID('charge', 'charge-1');
320
+ const creditorId = makeUUID('business', 'supplier-1');
321
+ const debtorId = makeUUID('business', 'my-business');
322
322
 
323
323
  const creditInvoice = createDocument({
324
324
  charge_id: chargeId,
@@ -335,9 +335,9 @@ describe('Factory: Document', () => {
335
335
  });
336
336
 
337
337
  it('should allow explicit null overrides', () => {
338
- const chargeId = makeUUID('charge-1');
339
- const creditorId = makeUUID('supplier-1');
340
- const debtorId = makeUUID('my-business');
338
+ const chargeId = makeUUID('charge', 'charge-1');
339
+ const creditorId = makeUUID('business', 'supplier-1');
340
+ const debtorId = makeUUID('business', 'my-business');
341
341
 
342
342
  const document = createDocument(
343
343
  {