@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
|
@@ -1,182 +1,183 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
2
|
import { normalizeDocumentAmount, } from '../helpers/document-amount.helper.js';
|
|
3
|
+
import { DocumentType } from '../../../shared/enums.js';
|
|
3
4
|
describe('Document Amount Normalization', () => {
|
|
4
5
|
describe('INVOICE - Business is Debtor (User is Creditor)', () => {
|
|
5
6
|
it('should return positive amount when business is debtor', () => {
|
|
6
7
|
// Business owes user (user is creditor, business is debtor)
|
|
7
|
-
const result = normalizeDocumentAmount(100, false,
|
|
8
|
+
const result = normalizeDocumentAmount(100, false, DocumentType.Invoice);
|
|
8
9
|
expect(result).toBe(100);
|
|
9
10
|
});
|
|
10
11
|
it('should handle decimal amounts', () => {
|
|
11
|
-
const result = normalizeDocumentAmount(150.75, false,
|
|
12
|
+
const result = normalizeDocumentAmount(150.75, false, DocumentType.Invoice);
|
|
12
13
|
expect(result).toBe(150.75);
|
|
13
14
|
});
|
|
14
15
|
it('should handle large amounts', () => {
|
|
15
|
-
const result = normalizeDocumentAmount(1000000, false,
|
|
16
|
+
const result = normalizeDocumentAmount(1000000, false, DocumentType.Invoice);
|
|
16
17
|
expect(result).toBe(1000000);
|
|
17
18
|
});
|
|
18
19
|
});
|
|
19
20
|
describe('INVOICE - Business is Creditor (User is Debtor)', () => {
|
|
20
21
|
it('should return negative amount when business is creditor', () => {
|
|
21
22
|
// User owes business (user is debtor, business is creditor)
|
|
22
|
-
const result = normalizeDocumentAmount(100, true,
|
|
23
|
+
const result = normalizeDocumentAmount(100, true, DocumentType.Invoice);
|
|
23
24
|
expect(result).toBe(-100);
|
|
24
25
|
});
|
|
25
26
|
it('should handle decimal amounts', () => {
|
|
26
|
-
const result = normalizeDocumentAmount(250.50, true,
|
|
27
|
+
const result = normalizeDocumentAmount(250.50, true, DocumentType.Invoice);
|
|
27
28
|
expect(result).toBe(-250.50);
|
|
28
29
|
});
|
|
29
30
|
it('should handle large amounts', () => {
|
|
30
|
-
const result = normalizeDocumentAmount(5000000, true,
|
|
31
|
+
const result = normalizeDocumentAmount(5000000, true, DocumentType.Invoice);
|
|
31
32
|
expect(result).toBe(-5000000);
|
|
32
33
|
});
|
|
33
34
|
});
|
|
34
35
|
describe('CREDIT_INVOICE - Business is Debtor (User is Creditor)', () => {
|
|
35
36
|
it('should return negative amount for credit invoice with business debtor', () => {
|
|
36
37
|
// Credit invoice: user owes refund to business (opposite of regular invoice)
|
|
37
|
-
const result = normalizeDocumentAmount(100, false,
|
|
38
|
+
const result = normalizeDocumentAmount(100, false, DocumentType.CreditInvoice);
|
|
38
39
|
expect(result).toBe(-100);
|
|
39
40
|
});
|
|
40
41
|
it('should handle decimal amounts', () => {
|
|
41
|
-
const result = normalizeDocumentAmount(75.25, false,
|
|
42
|
+
const result = normalizeDocumentAmount(75.25, false, DocumentType.CreditInvoice);
|
|
42
43
|
expect(result).toBe(-75.25);
|
|
43
44
|
});
|
|
44
45
|
it('should handle large amounts', () => {
|
|
45
|
-
const result = normalizeDocumentAmount(2000000, false,
|
|
46
|
+
const result = normalizeDocumentAmount(2000000, false, DocumentType.CreditInvoice);
|
|
46
47
|
expect(result).toBe(-2000000);
|
|
47
48
|
});
|
|
48
49
|
});
|
|
49
50
|
describe('CREDIT_INVOICE - Business is Creditor (User is Debtor)', () => {
|
|
50
51
|
it('should return positive amount for credit invoice with business creditor (double negation)', () => {
|
|
51
52
|
// Credit invoice: business owes refund to user (double negation: -1 * -1 = 1)
|
|
52
|
-
const result = normalizeDocumentAmount(100, true,
|
|
53
|
+
const result = normalizeDocumentAmount(100, true, DocumentType.CreditInvoice);
|
|
53
54
|
expect(result).toBe(100);
|
|
54
55
|
});
|
|
55
56
|
it('should handle decimal amounts', () => {
|
|
56
|
-
const result = normalizeDocumentAmount(125.99, true,
|
|
57
|
+
const result = normalizeDocumentAmount(125.99, true, DocumentType.CreditInvoice);
|
|
57
58
|
expect(result).toBe(125.99);
|
|
58
59
|
});
|
|
59
60
|
it('should handle large amounts', () => {
|
|
60
|
-
const result = normalizeDocumentAmount(3000000, true,
|
|
61
|
+
const result = normalizeDocumentAmount(3000000, true, DocumentType.CreditInvoice);
|
|
61
62
|
expect(result).toBe(3000000);
|
|
62
63
|
});
|
|
63
64
|
});
|
|
64
65
|
describe('RECEIPT - Business is Debtor (User is Creditor)', () => {
|
|
65
66
|
it('should return positive amount when business is debtor', () => {
|
|
66
|
-
const result = normalizeDocumentAmount(100, false,
|
|
67
|
+
const result = normalizeDocumentAmount(100, false, DocumentType.Receipt);
|
|
67
68
|
expect(result).toBe(100);
|
|
68
69
|
});
|
|
69
70
|
it('should handle typical receipt amounts', () => {
|
|
70
|
-
const result = normalizeDocumentAmount(49.99, false,
|
|
71
|
+
const result = normalizeDocumentAmount(49.99, false, DocumentType.Receipt);
|
|
71
72
|
expect(result).toBe(49.99);
|
|
72
73
|
});
|
|
73
74
|
});
|
|
74
75
|
describe('RECEIPT - Business is Creditor (User is Debtor)', () => {
|
|
75
76
|
it('should return negative amount when business is creditor', () => {
|
|
76
|
-
const result = normalizeDocumentAmount(100, true,
|
|
77
|
+
const result = normalizeDocumentAmount(100, true, DocumentType.Receipt);
|
|
77
78
|
expect(result).toBe(-100);
|
|
78
79
|
});
|
|
79
80
|
it('should handle typical receipt amounts', () => {
|
|
80
|
-
const result = normalizeDocumentAmount(89.50, true,
|
|
81
|
+
const result = normalizeDocumentAmount(89.50, true, DocumentType.Receipt);
|
|
81
82
|
expect(result).toBe(-89.50);
|
|
82
83
|
});
|
|
83
84
|
});
|
|
84
85
|
describe('INVOICE_RECEIPT - Business is Debtor (User is Creditor)', () => {
|
|
85
86
|
it('should return positive amount when business is debtor', () => {
|
|
86
|
-
const result = normalizeDocumentAmount(100, false,
|
|
87
|
+
const result = normalizeDocumentAmount(100, false, DocumentType.InvoiceReceipt);
|
|
87
88
|
expect(result).toBe(100);
|
|
88
89
|
});
|
|
89
90
|
it('should handle combined invoice-receipt amounts', () => {
|
|
90
|
-
const result = normalizeDocumentAmount(350.00, false,
|
|
91
|
+
const result = normalizeDocumentAmount(350.00, false, DocumentType.InvoiceReceipt);
|
|
91
92
|
expect(result).toBe(350.00);
|
|
92
93
|
});
|
|
93
94
|
});
|
|
94
95
|
describe('INVOICE_RECEIPT - Business is Creditor (User is Debtor)', () => {
|
|
95
96
|
it('should return negative amount when business is creditor', () => {
|
|
96
|
-
const result = normalizeDocumentAmount(100, true,
|
|
97
|
+
const result = normalizeDocumentAmount(100, true, DocumentType.InvoiceReceipt);
|
|
97
98
|
expect(result).toBe(-100);
|
|
98
99
|
});
|
|
99
100
|
it('should handle combined invoice-receipt amounts', () => {
|
|
100
|
-
const result = normalizeDocumentAmount(425.75, true,
|
|
101
|
+
const result = normalizeDocumentAmount(425.75, true, DocumentType.InvoiceReceipt);
|
|
101
102
|
expect(result).toBe(-425.75);
|
|
102
103
|
});
|
|
103
104
|
});
|
|
104
105
|
describe('OTHER Document Type', () => {
|
|
105
106
|
it('should handle OTHER type with business debtor', () => {
|
|
106
|
-
const result = normalizeDocumentAmount(100, false,
|
|
107
|
+
const result = normalizeDocumentAmount(100, false, DocumentType.Other);
|
|
107
108
|
expect(result).toBe(100);
|
|
108
109
|
});
|
|
109
110
|
it('should handle OTHER type with business creditor', () => {
|
|
110
|
-
const result = normalizeDocumentAmount(100, true,
|
|
111
|
+
const result = normalizeDocumentAmount(100, true, DocumentType.Other);
|
|
111
112
|
expect(result).toBe(-100);
|
|
112
113
|
});
|
|
113
114
|
});
|
|
114
115
|
describe('PROFORMA Document Type', () => {
|
|
115
116
|
it('should handle PROFORMA type with business debtor', () => {
|
|
116
|
-
const result = normalizeDocumentAmount(100, false,
|
|
117
|
+
const result = normalizeDocumentAmount(100, false, DocumentType.Proforma);
|
|
117
118
|
expect(result).toBe(100);
|
|
118
119
|
});
|
|
119
120
|
it('should handle PROFORMA type with business creditor', () => {
|
|
120
|
-
const result = normalizeDocumentAmount(100, true,
|
|
121
|
+
const result = normalizeDocumentAmount(100, true, DocumentType.Proforma);
|
|
121
122
|
expect(result).toBe(-100);
|
|
122
123
|
});
|
|
123
124
|
});
|
|
124
125
|
describe('UNPROCESSED Document Type', () => {
|
|
125
126
|
it('should handle UNPROCESSED type with business debtor', () => {
|
|
126
|
-
const result = normalizeDocumentAmount(100, false,
|
|
127
|
+
const result = normalizeDocumentAmount(100, false, DocumentType.Unprocessed);
|
|
127
128
|
expect(result).toBe(100);
|
|
128
129
|
});
|
|
129
130
|
it('should handle UNPROCESSED type with business creditor', () => {
|
|
130
|
-
const result = normalizeDocumentAmount(100, true,
|
|
131
|
+
const result = normalizeDocumentAmount(100, true, DocumentType.Unprocessed);
|
|
131
132
|
expect(result).toBe(-100);
|
|
132
133
|
});
|
|
133
134
|
});
|
|
134
135
|
describe('Negative Input Amounts (Absolute Value First)', () => {
|
|
135
136
|
it('should convert negative input to positive for INVOICE with business debtor', () => {
|
|
136
137
|
// Input is -100, should become |−100| = 100
|
|
137
|
-
const result = normalizeDocumentAmount(-100, false,
|
|
138
|
+
const result = normalizeDocumentAmount(-100, false, DocumentType.Invoice);
|
|
138
139
|
expect(result).toBe(100);
|
|
139
140
|
});
|
|
140
141
|
it('should convert negative input to negative for INVOICE with business creditor', () => {
|
|
141
142
|
// Input is -100, should become |−100| * -1 = -100
|
|
142
|
-
const result = normalizeDocumentAmount(-100, true,
|
|
143
|
+
const result = normalizeDocumentAmount(-100, true, DocumentType.Invoice);
|
|
143
144
|
expect(result).toBe(-100);
|
|
144
145
|
});
|
|
145
146
|
it('should convert negative input for CREDIT_INVOICE with business debtor', () => {
|
|
146
147
|
// Input is -100, should become |−100| * -1 = -100
|
|
147
|
-
const result = normalizeDocumentAmount(-100, false,
|
|
148
|
+
const result = normalizeDocumentAmount(-100, false, DocumentType.CreditInvoice);
|
|
148
149
|
expect(result).toBe(-100);
|
|
149
150
|
});
|
|
150
151
|
it('should convert negative input for CREDIT_INVOICE with business creditor', () => {
|
|
151
152
|
// Input is -100, should become |−100| * -1 * -1 = 100
|
|
152
|
-
const result = normalizeDocumentAmount(-100, true,
|
|
153
|
+
const result = normalizeDocumentAmount(-100, true, DocumentType.CreditInvoice);
|
|
153
154
|
expect(result).toBe(100);
|
|
154
155
|
});
|
|
155
156
|
it('should handle negative decimal amounts', () => {
|
|
156
|
-
const result = normalizeDocumentAmount(-250.50, false,
|
|
157
|
+
const result = normalizeDocumentAmount(-250.50, false, DocumentType.Invoice);
|
|
157
158
|
expect(result).toBe(250.50);
|
|
158
159
|
});
|
|
159
160
|
it('should handle large negative amounts', () => {
|
|
160
|
-
const result = normalizeDocumentAmount(-1000000, true,
|
|
161
|
+
const result = normalizeDocumentAmount(-1000000, true, DocumentType.Receipt);
|
|
161
162
|
expect(result).toBe(-1000000);
|
|
162
163
|
});
|
|
163
164
|
});
|
|
164
165
|
describe('Zero Amounts', () => {
|
|
165
166
|
it('should handle zero amount with business debtor', () => {
|
|
166
|
-
const result = normalizeDocumentAmount(0, false,
|
|
167
|
+
const result = normalizeDocumentAmount(0, false, DocumentType.Invoice);
|
|
167
168
|
expect(result).toBe(0);
|
|
168
169
|
});
|
|
169
170
|
it('should handle zero amount with business creditor', () => {
|
|
170
|
-
const result = normalizeDocumentAmount(0, true,
|
|
171
|
+
const result = normalizeDocumentAmount(0, true, DocumentType.Invoice);
|
|
171
172
|
expect(result).toBe(-0); // JavaScript has -0, but 0 === -0 is true
|
|
172
173
|
});
|
|
173
174
|
it('should handle zero for CREDIT_INVOICE', () => {
|
|
174
|
-
const result = normalizeDocumentAmount(0, false,
|
|
175
|
+
const result = normalizeDocumentAmount(0, false, DocumentType.CreditInvoice);
|
|
175
176
|
expect(result).toBe(-0);
|
|
176
177
|
});
|
|
177
178
|
it('should verify zero equality regardless of sign', () => {
|
|
178
|
-
const result1 = normalizeDocumentAmount(0, false,
|
|
179
|
-
const result2 = normalizeDocumentAmount(0, true,
|
|
179
|
+
const result1 = normalizeDocumentAmount(0, false, DocumentType.Invoice);
|
|
180
|
+
const result2 = normalizeDocumentAmount(0, true, DocumentType.Invoice);
|
|
180
181
|
expect(result1).toBe(0);
|
|
181
182
|
// In JavaScript, -0 and 0 are loosely equal but Object.is distinguishes them
|
|
182
183
|
// For our purposes, they are functionally equivalent
|
|
@@ -186,36 +187,36 @@ describe('Document Amount Normalization', () => {
|
|
|
186
187
|
describe('Very Large Amounts', () => {
|
|
187
188
|
it('should handle very large positive amounts', () => {
|
|
188
189
|
const largeAmount = 999999999.99;
|
|
189
|
-
const result = normalizeDocumentAmount(largeAmount, false,
|
|
190
|
+
const result = normalizeDocumentAmount(largeAmount, false, DocumentType.Invoice);
|
|
190
191
|
expect(result).toBe(largeAmount);
|
|
191
192
|
});
|
|
192
193
|
it('should handle very large amounts with creditor negation', () => {
|
|
193
194
|
const largeAmount = 999999999.99;
|
|
194
|
-
const result = normalizeDocumentAmount(largeAmount, true,
|
|
195
|
+
const result = normalizeDocumentAmount(largeAmount, true, DocumentType.Invoice);
|
|
195
196
|
expect(result).toBe(-largeAmount);
|
|
196
197
|
});
|
|
197
198
|
it('should handle very large amounts with CREDIT_INVOICE', () => {
|
|
198
199
|
const largeAmount = 888888888.88;
|
|
199
|
-
const result = normalizeDocumentAmount(largeAmount, true,
|
|
200
|
+
const result = normalizeDocumentAmount(largeAmount, true, DocumentType.CreditInvoice);
|
|
200
201
|
expect(result).toBe(largeAmount);
|
|
201
202
|
});
|
|
202
203
|
it('should handle maximum safe integer', () => {
|
|
203
204
|
const maxSafe = Number.MAX_SAFE_INTEGER;
|
|
204
|
-
const result = normalizeDocumentAmount(maxSafe, false,
|
|
205
|
+
const result = normalizeDocumentAmount(maxSafe, false, DocumentType.Invoice);
|
|
205
206
|
expect(result).toBe(maxSafe);
|
|
206
207
|
});
|
|
207
208
|
});
|
|
208
209
|
describe('Small Decimal Amounts', () => {
|
|
209
210
|
it('should handle very small decimal amounts', () => {
|
|
210
|
-
const result = normalizeDocumentAmount(0.01, false,
|
|
211
|
+
const result = normalizeDocumentAmount(0.01, false, DocumentType.Invoice);
|
|
211
212
|
expect(result).toBe(0.01);
|
|
212
213
|
});
|
|
213
214
|
it('should handle fractional cents', () => {
|
|
214
|
-
const result = normalizeDocumentAmount(0.001, true,
|
|
215
|
+
const result = normalizeDocumentAmount(0.001, true, DocumentType.Receipt);
|
|
215
216
|
expect(result).toBe(-0.001);
|
|
216
217
|
});
|
|
217
218
|
it('should preserve precision for small decimals', () => {
|
|
218
|
-
const result = normalizeDocumentAmount(1.23456789, false,
|
|
219
|
+
const result = normalizeDocumentAmount(1.23456789, false, DocumentType.Invoice);
|
|
219
220
|
expect(result).toBe(1.23456789);
|
|
220
221
|
});
|
|
221
222
|
});
|
|
@@ -224,26 +225,26 @@ describe('Document Amount Normalization', () => {
|
|
|
224
225
|
it('should correctly normalize all document type and business role combinations', () => {
|
|
225
226
|
const testCases = [
|
|
226
227
|
// INVOICE
|
|
227
|
-
{ type:
|
|
228
|
-
{ type:
|
|
228
|
+
{ type: DocumentType.Invoice, isCreditor: false, input: 100, expected: 100, description: 'INVOICE, business debtor' },
|
|
229
|
+
{ type: DocumentType.Invoice, isCreditor: true, input: 100, expected: -100, description: 'INVOICE, business creditor' },
|
|
229
230
|
// CREDIT_INVOICE
|
|
230
|
-
{ type:
|
|
231
|
-
{ type:
|
|
231
|
+
{ type: DocumentType.CreditInvoice, isCreditor: false, input: 100, expected: -100, description: 'CREDIT_INVOICE, business debtor' },
|
|
232
|
+
{ type: DocumentType.CreditInvoice, isCreditor: true, input: 100, expected: 100, description: 'CREDIT_INVOICE, business creditor (double neg)' },
|
|
232
233
|
// RECEIPT
|
|
233
|
-
{ type:
|
|
234
|
-
{ type:
|
|
234
|
+
{ type: DocumentType.Receipt, isCreditor: false, input: 100, expected: 100, description: 'RECEIPT, business debtor' },
|
|
235
|
+
{ type: DocumentType.Receipt, isCreditor: true, input: 100, expected: -100, description: 'RECEIPT, business creditor' },
|
|
235
236
|
// INVOICE_RECEIPT
|
|
236
|
-
{ type:
|
|
237
|
-
{ type:
|
|
237
|
+
{ type: DocumentType.InvoiceReceipt, isCreditor: false, input: 100, expected: 100, description: 'INVOICE_RECEIPT, business debtor' },
|
|
238
|
+
{ type: DocumentType.InvoiceReceipt, isCreditor: true, input: 100, expected: -100, description: 'INVOICE_RECEIPT, business creditor' },
|
|
238
239
|
// OTHER
|
|
239
|
-
{ type:
|
|
240
|
-
{ type:
|
|
240
|
+
{ type: DocumentType.Other, isCreditor: false, input: 100, expected: 100, description: 'OTHER, business debtor' },
|
|
241
|
+
{ type: DocumentType.Other, isCreditor: true, input: 100, expected: -100, description: 'OTHER, business creditor' },
|
|
241
242
|
// PROFORMA
|
|
242
|
-
{ type:
|
|
243
|
-
{ type:
|
|
243
|
+
{ type: DocumentType.Proforma, isCreditor: false, input: 100, expected: 100, description: 'PROFORMA, business debtor' },
|
|
244
|
+
{ type: DocumentType.Proforma, isCreditor: true, input: 100, expected: -100, description: 'PROFORMA, business creditor' },
|
|
244
245
|
// UNPROCESSED
|
|
245
|
-
{ type:
|
|
246
|
-
{ type:
|
|
246
|
+
{ type: DocumentType.Unprocessed, isCreditor: false, input: 100, expected: 100, description: 'UNPROCESSED, business debtor' },
|
|
247
|
+
{ type: DocumentType.Unprocessed, isCreditor: true, input: 100, expected: -100, description: 'UNPROCESSED, business creditor' },
|
|
247
248
|
];
|
|
248
249
|
testCases.forEach(({ type, isCreditor, input, expected, description }) => {
|
|
249
250
|
const result = normalizeDocumentAmount(input, isCreditor, type);
|
|
@@ -254,32 +255,32 @@ describe('Document Amount Normalization', () => {
|
|
|
254
255
|
describe('Real-World Scenarios', () => {
|
|
255
256
|
it('should normalize customer invoice (business sends invoice to customer)', () => {
|
|
256
257
|
// Business is creditor (customer owes business)
|
|
257
|
-
const result = normalizeDocumentAmount(1500, true,
|
|
258
|
+
const result = normalizeDocumentAmount(1500, true, DocumentType.Invoice);
|
|
258
259
|
expect(result).toBe(-1500); // Negative because user owes
|
|
259
260
|
});
|
|
260
261
|
it('should normalize vendor invoice (vendor sends invoice to business)', () => {
|
|
261
262
|
// Business is debtor (business owes vendor)
|
|
262
|
-
const result = normalizeDocumentAmount(750, false,
|
|
263
|
+
const result = normalizeDocumentAmount(750, false, DocumentType.Invoice);
|
|
263
264
|
expect(result).toBe(750); // Positive because vendor owes user
|
|
264
265
|
});
|
|
265
266
|
it('should normalize customer refund (credit invoice to customer)', () => {
|
|
266
267
|
// Business owes customer a refund
|
|
267
|
-
const result = normalizeDocumentAmount(200, true,
|
|
268
|
+
const result = normalizeDocumentAmount(200, true, DocumentType.CreditInvoice);
|
|
268
269
|
expect(result).toBe(200); // Positive because business owes refund
|
|
269
270
|
});
|
|
270
271
|
it('should normalize vendor credit note (credit invoice from vendor)', () => {
|
|
271
272
|
// Vendor gives credit note to business
|
|
272
|
-
const result = normalizeDocumentAmount(150, false,
|
|
273
|
+
const result = normalizeDocumentAmount(150, false, DocumentType.CreditInvoice);
|
|
273
274
|
expect(result).toBe(-150); // Negative because business owes vendor less now
|
|
274
275
|
});
|
|
275
276
|
it('should normalize payment receipt from customer', () => {
|
|
276
277
|
// Customer pays business
|
|
277
|
-
const result = normalizeDocumentAmount(500, true,
|
|
278
|
+
const result = normalizeDocumentAmount(500, true, DocumentType.Receipt);
|
|
278
279
|
expect(result).toBe(-500); // Negative because customer paid
|
|
279
280
|
});
|
|
280
281
|
it('should normalize payment receipt to vendor', () => {
|
|
281
282
|
// Business pays vendor
|
|
282
|
-
const result = normalizeDocumentAmount(300, false,
|
|
283
|
+
const result = normalizeDocumentAmount(300, false, DocumentType.Receipt);
|
|
283
284
|
expect(result).toBe(300); // Positive because business paid
|
|
284
285
|
});
|
|
285
286
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-amount.test.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/__tests__/document-amount.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-amount.test.js","sourceRoot":"","sources":["../../../../../../src/modules/charges-matcher/__tests__/document-amount.test.ts"],"names":[],"mappings":"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"}
|