@wix/l10n 1.198.0

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 (88) hide show
  1. package/README.md +139 -0
  2. package/dist/cjs/__tests__/address.spec.js +365 -0
  3. package/dist/cjs/__tests__/address.spec.js.map +1 -0
  4. package/dist/cjs/__tests__/currency.spec.js +225 -0
  5. package/dist/cjs/__tests__/currency.spec.js.map +1 -0
  6. package/dist/cjs/__tests__/spec-setup.js +2 -0
  7. package/dist/cjs/__tests__/spec-setup.js.map +1 -0
  8. package/dist/cjs/address/formats.js +210 -0
  9. package/dist/cjs/address/formats.js.map +1 -0
  10. package/dist/cjs/address/formatsOverrides.js +23 -0
  11. package/dist/cjs/address/formatsOverrides.js.map +1 -0
  12. package/dist/cjs/address/formatter.js +21 -0
  13. package/dist/cjs/address/formatter.js.map +1 -0
  14. package/dist/cjs/address/index.js +8 -0
  15. package/dist/cjs/address/index.js.map +1 -0
  16. package/dist/cjs/address/model.js +2 -0
  17. package/dist/cjs/address/model.js.map +1 -0
  18. package/dist/cjs/address/parser.js +267 -0
  19. package/dist/cjs/address/parser.js.map +1 -0
  20. package/dist/cjs/currency/currencyCode.js +2 -0
  21. package/dist/cjs/currency/currencyCode.js.map +1 -0
  22. package/dist/cjs/currency/factory.js +37 -0
  23. package/dist/cjs/currency/factory.js.map +1 -0
  24. package/dist/cjs/currency/formatter.js +28 -0
  25. package/dist/cjs/currency/formatter.js.map +1 -0
  26. package/dist/cjs/external-types.d.js +3 -0
  27. package/dist/cjs/external-types.d.js.map +1 -0
  28. package/dist/cjs/generated/proto-generated.d.js +4 -0
  29. package/dist/cjs/generated/proto-generated.d.js.map +1 -0
  30. package/dist/cjs/index.js +18 -0
  31. package/dist/cjs/index.js.map +1 -0
  32. package/dist/cjs/test-types.d.js +2 -0
  33. package/dist/cjs/test-types.d.js.map +1 -0
  34. package/dist/esm/__tests__/address.spec.js +464 -0
  35. package/dist/esm/__tests__/address.spec.js.map +1 -0
  36. package/dist/esm/__tests__/currency.spec.js +178 -0
  37. package/dist/esm/__tests__/currency.spec.js.map +1 -0
  38. package/dist/esm/__tests__/spec-setup.js +2 -0
  39. package/dist/esm/__tests__/spec-setup.js.map +1 -0
  40. package/dist/esm/address/formats.js +8 -0
  41. package/dist/esm/address/formats.js.map +1 -0
  42. package/dist/esm/address/formatsOverrides.js +18 -0
  43. package/dist/esm/address/formatsOverrides.js.map +1 -0
  44. package/dist/esm/address/formatter.js +11 -0
  45. package/dist/esm/address/formatter.js.map +1 -0
  46. package/dist/esm/address/index.js +2 -0
  47. package/dist/esm/address/index.js.map +1 -0
  48. package/dist/esm/address/model.js +2 -0
  49. package/dist/esm/address/model.js.map +1 -0
  50. package/dist/esm/address/parser.js +227 -0
  51. package/dist/esm/address/parser.js.map +1 -0
  52. package/dist/esm/currency/currencyCode.js +2 -0
  53. package/dist/esm/currency/currencyCode.js.map +1 -0
  54. package/dist/esm/currency/factory.js +31 -0
  55. package/dist/esm/currency/factory.js.map +1 -0
  56. package/dist/esm/currency/formatter.js +18 -0
  57. package/dist/esm/currency/formatter.js.map +1 -0
  58. package/dist/esm/index.js +4 -0
  59. package/dist/esm/index.js.map +1 -0
  60. package/dist/tsconfig.tsbuildinfo +1 -0
  61. package/dist/types/__tests__/address.spec.d.ts +2 -0
  62. package/dist/types/__tests__/address.spec.d.ts.map +1 -0
  63. package/dist/types/__tests__/currency.spec.d.ts +2 -0
  64. package/dist/types/__tests__/currency.spec.d.ts.map +1 -0
  65. package/dist/types/__tests__/spec-setup.d.ts +1 -0
  66. package/dist/types/__tests__/spec-setup.d.ts.map +1 -0
  67. package/dist/types/address/formats.d.ts +8 -0
  68. package/dist/types/address/formats.d.ts.map +1 -0
  69. package/dist/types/address/formatsOverrides.d.ts +5 -0
  70. package/dist/types/address/formatsOverrides.d.ts.map +1 -0
  71. package/dist/types/address/formatter.d.ts +10 -0
  72. package/dist/types/address/formatter.d.ts.map +1 -0
  73. package/dist/types/address/index.d.ts +4 -0
  74. package/dist/types/address/index.d.ts.map +1 -0
  75. package/dist/types/address/model.d.ts +21 -0
  76. package/dist/types/address/model.d.ts.map +1 -0
  77. package/dist/types/address/parser.d.ts +24 -0
  78. package/dist/types/address/parser.d.ts.map +1 -0
  79. package/dist/types/currency/currencyCode.d.ts +7 -0
  80. package/dist/types/currency/currencyCode.d.ts.map +1 -0
  81. package/dist/types/currency/factory.d.ts +15 -0
  82. package/dist/types/currency/factory.d.ts.map +1 -0
  83. package/dist/types/currency/formatter.d.ts +18 -0
  84. package/dist/types/currency/formatter.d.ts.map +1 -0
  85. package/dist/types/generated/proto-generated.d.ts +1198 -0
  86. package/dist/types/index.d.ts +4 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/package.json +67 -0
@@ -0,0 +1,464 @@
1
+ import { formatAddress } from '../address';
2
+ import { streetNameFirstCountries } from '../address/parser';
3
+ describe('address formatting', () => {
4
+ describe('tests for countries where street name comes first', () => {
5
+ streetNameFirstCountries.forEach((country) => {
6
+ it(`should format the street name first address properly for ${country}`, () => {
7
+ const address = {
8
+ country,
9
+ streetAddress: {
10
+ apt: '11',
11
+ name: 'Street name',
12
+ number: '38',
13
+ },
14
+ city: 'City',
15
+ postalCode: '11111',
16
+ };
17
+ expect(formatAddress({ address })).toMatchSnapshot();
18
+ });
19
+ });
20
+ });
21
+ describe('street adress format', () => {
22
+ test.each([
23
+ [
24
+ 'US',
25
+ {
26
+ address: {
27
+ country: 'US',
28
+ subdivision: 'TX',
29
+ city: 'Houston',
30
+ postalCode: '77032',
31
+ streetAddress: {
32
+ name: 'Polk St',
33
+ number: '4325',
34
+ },
35
+ countryFullname: 'United States',
36
+ },
37
+ addressContactDetails: {
38
+ company: 'Sax Therapist',
39
+ fullName: 'Martin Langford',
40
+ },
41
+ },
42
+ [
43
+ 'Martin Langford',
44
+ 'Sax Therapist',
45
+ '4325 Polk St',
46
+ 'Houston, TX 77032',
47
+ 'United States',
48
+ ],
49
+ ],
50
+ [
51
+ 'GB',
52
+ {
53
+ address: {
54
+ country: 'GB',
55
+ city: 'London',
56
+ postalCode: 'W1B 5PW',
57
+ streetAddress: {
58
+ name: 'Kingly St',
59
+ number: '10',
60
+ },
61
+ countryFullname: 'United Kingdom',
62
+ },
63
+ addressContactDetails: {
64
+ company: 'Detox Kitchen',
65
+ },
66
+ },
67
+ [
68
+ 'Detox Kitchen',
69
+ '10 Kingly St',
70
+ 'London',
71
+ 'W1B 5PW',
72
+ 'United Kingdom',
73
+ ],
74
+ ],
75
+ [
76
+ 'UA',
77
+ {
78
+ address: {
79
+ country: 'UA',
80
+ countryFullname: 'Україна',
81
+ city: 'Київ',
82
+ postalCode: '02000',
83
+ streetAddress: {
84
+ name: 'вулиця Богдана Хмельницького',
85
+ number: '56А',
86
+ },
87
+ },
88
+ },
89
+ ['56А вулиця Богдана Хмельницького', 'Київ', '02000', 'Україна'],
90
+ ],
91
+ [
92
+ 'JP',
93
+ {
94
+ address: {
95
+ country: 'JP',
96
+ countryFullname: '日本',
97
+ subdivision: '熊本県',
98
+ city: '熊本市',
99
+ postalCode: '321-432',
100
+ streetAddress: {
101
+ name: '東区榎町',
102
+ number: '23',
103
+ apt: '26',
104
+ },
105
+ addressLine2: 'ライオンズマンション',
106
+ },
107
+ },
108
+ [
109
+ '〒321-432',
110
+ '熊本県',
111
+ '熊本市',
112
+ '東区榎町 23-26',
113
+ 'ライオンズマンション',
114
+ '日本',
115
+ ],
116
+ ],
117
+ [
118
+ 'LT',
119
+ {
120
+ address: {
121
+ country: 'LT',
122
+ countryFullname: 'Lithuania',
123
+ city: 'Vilnius',
124
+ postalCode: '09389',
125
+ streetAddress: {
126
+ name: 'Lvivo g.',
127
+ number: '34',
128
+ apt: '10',
129
+ },
130
+ addressLine2: '3 aukstas',
131
+ },
132
+ },
133
+ ['Lvivo g. 34-10', '3 aukstas', '09389 Vilnius', 'Lithuania'],
134
+ ],
135
+ ])('should format %s address', (_countryCode, { address, addressContactDetails }, result) => {
136
+ expect(formatAddress({ address, addressContactDetails })).toStrictEqual(result);
137
+ });
138
+ });
139
+ describe('address lines format', () => {
140
+ test.each([
141
+ [
142
+ 'US',
143
+ {
144
+ address: {
145
+ country: 'US',
146
+ subdivision: 'TX',
147
+ city: 'Houston',
148
+ postalCode: '77032',
149
+ addressLine: '4325 Polk St',
150
+ countryFullname: 'United States',
151
+ },
152
+ addressContactDetails: {
153
+ company: 'Sax Therapist',
154
+ fullName: 'Martin Langford',
155
+ },
156
+ },
157
+ [
158
+ 'Martin Langford',
159
+ 'Sax Therapist',
160
+ '4325 Polk St',
161
+ 'Houston, TX 77032',
162
+ 'United States',
163
+ ],
164
+ ],
165
+ [
166
+ 'GB',
167
+ {
168
+ address: {
169
+ country: 'GB',
170
+ city: 'London',
171
+ postalCode: 'W1B 5PW',
172
+ addressLine: '10 Kingly St',
173
+ countryFullname: 'United Kingdom',
174
+ },
175
+ addressContactDetails: {
176
+ company: 'Detox Kitchen',
177
+ },
178
+ },
179
+ [
180
+ 'Detox Kitchen',
181
+ '10 Kingly St',
182
+ 'London',
183
+ 'W1B 5PW',
184
+ 'United Kingdom',
185
+ ],
186
+ ],
187
+ [
188
+ 'UA',
189
+ {
190
+ address: {
191
+ country: 'UA',
192
+ city: 'Київ',
193
+ postalCode: '02000',
194
+ addressLine: '56А вулиця Богдана Хмельницького',
195
+ countryFullname: 'Україна',
196
+ },
197
+ },
198
+ ['56А вулиця Богдана Хмельницького', 'Київ', '02000', 'Україна'],
199
+ ],
200
+ [
201
+ 'JP',
202
+ {
203
+ address: {
204
+ country: 'JP',
205
+ countryFullname: '日本',
206
+ subdivision: '熊本県',
207
+ city: '熊本市',
208
+ postalCode: '321-432',
209
+ addressLine: '東区榎町23−26',
210
+ addressLine2: 'ライオンズマンション',
211
+ },
212
+ },
213
+ [
214
+ '〒321-432',
215
+ '熊本県',
216
+ '熊本市',
217
+ '東区榎町23−26',
218
+ 'ライオンズマンション',
219
+ '日本',
220
+ ],
221
+ ],
222
+ [
223
+ 'LT',
224
+ {
225
+ address: {
226
+ country: 'LT',
227
+ countryFullname: 'Lithuania',
228
+ city: 'Vilnius',
229
+ postalCode: '09389',
230
+ addressLine: 'Lvivo g. 34-10',
231
+ addressLine2: '3 aukstas',
232
+ },
233
+ },
234
+ ['Lvivo g. 34-10', '3 aukstas', '09389 Vilnius', 'Lithuania'],
235
+ ],
236
+ [
237
+ 'FI',
238
+ {
239
+ address: {
240
+ country: 'FI',
241
+ countryFullname: 'Finland',
242
+ city: 'Imatra',
243
+ postalCode: '55800',
244
+ addressLine: 'Vuoksenniskantie 83',
245
+ },
246
+ },
247
+ ['Vuoksenniskantie 83', '55800 Imatra', 'Finland'],
248
+ ],
249
+ ])('should format %s address', (_countryCode, { address, addressContactDetails }, result) => {
250
+ expect(formatAddress({ address, addressContactDetails })).toStrictEqual(result);
251
+ });
252
+ });
253
+ describe('Templates selection', () => {
254
+ it('should fallback to the default template in case the corresponding country code is not defined', () => {
255
+ const address = formatAddress({
256
+ address: {
257
+ country: 'CM',
258
+ subdivision: 'Douala',
259
+ city: 'Akwa',
260
+ postalCode: '24239',
261
+ addressLine: 'BP. 24239',
262
+ countryFullname: 'Cameroun',
263
+ },
264
+ });
265
+ expect(address).toStrictEqual(['BP. 24239', 'Akwa', 'Cameroun']);
266
+ });
267
+ });
268
+ describe('CA/US address formatting', () => {
269
+ describe('Canada (CA) - apartment number first', () => {
270
+ it('should format address with apartment number in apt-number format', () => {
271
+ const address = {
272
+ country: 'CA',
273
+ subdivision: 'ON',
274
+ city: 'Toronto',
275
+ postalCode: 'M5H 2N2',
276
+ streetAddress: {
277
+ name: 'Bay Street',
278
+ number: '123',
279
+ apt: '456',
280
+ },
281
+ countryFullname: 'Canada',
282
+ };
283
+ const result = formatAddress({ address });
284
+ expect(result).toStrictEqual([
285
+ '456-123 Bay Street',
286
+ 'Toronto ON M5H 2N2',
287
+ 'Canada',
288
+ ]);
289
+ });
290
+ it('should format address without apartment number', () => {
291
+ const address = {
292
+ country: 'CA',
293
+ subdivision: 'BC',
294
+ city: 'Vancouver',
295
+ postalCode: 'V6B 2W9',
296
+ streetAddress: {
297
+ name: 'Granville Street',
298
+ number: '789',
299
+ },
300
+ countryFullname: 'Canada',
301
+ };
302
+ const result = formatAddress({ address });
303
+ expect(result).toStrictEqual([
304
+ '789 Granville Street',
305
+ 'Vancouver BC V6B 2W9',
306
+ 'Canada',
307
+ ]);
308
+ });
309
+ it('should format address with contact details', () => {
310
+ const address = {
311
+ country: 'CA',
312
+ subdivision: 'QC',
313
+ city: 'Montreal',
314
+ postalCode: 'H3A 0G4',
315
+ streetAddress: {
316
+ name: 'Sherbrooke Street',
317
+ number: '1234',
318
+ apt: '567',
319
+ },
320
+ countryFullname: 'Canada',
321
+ };
322
+ const addressContactDetails = {
323
+ fullName: 'John Doe',
324
+ company: 'Tech Corp',
325
+ };
326
+ const result = formatAddress({ address, addressContactDetails });
327
+ expect(result).toStrictEqual([
328
+ 'John Doe',
329
+ 'Tech Corp',
330
+ '567-1234 Sherbrooke Street',
331
+ 'Montreal QC H3A 0G4',
332
+ 'Canada',
333
+ ]);
334
+ });
335
+ });
336
+ describe('United States (US) - apartment number after street name', () => {
337
+ it('should format address with apartment number after street name', () => {
338
+ const address = {
339
+ country: 'US',
340
+ subdivision: 'NY',
341
+ city: 'New York',
342
+ postalCode: '10001',
343
+ streetAddress: {
344
+ name: 'Broadway',
345
+ number: '500',
346
+ apt: 'Apt 12B',
347
+ },
348
+ countryFullname: 'United States',
349
+ };
350
+ const result = formatAddress({ address });
351
+ expect(result).toStrictEqual([
352
+ '500 Broadway Apt 12B',
353
+ 'New York, NY 10001',
354
+ 'United States',
355
+ ]);
356
+ });
357
+ it('should format address without apartment number', () => {
358
+ const address = {
359
+ country: 'US',
360
+ subdivision: 'CA',
361
+ city: 'San Francisco',
362
+ postalCode: '94102',
363
+ streetAddress: {
364
+ name: 'Market Street',
365
+ number: '1234',
366
+ },
367
+ countryFullname: 'United States',
368
+ };
369
+ const result = formatAddress({ address });
370
+ expect(result).toStrictEqual([
371
+ '1234 Market Street',
372
+ 'San Francisco, CA 94102',
373
+ 'United States',
374
+ ]);
375
+ });
376
+ it('should format address with contact details and apartment', () => {
377
+ const address = {
378
+ country: 'US',
379
+ subdivision: 'FL',
380
+ city: 'Miami',
381
+ postalCode: '33101',
382
+ streetAddress: {
383
+ name: 'Ocean Drive',
384
+ number: '1500',
385
+ apt: 'Unit 5A',
386
+ },
387
+ countryFullname: 'United States',
388
+ };
389
+ const addressContactDetails = {
390
+ fullName: 'Jane Smith',
391
+ company: 'Design Studio',
392
+ };
393
+ const result = formatAddress({ address, addressContactDetails });
394
+ expect(result).toStrictEqual([
395
+ 'Jane Smith',
396
+ 'Design Studio',
397
+ '1500 Ocean Drive Unit 5A',
398
+ 'Miami, FL 33101',
399
+ 'United States',
400
+ ]);
401
+ });
402
+ it('should format address with numeric apartment number', () => {
403
+ const address = {
404
+ country: 'US',
405
+ subdivision: 'TX',
406
+ city: 'Austin',
407
+ postalCode: '78701',
408
+ streetAddress: {
409
+ name: 'Congress Avenue',
410
+ number: '200',
411
+ apt: '301',
412
+ },
413
+ countryFullname: 'United States',
414
+ };
415
+ const result = formatAddress({ address });
416
+ expect(result).toStrictEqual([
417
+ '200 Congress Avenue 301',
418
+ 'Austin, TX 78701',
419
+ 'United States',
420
+ ]);
421
+ });
422
+ });
423
+ describe('Edge cases', () => {
424
+ it('should handle CA address with only apartment number', () => {
425
+ const address = {
426
+ country: 'CA',
427
+ subdivision: 'AB',
428
+ city: 'Calgary',
429
+ postalCode: 'T2P 5C5',
430
+ streetAddress: {
431
+ name: 'Centre Street',
432
+ apt: '100',
433
+ },
434
+ countryFullname: 'Canada',
435
+ };
436
+ const result = formatAddress({ address });
437
+ expect(result).toStrictEqual([
438
+ 'Centre Street',
439
+ 'Calgary AB T2P 5C5',
440
+ 'Canada',
441
+ ]);
442
+ });
443
+ it('should handle US address with only street name', () => {
444
+ const address = {
445
+ country: 'US',
446
+ subdivision: 'WA',
447
+ city: 'Seattle',
448
+ postalCode: '98101',
449
+ streetAddress: {
450
+ name: 'Pike Street',
451
+ },
452
+ countryFullname: 'United States',
453
+ };
454
+ const result = formatAddress({ address });
455
+ expect(result).toStrictEqual([
456
+ 'Pike Street',
457
+ 'Seattle, WA 98101',
458
+ 'United States',
459
+ ]);
460
+ });
461
+ });
462
+ });
463
+ });
464
+ //# sourceMappingURL=address.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.spec.js","sourceRoot":"","sources":["../../../src/__tests__/address.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { createCurrencyFormatterWithDefaults, currencyFormatterFactory, } from '../index';
2
+ describe('currency', () => {
3
+ describe('formatting', () => {
4
+ describe('string result', () => {
5
+ test.each([
6
+ ['USD', 'en', undefined, 100.49, '$100.49'],
7
+ ['USD', 'en-us', undefined, 100.49, '$100.49'],
8
+ ['USD', 'en-us', 'us', 100.49, '$100.49'],
9
+ ['GBP', 'en-uk', undefined, 100.49, '£100.49'],
10
+ ['EUR', 'de', undefined, 100.49, '100,49 €'],
11
+ ['UAH', 'uk', undefined, 100.49, '100,49 ₴'],
12
+ ['GBP', 'en', 'uk', 100.49, '£100.49'],
13
+ ['JPY', 'ja', undefined, 100.49, '¥100'],
14
+ ])('should format %s', (currency, language, country, value, expected) => {
15
+ const createCurrencyFormatter = createCurrencyFormatterWithDefaults({
16
+ language: 'en',
17
+ });
18
+ const formatter = createCurrencyFormatter({ language, country });
19
+ expect(formatter({ value, currency })).toBe(expected);
20
+ });
21
+ });
22
+ describe('parts result', () => {
23
+ test.each([
24
+ [
25
+ 'USD',
26
+ 'en',
27
+ 100.49,
28
+ [
29
+ { type: 'currency', value: '$' },
30
+ { type: 'integer', value: '100' },
31
+ { type: 'decimal', value: '.' },
32
+ { type: 'fraction', value: '49' },
33
+ ],
34
+ ],
35
+ [
36
+ 'EUR',
37
+ 'de',
38
+ 100.49,
39
+ [
40
+ { type: 'integer', value: '100' },
41
+ { type: 'decimal', value: ',' },
42
+ { type: 'fraction', value: '49' },
43
+ { type: 'literal', value: ' ' },
44
+ { type: 'currency', value: '€' },
45
+ ],
46
+ ],
47
+ [
48
+ 'UAH',
49
+ 'uk',
50
+ 100.49,
51
+ [
52
+ { type: 'integer', value: '100' },
53
+ { type: 'decimal', value: ',' },
54
+ { type: 'fraction', value: '49' },
55
+ { type: 'literal', value: ' ' },
56
+ { type: 'currency', value: '₴' },
57
+ ],
58
+ ],
59
+ [
60
+ 'GBP',
61
+ 'en',
62
+ 100.49,
63
+ [
64
+ { type: 'currency', value: '£' },
65
+ { type: 'integer', value: '100' },
66
+ { type: 'decimal', value: '.' },
67
+ { type: 'fraction', value: '49' },
68
+ ],
69
+ ],
70
+ [
71
+ 'JPY',
72
+ 'ja',
73
+ 100.49,
74
+ [
75
+ { type: 'currency', value: '¥' },
76
+ { type: 'integer', value: '100' },
77
+ ],
78
+ ],
79
+ ])('should format %s', (currency, language, value, expected) => {
80
+ const createCurrencyFormatter = createCurrencyFormatterWithDefaults({
81
+ language: 'en',
82
+ });
83
+ const formatter = createCurrencyFormatter({ language, parts: true });
84
+ expect(formatter({ value, currency })).toStrictEqual(expected);
85
+ });
86
+ });
87
+ });
88
+ describe('cache', () => {
89
+ beforeEach(() => {
90
+ jest.clearAllMocks();
91
+ currencyFormatterFactory.cache.clear?.();
92
+ });
93
+ it('should not create a new instance if the same currency has been used', () => {
94
+ const spy = jest.spyOn(global.Intl, 'NumberFormat');
95
+ const createCurrencyFormatter = createCurrencyFormatterWithDefaults({
96
+ language: 'en',
97
+ });
98
+ const formatter = createCurrencyFormatter({ language: 'en' });
99
+ formatter({ value: 300, currency: 'EUR' });
100
+ formatter({ value: 400, currency: 'EUR' });
101
+ expect(spy).toHaveBeenCalledTimes(1);
102
+ });
103
+ it('should create a new instance if the language has been changed', () => {
104
+ const spy = jest.spyOn(global.Intl, 'NumberFormat');
105
+ const createCurrencyFormatter = createCurrencyFormatterWithDefaults({
106
+ language: 'en',
107
+ });
108
+ const formatter1 = createCurrencyFormatter({ language: 'en' });
109
+ const formatter2 = createCurrencyFormatter({ language: 'pl' });
110
+ formatter1({ value: 300, currency: 'EUR' });
111
+ formatter2({ value: 300, currency: 'EUR' });
112
+ expect(spy).toHaveBeenCalledTimes(2);
113
+ });
114
+ it('should create a new instance if the country has been changed', () => {
115
+ const spy = jest.spyOn(global.Intl, 'NumberFormat');
116
+ const createCurrencyFormatter = createCurrencyFormatterWithDefaults({
117
+ language: 'en',
118
+ });
119
+ const formatter1 = createCurrencyFormatter({ language: 'en' });
120
+ const formatter2 = createCurrencyFormatter({
121
+ language: 'en',
122
+ country: 'US',
123
+ });
124
+ formatter1({ value: 300, currency: 'USD' });
125
+ formatter2({ value: 300, currency: 'USD' });
126
+ expect(spy).toHaveBeenCalledTimes(2);
127
+ });
128
+ it('should create a new instance if the formatting option has been changed', () => {
129
+ const spy = jest.spyOn(global.Intl, 'NumberFormat');
130
+ const createCurrencyFormatter = createCurrencyFormatterWithDefaults({
131
+ language: 'en',
132
+ });
133
+ const formatter1 = createCurrencyFormatter({
134
+ language: 'en',
135
+ });
136
+ const formatter2 = createCurrencyFormatter({
137
+ language: 'en',
138
+ maximumFractionDigits: 4,
139
+ });
140
+ const formatter3 = createCurrencyFormatter({
141
+ language: 'en',
142
+ maximumFractionDigits: 0,
143
+ });
144
+ const formatter4 = createCurrencyFormatter({
145
+ language: 'en',
146
+ useGrouping: false,
147
+ });
148
+ formatter1({ value: 300, currency: 'USD' });
149
+ formatter2({ value: 300, currency: 'USD' });
150
+ formatter3({ value: 300, currency: 'USD' });
151
+ formatter4({ value: 300, currency: 'USD' });
152
+ expect(spy).toHaveBeenCalledTimes(4);
153
+ });
154
+ it('should format numbers correctly if formatting option has been changed', () => {
155
+ const createCurrencyFormatter = createCurrencyFormatterWithDefaults({
156
+ language: 'en',
157
+ });
158
+ const formatterWithDefaultFractions = createCurrencyFormatter({
159
+ language: 'en',
160
+ });
161
+ const formatterWithoutFractions = createCurrencyFormatter({
162
+ language: 'en',
163
+ maximumFractionDigits: 0,
164
+ });
165
+ const numWithDefaultFractions = formatterWithDefaultFractions({
166
+ value: '100',
167
+ currency: 'USD',
168
+ });
169
+ const numWithoutFractions = formatterWithoutFractions({
170
+ value: '100',
171
+ currency: 'USD',
172
+ });
173
+ expect(numWithDefaultFractions).toBe('$100.00');
174
+ expect(numWithoutFractions).toBe('$100');
175
+ });
176
+ });
177
+ });
178
+ //# sourceMappingURL=currency.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.spec.js","sourceRoot":"","sources":["../../../src/__tests__/currency.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=spec-setup.js.map