@accounter/server 0.0.9-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d → 0.0.9-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e

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 (69) hide show
  1. package/CHANGELOG.md +16 -8
  2. package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js +45 -122
  3. package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js.map +1 -1
  4. package/dist/server/src/modules/charges-matcher/__tests__/auto-match.test.js +45 -29
  5. package/dist/server/src/modules/charges-matcher/__tests__/auto-match.test.js.map +1 -1
  6. package/dist/server/src/modules/charges-matcher/__tests__/charge-validator.test.js +2 -11
  7. package/dist/server/src/modules/charges-matcher/__tests__/charge-validator.test.js.map +1 -1
  8. package/dist/server/src/modules/charges-matcher/__tests__/date-confidence.test.js +25 -0
  9. package/dist/server/src/modules/charges-matcher/__tests__/date-confidence.test.js.map +1 -1
  10. package/dist/server/src/modules/charges-matcher/__tests__/document-aggregator.test.js.map +1 -1
  11. package/dist/server/src/modules/charges-matcher/__tests__/document-amount.test.js +65 -64
  12. package/dist/server/src/modules/charges-matcher/__tests__/document-amount.test.js.map +1 -1
  13. package/dist/server/src/modules/charges-matcher/__tests__/match-scorer.test.js +494 -60
  14. package/dist/server/src/modules/charges-matcher/__tests__/match-scorer.test.js.map +1 -1
  15. package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js +34 -98
  16. package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js.map +1 -1
  17. package/dist/server/src/modules/charges-matcher/__tests__/single-match.test.js +79 -59
  18. package/dist/server/src/modules/charges-matcher/__tests__/single-match.test.js.map +1 -1
  19. package/dist/server/src/modules/charges-matcher/helpers/charge-validator.helper.js +6 -4
  20. package/dist/server/src/modules/charges-matcher/helpers/charge-validator.helper.js.map +1 -1
  21. package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.d.ts +9 -2
  22. package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.js +24 -2
  23. package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.js.map +1 -1
  24. package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.d.ts +1 -4
  25. package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.js +2 -1
  26. package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.js.map +1 -1
  27. package/dist/server/src/modules/charges-matcher/index.d.ts +0 -1
  28. package/dist/server/src/modules/charges-matcher/index.js +0 -1
  29. package/dist/server/src/modules/charges-matcher/index.js.map +1 -1
  30. package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.d.ts +2 -1
  31. package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.js +2 -2
  32. package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.js.map +1 -1
  33. package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js +2 -2
  34. package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js.map +1 -1
  35. package/dist/server/src/modules/charges-matcher/providers/document-aggregator.d.ts +4 -5
  36. package/dist/server/src/modules/charges-matcher/providers/document-aggregator.js +5 -4
  37. package/dist/server/src/modules/charges-matcher/providers/document-aggregator.js.map +1 -1
  38. package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.d.ts +5 -3
  39. package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.js +70 -13
  40. package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.js.map +1 -1
  41. package/dist/server/src/modules/charges-matcher/providers/single-match.provider.d.ts +4 -2
  42. package/dist/server/src/modules/charges-matcher/providers/single-match.provider.js +15 -7
  43. package/dist/server/src/modules/charges-matcher/providers/single-match.provider.js.map +1 -1
  44. package/dist/server/src/modules/charges-matcher/providers/transaction-aggregator.d.ts +1 -1
  45. package/dist/server/src/modules/charges-matcher/types.d.ts +2 -4
  46. package/dist/server/src/modules/charges-matcher/types.js.map +1 -1
  47. package/package.json +2 -2
  48. package/src/modules/charges-matcher/README.md +14 -3
  49. package/src/modules/charges-matcher/__tests__/auto-match-integration.test.ts +52 -100
  50. package/src/modules/charges-matcher/__tests__/auto-match.test.ts +51 -29
  51. package/src/modules/charges-matcher/__tests__/charge-validator.test.ts +2 -13
  52. package/src/modules/charges-matcher/__tests__/date-confidence.test.ts +29 -0
  53. package/src/modules/charges-matcher/__tests__/document-aggregator.test.ts +0 -1
  54. package/src/modules/charges-matcher/__tests__/document-amount.test.ts +66 -65
  55. package/src/modules/charges-matcher/__tests__/match-scorer.test.ts +552 -60
  56. package/src/modules/charges-matcher/__tests__/single-match-integration.test.ts +43 -73
  57. package/src/modules/charges-matcher/__tests__/single-match.test.ts +81 -59
  58. package/src/modules/charges-matcher/documentation/SPEC.md +276 -4
  59. package/src/modules/charges-matcher/helpers/charge-validator.helper.ts +7 -5
  60. package/src/modules/charges-matcher/helpers/date-confidence.helper.ts +32 -2
  61. package/src/modules/charges-matcher/helpers/document-amount.helper.ts +2 -12
  62. package/src/modules/charges-matcher/index.ts +0 -1
  63. package/src/modules/charges-matcher/providers/auto-match.provider.ts +5 -3
  64. package/src/modules/charges-matcher/providers/charges-matcher.provider.ts +8 -2
  65. package/src/modules/charges-matcher/providers/document-aggregator.ts +12 -11
  66. package/src/modules/charges-matcher/providers/match-scorer.provider.ts +97 -17
  67. package/src/modules/charges-matcher/providers/single-match.provider.ts +21 -8
  68. package/src/modules/charges-matcher/providers/transaction-aggregator.ts +1 -1
  69. package/src/modules/charges-matcher/types.ts +2 -5
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @accounter/server
2
2
 
3
- ## 0.0.9-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d
3
+ ## 0.0.9-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e
4
4
 
5
5
  ### Patch Changes
6
6
 
@@ -143,9 +143,9 @@
143
143
  - Updated dependency [`zod@4.2.1` ↗︎](https://www.npmjs.com/package/zod/v/4.2.1) (from `4.2.0`, in
144
144
  `dependencies`)
145
145
 
146
- - [#2833](https://github.com/Urigo/accounter-fullstack/pull/2833)
147
- [`5101bed`](https://github.com/Urigo/accounter-fullstack/commit/5101bede64671d83d5e8ffd157e90a3623f9bd1e)
148
- Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
146
+ - [#2834](https://github.com/Urigo/accounter-fullstack/pull/2834)
147
+ [`1478c7a`](https://github.com/Urigo/accounter-fullstack/commit/1478c7a185bff8c5b97686388c348c7fe6dc3207)
148
+ Thanks [@gilgardosh](https://github.com/gilgardosh)! - dependencies updates:
149
149
  - Updated dependency [`ai@5.0.114` ↗︎](https://www.npmjs.com/package/ai/v/5.0.114) (from `5.0.113`,
150
150
  in `dependencies`)
151
151
 
@@ -353,6 +353,14 @@
353
353
  test fixtures and demo data, making it easier to reference specific entities in documentation
354
354
  and external links without fear of IDs changing.
355
355
 
356
+ - [#2834](https://github.com/Urigo/accounter-fullstack/pull/2834)
357
+ [`65f961a`](https://github.com/Urigo/accounter-fullstack/commit/65f961a4072436d7f1042ea8ea4d96534cb3650e)
358
+ Thanks [@gilgardosh](https://github.com/gilgardosh)! - - Introduced client-aware date confidence
359
+ scoring with gentle mode for eligible scenarios
360
+ - Converted matching functions to async to support DataLoader-based client and status lookups
361
+ - Consolidated DocumentType usage from database string literals to shared enums
362
+ - Added PROFORMA to accounting document types to enable gentle scoring eligibility
363
+
356
364
  - [#2754](https://github.com/Urigo/accounter-fullstack/pull/2754)
357
365
  [`92d8cb1`](https://github.com/Urigo/accounter-fullstack/commit/92d8cb161398c2681d22fc1d390143f1cdc2e8eb)
358
366
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Database Cleanup**: A new migration has
@@ -408,10 +416,10 @@
408
416
  [`ca5e62b`](https://github.com/Urigo/accounter-fullstack/commit/ca5e62b91faaf33c99ac178575304797150efe1a),
409
417
  [`73b11ba`](https://github.com/Urigo/accounter-fullstack/commit/73b11ba1fd676a21b4ba44fe99e2bfd181e513dc),
410
418
  [`c7d6f21`](https://github.com/Urigo/accounter-fullstack/commit/c7d6f21ed62658159b1323334501daca03c8d3e5)]:
411
- - @accounter/green-invoice-graphql@0.8.3-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d
412
- - @accounter/pcn874-generator@0.6.4-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d
413
- - @accounter/shaam-uniform-format-generator@0.2.3-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d
414
- - @accounter/shaam6111-generator@0.1.5-alpha-20251217093036-7168648b507d62946aa287af4ea690b73b077b2d
419
+ - @accounter/green-invoice-graphql@0.8.3-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e
420
+ - @accounter/pcn874-generator@0.6.4-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e
421
+ - @accounter/shaam-uniform-format-generator@0.2.3-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e
422
+ - @accounter/shaam6111-generator@0.1.5-alpha-20251217131153-65f961a4072436d7f1042ea8ea4d96534cb3650e
415
423
 
416
424
  ## 0.0.8
417
425
 
@@ -19,12 +19,46 @@ vi.mock('../../transactions/providers/transactions.provider.js', () => ({
19
19
  TransactionsProvider: class {
20
20
  },
21
21
  }));
22
+ vi.mock('../../financial-entities/providers/clients.provider.js', () => ({
23
+ ClientsProvider: class {
24
+ },
25
+ }));
22
26
  vi.mock('../../charges/helpers/merge-charges.helper.js', () => ({
23
27
  mergeChargesExecutor: vi.fn(),
24
28
  }));
25
29
  vi.mock('../../../shared/helpers/index.js', () => ({
26
30
  dateToTimelessDateString: (date) => date.toISOString().split('T')[0],
27
31
  }));
32
+ const getMockInjector = (mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider) => ({
33
+ get: vi.fn((token) => {
34
+ if (token.name === 'ChargesProvider')
35
+ return mockChargesProvider ?? {
36
+ getChargesByFilters: vi.fn(() => Promise.resolve([])),
37
+ };
38
+ if (token.name === 'TransactionsProvider')
39
+ return mockTransactionsProvider ?? {
40
+ transactionsByChargeIDLoader: {
41
+ load: vi.fn(() => Promise.resolve([])),
42
+ },
43
+ };
44
+ if (token.name === 'DocumentsProvider')
45
+ return mockDocumentsProvider ?? {
46
+ getDocumentsByChargeIdLoader: {
47
+ load: vi.fn(() => Promise.resolve([])),
48
+ },
49
+ };
50
+ if (token.name === 'ClientsProvider')
51
+ return {
52
+ getClientByIdLoader: {
53
+ load: (businessId) => {
54
+ const isRegisteredClient = businessId.startsWith('client-');
55
+ return Promise.resolve(isRegisteredClient ? { id: businessId } : null);
56
+ },
57
+ },
58
+ };
59
+ return null;
60
+ }),
61
+ });
28
62
  // Import after mocking
29
63
  const { ChargesMatcherProvider } = await import('../providers/charges-matcher.provider.js');
30
64
  const { mergeChargesExecutor } = await import('../../charges/helpers/merge-charges.helper.js');
@@ -43,30 +77,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
43
77
  });
44
78
  describe('autoMatchCharges', () => {
45
79
  it('should return 0 matches when database is empty', async () => {
46
- const mockChargesProvider = {
47
- getChargesByFilters: vi.fn(() => Promise.resolve([])),
48
- };
49
- const mockTransactionsProvider = {
50
- transactionsByChargeIDLoader: {
51
- load: vi.fn(() => Promise.resolve([])),
52
- },
53
- };
54
- const mockDocumentsProvider = {
55
- getDocumentsByChargeIdLoader: {
56
- load: vi.fn(() => Promise.resolve([])),
57
- },
58
- };
59
- const mockInjector = {
60
- get: vi.fn((token) => {
61
- if (token.name === 'ChargesProvider')
62
- return mockChargesProvider;
63
- if (token.name === 'TransactionsProvider')
64
- return mockTransactionsProvider;
65
- if (token.name === 'DocumentsProvider')
66
- return mockDocumentsProvider;
67
- return null;
68
- }),
69
- };
80
+ const mockInjector = getMockInjector();
70
81
  const provider = new ChargesMatcherProvider();
71
82
  const result = await provider.autoMatchCharges({
72
83
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -82,27 +93,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
82
93
  const mockChargesProvider = {
83
94
  getChargesByFilters: vi.fn(() => Promise.resolve([createCharge(matchedChargeId, ADMIN_BUSINESS_ID)])),
84
95
  };
85
- const mockTransactionsProvider = {
86
- transactionsByChargeIDLoader: {
87
- load: vi.fn(() => Promise.resolve([createMockTransaction()])),
88
- },
89
- };
90
- const mockDocumentsProvider = {
91
- getDocumentsByChargeIdLoader: {
92
- load: vi.fn(() => Promise.resolve([createMockDocument()])),
93
- },
94
- };
95
- const mockInjector = {
96
- get: vi.fn((token) => {
97
- if (token.name === 'ChargesProvider')
98
- return mockChargesProvider;
99
- if (token.name === 'TransactionsProvider')
100
- return mockTransactionsProvider;
101
- if (token.name === 'DocumentsProvider')
102
- return mockDocumentsProvider;
103
- return null;
104
- }),
105
- };
96
+ const mockInjector = getMockInjector(mockChargesProvider);
106
97
  const provider = new ChargesMatcherProvider();
107
98
  const result = await provider.autoMatchCharges({
108
99
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -155,17 +146,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
155
146
  }),
156
147
  },
157
148
  };
158
- const mockInjector = {
159
- get: vi.fn((token) => {
160
- if (token.name === 'ChargesProvider')
161
- return mockChargesProvider;
162
- if (token.name === 'TransactionsProvider')
163
- return mockTransactionsProvider;
164
- if (token.name === 'DocumentsProvider')
165
- return mockDocumentsProvider;
166
- return null;
167
- }),
168
- };
149
+ const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
169
150
  const provider = new ChargesMatcherProvider();
170
151
  const result = await provider.autoMatchCharges({
171
152
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -234,17 +215,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
234
215
  }),
235
216
  },
236
217
  };
237
- const mockInjector = {
238
- get: vi.fn((token) => {
239
- if (token.name === 'ChargesProvider')
240
- return mockChargesProvider;
241
- if (token.name === 'TransactionsProvider')
242
- return mockTransactionsProvider;
243
- if (token.name === 'DocumentsProvider')
244
- return mockDocumentsProvider;
245
- return null;
246
- }),
247
- };
218
+ const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
248
219
  const provider = new ChargesMatcherProvider();
249
220
  const result = await provider.autoMatchCharges({
250
221
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -306,17 +277,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
306
277
  }),
307
278
  },
308
279
  };
309
- const mockInjector = {
310
- get: vi.fn((token) => {
311
- if (token.name === 'ChargesProvider')
312
- return mockChargesProvider;
313
- if (token.name === 'TransactionsProvider')
314
- return mockTransactionsProvider;
315
- if (token.name === 'DocumentsProvider')
316
- return mockDocumentsProvider;
317
- return null;
318
- }),
319
- };
280
+ const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
320
281
  const provider = new ChargesMatcherProvider();
321
282
  const result = await provider.autoMatchCharges({
322
283
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -386,17 +347,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
386
347
  throw new Error('Merge failed for test');
387
348
  });
388
349
  mergeChargesExecutor.mockImplementationOnce(() => Promise.resolve());
389
- const mockInjector = {
390
- get: vi.fn((token) => {
391
- if (token.name === 'ChargesProvider')
392
- return mockChargesProvider;
393
- if (token.name === 'TransactionsProvider')
394
- return mockTransactionsProvider;
395
- if (token.name === 'DocumentsProvider')
396
- return mockDocumentsProvider;
397
- return null;
398
- }),
399
- };
350
+ const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
400
351
  const provider = new ChargesMatcherProvider();
401
352
  const result = await provider.autoMatchCharges({
402
353
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -439,17 +390,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
439
390
  }),
440
391
  },
441
392
  };
442
- const mockInjector = {
443
- get: vi.fn((token) => {
444
- if (token.name === 'ChargesProvider')
445
- return mockChargesProvider;
446
- if (token.name === 'TransactionsProvider')
447
- return mockTransactionsProvider;
448
- if (token.name === 'DocumentsProvider')
449
- return mockDocumentsProvider;
450
- return null;
451
- }),
452
- };
393
+ const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
453
394
  const provider = new ChargesMatcherProvider();
454
395
  await provider.autoMatchCharges({
455
396
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -489,17 +430,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
489
430
  }),
490
431
  },
491
432
  };
492
- const mockInjector = {
493
- get: vi.fn((token) => {
494
- if (token.name === 'ChargesProvider')
495
- return mockChargesProvider;
496
- if (token.name === 'TransactionsProvider')
497
- return mockTransactionsProvider;
498
- if (token.name === 'DocumentsProvider')
499
- return mockDocumentsProvider;
500
- return null;
501
- }),
502
- };
433
+ const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
503
434
  const provider = new ChargesMatcherProvider();
504
435
  const result = await provider.autoMatchCharges({
505
436
  adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID },
@@ -573,6 +504,8 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
573
504
  total_amount: 100,
574
505
  currency_code: 'USD',
575
506
  date: new Date('2024-01-15'),
507
+ debtor_id: ADMIN_BUSINESS_ID,
508
+ creditor_id: 'business-a',
576
509
  }),
577
510
  ]);
578
511
  }
@@ -602,17 +535,7 @@ describe('ChargesMatcherProvider - Auto-Match Integration', () => {
602
535
  }),
603
536
  },
604
537
  };
605
- const mockInjector = {
606
- get: vi.fn((token) => {
607
- if (token.name === 'ChargesProvider')
608
- return mockChargesProvider;
609
- if (token.name === 'TransactionsProvider')
610
- return mockTransactionsProvider;
611
- if (token.name === 'DocumentsProvider')
612
- return mockDocumentsProvider;
613
- return null;
614
- }),
615
- };
538
+ const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
616
539
  mergeChargesExecutor.mockImplementation(() => Promise.resolve());
617
540
  const provider = new ChargesMatcherProvider();
618
541
  const result = await provider.autoMatchCharges({
@@ -1 +1 @@
1
- {"version":3,"file":"auto-match-integration.test.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/__tests__/auto-match-integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-match-integration.test.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/__tests__/auto-match-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,29 @@
1
- import { describe, expect, it } from 'vitest';
1
+ import { describe, expect, it, vi } from 'vitest';
2
2
  import { determineMergeDirection, processChargeForAutoMatch, } from '../providers/auto-match.provider.js';
3
3
  import { createMockTransaction, createMockDocument } from './test-helpers.js';
4
+ // Mock DI system and ClientsProvider
5
+ vi.mock('../../financial-entities/providers/clients.provider.js', () => ({
6
+ ClientsProvider: class {
7
+ },
8
+ }));
4
9
  // Test constants
5
10
  const USER_ID = 'user-123';
6
11
  const BUSINESS_A = 'business-a';
12
+ // Create a mock injector for testing
13
+ const createMockInjector = () => ({
14
+ get: vi.fn((token) => {
15
+ if (token.name === 'ClientsProvider')
16
+ return {
17
+ getClientByIdLoader: {
18
+ load: (businessId) => {
19
+ const isRegisteredClient = businessId.startsWith('client-');
20
+ return Promise.resolve(isRegisteredClient ? { id: businessId } : null);
21
+ },
22
+ },
23
+ };
24
+ return null;
25
+ }),
26
+ });
7
27
  // Helper to create a charge with data
8
28
  function createCharge(overrides = {}) {
9
29
  return {
@@ -17,7 +37,7 @@ function createCharge(overrides = {}) {
17
37
  }
18
38
  describe('processChargeForAutoMatch', () => {
19
39
  describe('Single high-confidence match', () => {
20
- it('should return matched status when exactly one match >= 0.95', () => {
40
+ it('should return matched status when exactly one match >= 0.95', async () => {
21
41
  const sourceCharge = createCharge({
22
42
  chargeId: 'tx-charge-1',
23
43
  transactions: [
@@ -45,13 +65,13 @@ describe('processChargeForAutoMatch', () => {
45
65
  }),
46
66
  ],
47
67
  });
48
- const result = processChargeForAutoMatch(sourceCharge, [perfectMatch], USER_ID);
68
+ const result = await processChargeForAutoMatch(sourceCharge, [perfectMatch], USER_ID, createMockInjector());
49
69
  expect(result.status).toBe('matched');
50
70
  expect(result.match).not.toBeNull();
51
71
  expect(result.match?.chargeId).toBe('doc-charge-1');
52
72
  expect(result.match?.confidenceScore).toBeGreaterThanOrEqual(0.95);
53
73
  });
54
- it('should return matched status for score exactly at 0.95 threshold', () => {
74
+ it('should return matched status for score exactly at 0.95 threshold', async () => {
55
75
  const sourceCharge = createCharge({
56
76
  chargeId: 'tx-charge-1',
57
77
  transactions: [
@@ -78,12 +98,12 @@ describe('processChargeForAutoMatch', () => {
78
98
  }),
79
99
  ],
80
100
  });
81
- const result = processChargeForAutoMatch(sourceCharge, [nearThresholdMatch], USER_ID);
101
+ const result = await processChargeForAutoMatch(sourceCharge, [nearThresholdMatch], USER_ID, createMockInjector());
82
102
  expect(result.status).toBe('matched');
83
103
  expect(result.match).not.toBeNull();
84
104
  expect(result.match?.confidenceScore).toBeGreaterThanOrEqual(0.95);
85
105
  });
86
- it('should work with document source charge', () => {
106
+ it('should work with document source charge', async () => {
87
107
  const sourceCharge = createCharge({
88
108
  chargeId: 'doc-charge-1',
89
109
  transactions: [],
@@ -108,14 +128,14 @@ describe('processChargeForAutoMatch', () => {
108
128
  ],
109
129
  documents: [],
110
130
  });
111
- const result = processChargeForAutoMatch(sourceCharge, [perfectMatch], USER_ID);
131
+ const result = await processChargeForAutoMatch(sourceCharge, [perfectMatch], USER_ID, createMockInjector());
112
132
  expect(result.status).toBe('matched');
113
133
  expect(result.match).not.toBeNull();
114
134
  expect(result.match?.chargeId).toBe('tx-charge-1');
115
135
  });
116
136
  });
117
137
  describe('Multiple high-confidence matches', () => {
118
- it('should return skipped status when multiple matches >= 0.95', () => {
138
+ it('should return skipped status when multiple matches >= 0.95', async () => {
119
139
  const sourceCharge = createCharge({
120
140
  chargeId: 'tx-charge-1',
121
141
  transactions: [
@@ -152,12 +172,12 @@ describe('processChargeForAutoMatch', () => {
152
172
  }),
153
173
  ],
154
174
  });
155
- const result = processChargeForAutoMatch(sourceCharge, [match1, match2], USER_ID);
175
+ const result = await processChargeForAutoMatch(sourceCharge, [match1, match2], USER_ID, createMockInjector());
156
176
  expect(result.status).toBe('skipped');
157
177
  expect(result.match).toBeNull();
158
178
  expect(result.reason).toContain('ambiguous');
159
179
  });
160
- it('should skip even with many high-confidence matches', () => {
180
+ it('should skip even with many high-confidence matches', async () => {
161
181
  const sourceCharge = createCharge({
162
182
  chargeId: 'tx-charge-1',
163
183
  transactions: [
@@ -173,13 +193,13 @@ describe('processChargeForAutoMatch', () => {
173
193
  transactions: [],
174
194
  documents: [createMockDocument({ charge_id: `doc-charge-${i}`, total_amount: 100 })],
175
195
  }));
176
- const result = processChargeForAutoMatch(sourceCharge, candidates, USER_ID);
196
+ const result = await processChargeForAutoMatch(sourceCharge, candidates, USER_ID, createMockInjector());
177
197
  expect(result.status).toBe('skipped');
178
198
  expect(result.match).toBeNull();
179
199
  });
180
200
  });
181
201
  describe('No high-confidence matches', () => {
182
- it('should return no-match when best match is below 0.95 threshold', () => {
202
+ it('should return no-match when best match is below 0.95 threshold', async () => {
183
203
  const sourceCharge = createCharge({
184
204
  chargeId: 'tx-charge-1',
185
205
  transactions: [
@@ -205,23 +225,23 @@ describe('processChargeForAutoMatch', () => {
205
225
  }),
206
226
  ],
207
227
  });
208
- const result = processChargeForAutoMatch(sourceCharge, [poorMatch], USER_ID);
228
+ const result = await processChargeForAutoMatch(sourceCharge, [poorMatch], USER_ID, createMockInjector());
209
229
  expect(result.status).toBe('no-match');
210
230
  expect(result.match).toBeNull();
211
231
  expect(result.reason).toContain('below threshold');
212
232
  });
213
- it('should return no-match when no candidates exist', () => {
233
+ it('should return no-match when no candidates exist', async () => {
214
234
  const sourceCharge = createCharge({
215
235
  chargeId: 'tx-charge-1',
216
236
  transactions: [createMockTransaction()],
217
237
  documents: [],
218
238
  });
219
- const result = processChargeForAutoMatch(sourceCharge, [], USER_ID);
239
+ const result = await processChargeForAutoMatch(sourceCharge, [], USER_ID, createMockInjector());
220
240
  expect(result.status).toBe('no-match');
221
241
  expect(result.match).toBeNull();
222
242
  expect(result.reason).toContain('No candidates found');
223
243
  });
224
- it('should handle match just below threshold (0.949)', () => {
244
+ it('should handle match just below threshold (0.949)', async () => {
225
245
  const sourceCharge = createCharge({
226
246
  chargeId: 'tx-charge-1',
227
247
  transactions: [
@@ -247,34 +267,30 @@ describe('processChargeForAutoMatch', () => {
247
267
  }),
248
268
  ],
249
269
  });
250
- const result = processChargeForAutoMatch(sourceCharge, [nearMissMatch], USER_ID);
270
+ const result = await processChargeForAutoMatch(sourceCharge, [nearMissMatch], USER_ID, createMockInjector());
251
271
  // Should be no-match since it's below threshold
252
272
  expect(result.status).toBe('no-match');
253
273
  expect(result.match).toBeNull();
254
274
  });
255
275
  });
256
276
  describe('Edge cases and validation', () => {
257
- it('should throw error if source charge is already matched', () => {
277
+ it('should throw error if source charge is already matched', async () => {
258
278
  const matchedCharge = createCharge({
259
279
  chargeId: 'matched-charge',
260
280
  transactions: [createMockTransaction()],
261
281
  documents: [createMockDocument()],
262
282
  });
263
- expect(() => {
264
- processChargeForAutoMatch(matchedCharge, [], USER_ID);
265
- }).toThrow(/already matched/);
283
+ await expect(processChargeForAutoMatch(matchedCharge, [], USER_ID, createMockInjector())).rejects.toThrow(/already matched/);
266
284
  });
267
- it('should throw error if source charge has no transactions or documents', () => {
285
+ it('should throw error if source charge has no transactions or documents', async () => {
268
286
  const emptyCharge = createCharge({
269
287
  chargeId: 'empty-charge',
270
288
  transactions: [],
271
289
  documents: [],
272
290
  });
273
- expect(() => {
274
- processChargeForAutoMatch(emptyCharge, [], USER_ID);
275
- }).toThrow(/no transactions or documents/);
291
+ await expect(processChargeForAutoMatch(emptyCharge, [], USER_ID, createMockInjector())).rejects.toThrow(/no transactions or documents/);
276
292
  });
277
- it('should filter candidates to complementary type only', () => {
293
+ it('should filter candidates to complementary type only', async () => {
278
294
  const sourceCharge = createCharge({
279
295
  chargeId: 'tx-charge-1',
280
296
  transactions: [createMockTransaction({ amount: "100" })],
@@ -298,12 +314,12 @@ describe('processChargeForAutoMatch', () => {
298
314
  documents: [createMockDocument({ total_amount: 100 })],
299
315
  }),
300
316
  ];
301
- const result = processChargeForAutoMatch(sourceCharge, candidates, USER_ID);
317
+ const result = await processChargeForAutoMatch(sourceCharge, candidates, USER_ID, createMockInjector());
302
318
  // Should only consider document charges (doc-charge-1 and doc-charge-2)
303
319
  // Both are perfect matches, so should be skipped as ambiguous
304
320
  expect(result.status).toBe('skipped');
305
321
  });
306
- it('should handle various confidence levels correctly', () => {
322
+ it('should handle various confidence levels correctly', async () => {
307
323
  const sourceCharge = createCharge({
308
324
  chargeId: 'tx-charge-1',
309
325
  transactions: [
@@ -353,7 +369,7 @@ describe('processChargeForAutoMatch', () => {
353
369
  ],
354
370
  }),
355
371
  ];
356
- const result = processChargeForAutoMatch(sourceCharge, candidates, USER_ID);
372
+ const result = await processChargeForAutoMatch(sourceCharge, candidates, USER_ID, createMockInjector());
357
373
  // Only one match >= 0.95 (the perfect one)
358
374
  expect(result.status).toBe('matched');
359
375
  expect(result.match?.chargeId).toBe('doc-charge-perfect');