@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
|
@@ -22,10 +22,43 @@ vi.mock('../../transactions/providers/transactions.provider.js', () => ({
|
|
|
22
22
|
TransactionsProvider: class {},
|
|
23
23
|
}));
|
|
24
24
|
|
|
25
|
+
|
|
26
|
+
vi.mock('../../financial-entities/providers/clients.provider.js', () => ({
|
|
27
|
+
ClientsProvider: class {},
|
|
28
|
+
}));
|
|
29
|
+
|
|
25
30
|
vi.mock('../../../shared/helpers/index.js', () => ({
|
|
26
31
|
dateToTimelessDateString: (date: Date) => date.toISOString().split('T')[0],
|
|
27
32
|
}));
|
|
28
33
|
|
|
34
|
+
const getMockInjector = (mockChargesProvider?: {
|
|
35
|
+
getChargesByFilters?: (filters: any) => Promise<any[]>;
|
|
36
|
+
getChargeByIdLoader?: { load: (id: string) => Promise<any>};
|
|
37
|
+
},
|
|
38
|
+
mockTransactionsProvider?: {
|
|
39
|
+
transactionsByChargeIDLoader: { load: (id: string) => Promise<any[]>;
|
|
40
|
+
}},
|
|
41
|
+
mockDocumentsProvider?: {
|
|
42
|
+
getDocumentsByChargeIdLoader: { load: (id: string) => Promise<any[]>; };
|
|
43
|
+
}
|
|
44
|
+
) => ({
|
|
45
|
+
get: vi.fn((token: {name: string}) => {
|
|
46
|
+
if (token.name === 'ChargesProvider') return mockChargesProvider ?? null;
|
|
47
|
+
if (token.name === 'TransactionsProvider') return mockTransactionsProvider ?? null;
|
|
48
|
+
if (token.name === 'DocumentsProvider') return mockDocumentsProvider ?? null;
|
|
49
|
+
if (token.name === 'ClientsProvider')
|
|
50
|
+
return {
|
|
51
|
+
getClientByIdLoader: {
|
|
52
|
+
load: (businessId: string) => {
|
|
53
|
+
const isRegisteredClient = businessId.startsWith('client-');
|
|
54
|
+
return Promise.resolve(isRegisteredClient ? { id: businessId } : null);
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
return null;
|
|
59
|
+
}),
|
|
60
|
+
}) as Injector;
|
|
61
|
+
|
|
29
62
|
// Import after mocking
|
|
30
63
|
const { ChargesMatcherProvider } = await import('../providers/charges-matcher.provider.js');
|
|
31
64
|
|
|
@@ -118,14 +151,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
118
151
|
},
|
|
119
152
|
};
|
|
120
153
|
|
|
121
|
-
const mockInjector =
|
|
122
|
-
get: vi.fn((token: any) => {
|
|
123
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
124
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
125
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
126
|
-
return null;
|
|
127
|
-
}),
|
|
128
|
-
} as unknown as Injector;
|
|
154
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
129
155
|
|
|
130
156
|
// Execute
|
|
131
157
|
const provider = new ChargesMatcherProvider();
|
|
@@ -206,14 +232,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
206
232
|
},
|
|
207
233
|
};
|
|
208
234
|
|
|
209
|
-
const mockInjector =
|
|
210
|
-
get: vi.fn((token: any) => {
|
|
211
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
212
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
213
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
214
|
-
return null;
|
|
215
|
-
}),
|
|
216
|
-
} as unknown as Injector;
|
|
235
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
217
236
|
|
|
218
237
|
// Execute
|
|
219
238
|
const provider = new ChargesMatcherProvider();
|
|
@@ -232,12 +251,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
232
251
|
},
|
|
233
252
|
};
|
|
234
253
|
|
|
235
|
-
const mockInjector =
|
|
236
|
-
get: vi.fn((token: any) => {
|
|
237
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
238
|
-
return null;
|
|
239
|
-
}),
|
|
240
|
-
} as unknown as Injector;
|
|
254
|
+
const mockInjector = getMockInjector(mockChargesProvider);
|
|
241
255
|
|
|
242
256
|
const provider = new ChargesMatcherProvider();
|
|
243
257
|
|
|
@@ -267,14 +281,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
267
281
|
},
|
|
268
282
|
};
|
|
269
283
|
|
|
270
|
-
const mockInjector =
|
|
271
|
-
get: vi.fn((token: any) => {
|
|
272
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
273
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
274
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
275
|
-
return null;
|
|
276
|
-
}),
|
|
277
|
-
} as unknown as Injector;
|
|
284
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
278
285
|
|
|
279
286
|
const provider = new ChargesMatcherProvider();
|
|
280
287
|
|
|
@@ -304,14 +311,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
304
311
|
},
|
|
305
312
|
};
|
|
306
313
|
|
|
307
|
-
const mockInjector =
|
|
308
|
-
get: vi.fn((token: any) => {
|
|
309
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
310
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
311
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
312
|
-
return null;
|
|
313
|
-
}),
|
|
314
|
-
} as unknown as Injector;
|
|
314
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
315
315
|
|
|
316
316
|
const provider = new ChargesMatcherProvider();
|
|
317
317
|
|
|
@@ -342,14 +342,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
342
342
|
},
|
|
343
343
|
};
|
|
344
344
|
|
|
345
|
-
const mockInjector =
|
|
346
|
-
get: vi.fn((token: any) => {
|
|
347
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
348
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
349
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
350
|
-
return null;
|
|
351
|
-
}),
|
|
352
|
-
} as unknown as Injector;
|
|
345
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
353
346
|
|
|
354
347
|
const provider = new ChargesMatcherProvider();
|
|
355
348
|
const result = await provider.findMatchesForCharge(sourceChargeId, { adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID }, injector: mockInjector } as any);
|
|
@@ -394,14 +387,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
394
387
|
},
|
|
395
388
|
};
|
|
396
389
|
|
|
397
|
-
const mockInjector =
|
|
398
|
-
get: vi.fn((token: any) => {
|
|
399
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
400
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
401
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
402
|
-
return null;
|
|
403
|
-
}),
|
|
404
|
-
} as unknown as Injector;
|
|
390
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
405
391
|
|
|
406
392
|
const provider = new ChargesMatcherProvider();
|
|
407
393
|
const result = await provider.findMatchesForCharge(sourceChargeId, { adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID }, injector: mockInjector } as any);
|
|
@@ -465,14 +451,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
465
451
|
},
|
|
466
452
|
};
|
|
467
453
|
|
|
468
|
-
const mockInjector =
|
|
469
|
-
get: vi.fn((token: any) => {
|
|
470
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
471
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
472
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
473
|
-
return null;
|
|
474
|
-
}),
|
|
475
|
-
} as unknown as Injector;
|
|
454
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
476
455
|
|
|
477
456
|
const provider = new ChargesMatcherProvider();
|
|
478
457
|
const result = await provider.findMatchesForCharge(sourceChargeId, { adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID }, injector: mockInjector } as any);
|
|
@@ -483,9 +462,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
483
462
|
});
|
|
484
463
|
|
|
485
464
|
it('should throw error if user ID not in context', async () => {
|
|
486
|
-
const mockInjector =
|
|
487
|
-
get: vi.fn(() => null), // No user
|
|
488
|
-
} as unknown as Injector;
|
|
465
|
+
const mockInjector = getMockInjector();
|
|
489
466
|
|
|
490
467
|
const provider = new ChargesMatcherProvider();
|
|
491
468
|
|
|
@@ -531,14 +508,7 @@ describe('ChargesMatcherProvider - Integration Tests', () => {
|
|
|
531
508
|
},
|
|
532
509
|
};
|
|
533
510
|
|
|
534
|
-
const mockInjector =
|
|
535
|
-
get: vi.fn((token: any) => {
|
|
536
|
-
if (token.name === 'ChargesProvider') return mockChargesProvider;
|
|
537
|
-
if (token.name === 'TransactionsProvider') return mockTransactionsProvider;
|
|
538
|
-
if (token.name === 'DocumentsProvider') return mockDocumentsProvider;
|
|
539
|
-
return null;
|
|
540
|
-
}),
|
|
541
|
-
} as unknown as Injector;
|
|
511
|
+
const mockInjector = getMockInjector(mockChargesProvider, mockTransactionsProvider, mockDocumentsProvider);
|
|
542
512
|
|
|
543
513
|
const provider = new ChargesMatcherProvider();
|
|
544
514
|
const result = await provider.findMatchesForCharge(sourceChargeId, { adminContext: { defaultAdminBusinessId: ADMIN_BUSINESS_ID }, injector: mockInjector } as any);
|