@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.
- package/CHANGELOG.md +16 -8
- package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js +45 -122
- package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/auto-match.test.js +45 -29
- package/dist/server/src/modules/charges-matcher/__tests__/auto-match.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/charge-validator.test.js +2 -11
- package/dist/server/src/modules/charges-matcher/__tests__/charge-validator.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/date-confidence.test.js +25 -0
- package/dist/server/src/modules/charges-matcher/__tests__/date-confidence.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/document-aggregator.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/document-amount.test.js +65 -64
- package/dist/server/src/modules/charges-matcher/__tests__/document-amount.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/match-scorer.test.js +494 -60
- package/dist/server/src/modules/charges-matcher/__tests__/match-scorer.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js +34 -98
- package/dist/server/src/modules/charges-matcher/__tests__/single-match-integration.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/__tests__/single-match.test.js +79 -59
- package/dist/server/src/modules/charges-matcher/__tests__/single-match.test.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/helpers/charge-validator.helper.js +6 -4
- package/dist/server/src/modules/charges-matcher/helpers/charge-validator.helper.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.d.ts +9 -2
- package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.js +24 -2
- package/dist/server/src/modules/charges-matcher/helpers/date-confidence.helper.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.d.ts +1 -4
- package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.js +2 -1
- package/dist/server/src/modules/charges-matcher/helpers/document-amount.helper.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/index.d.ts +0 -1
- package/dist/server/src/modules/charges-matcher/index.js +0 -1
- package/dist/server/src/modules/charges-matcher/index.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.d.ts +2 -1
- package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.js +2 -2
- package/dist/server/src/modules/charges-matcher/providers/auto-match.provider.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js +2 -2
- package/dist/server/src/modules/charges-matcher/providers/charges-matcher.provider.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/providers/document-aggregator.d.ts +4 -5
- package/dist/server/src/modules/charges-matcher/providers/document-aggregator.js +5 -4
- package/dist/server/src/modules/charges-matcher/providers/document-aggregator.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.d.ts +5 -3
- package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.js +70 -13
- package/dist/server/src/modules/charges-matcher/providers/match-scorer.provider.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/providers/single-match.provider.d.ts +4 -2
- package/dist/server/src/modules/charges-matcher/providers/single-match.provider.js +15 -7
- package/dist/server/src/modules/charges-matcher/providers/single-match.provider.js.map +1 -1
- package/dist/server/src/modules/charges-matcher/providers/transaction-aggregator.d.ts +1 -1
- package/dist/server/src/modules/charges-matcher/types.d.ts +2 -4
- package/dist/server/src/modules/charges-matcher/types.js.map +1 -1
- package/package.json +2 -2
- package/src/modules/charges-matcher/README.md +14 -3
- package/src/modules/charges-matcher/__tests__/auto-match-integration.test.ts +52 -100
- package/src/modules/charges-matcher/__tests__/auto-match.test.ts +51 -29
- package/src/modules/charges-matcher/__tests__/charge-validator.test.ts +2 -13
- package/src/modules/charges-matcher/__tests__/date-confidence.test.ts +29 -0
- package/src/modules/charges-matcher/__tests__/document-aggregator.test.ts +0 -1
- package/src/modules/charges-matcher/__tests__/document-amount.test.ts +66 -65
- package/src/modules/charges-matcher/__tests__/match-scorer.test.ts +552 -60
- package/src/modules/charges-matcher/__tests__/single-match-integration.test.ts +43 -73
- package/src/modules/charges-matcher/__tests__/single-match.test.ts +81 -59
- package/src/modules/charges-matcher/documentation/SPEC.md +276 -4
- package/src/modules/charges-matcher/helpers/charge-validator.helper.ts +7 -5
- package/src/modules/charges-matcher/helpers/date-confidence.helper.ts +32 -2
- package/src/modules/charges-matcher/helpers/document-amount.helper.ts +2 -12
- package/src/modules/charges-matcher/index.ts +0 -1
- package/src/modules/charges-matcher/providers/auto-match.provider.ts +5 -3
- package/src/modules/charges-matcher/providers/charges-matcher.provider.ts +8 -2
- package/src/modules/charges-matcher/providers/document-aggregator.ts +12 -11
- package/src/modules/charges-matcher/providers/match-scorer.provider.ts +97 -17
- package/src/modules/charges-matcher/providers/single-match.provider.ts +21 -8
- package/src/modules/charges-matcher/providers/transaction-aggregator.ts +1 -1
- 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-
|
|
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
|
-
- [#
|
|
147
|
-
[`
|
|
148
|
-
Thanks [@
|
|
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-
|
|
412
|
-
- @accounter/pcn874-generator@0.6.4-alpha-
|
|
413
|
-
- @accounter/shaam-uniform-format-generator@0.2.3-alpha-
|
|
414
|
-
- @accounter/shaam6111-generator@0.1.5-alpha-
|
|
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
|
|
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
|
|
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({
|
package/dist/server/src/modules/charges-matcher/__tests__/auto-match-integration.test.js.map
CHANGED
|
@@ -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');
|