@zohodesk/i18n 1.0.0-beta.18 → 1.0.0-beta.19

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 (42) hide show
  1. package/README.md +76 -73
  2. package/es/components/I18NProvider.js +9 -2
  3. package/es/components/__tests__/__snapshots__/DateTimeDiffFormat.spec.js.snap +258 -258
  4. package/es/components/__tests__/__snapshots__/FormatText.spec.js.snap +17 -17
  5. package/es/components/__tests__/__snapshots__/HOCI18N.spec.js.snap +15 -15
  6. package/es/components/__tests__/__snapshots__/I18N.spec.js.snap +17 -17
  7. package/es/components/__tests__/__snapshots__/I18NProvider.spec.js.snap +13 -13
  8. package/es/components/__tests__/__snapshots__/PluralFormat.spec.js.snap +17 -17
  9. package/es/components/__tests__/__snapshots__/UserTimeDiffFormat.spec.js.snap +366 -366
  10. package/lib/components/I18NProvider.js +10 -2
  11. package/lib/components/__tests__/__snapshots__/DateTimeDiffFormat.spec.js.snap +258 -258
  12. package/lib/components/__tests__/__snapshots__/FormatText.spec.js.snap +17 -17
  13. package/lib/components/__tests__/__snapshots__/HOCI18N.spec.js.snap +15 -15
  14. package/lib/components/__tests__/__snapshots__/I18N.spec.js.snap +17 -17
  15. package/lib/components/__tests__/__snapshots__/I18NProvider.spec.js.snap +13 -13
  16. package/lib/components/__tests__/__snapshots__/PluralFormat.spec.js.snap +17 -17
  17. package/lib/components/__tests__/__snapshots__/UserTimeDiffFormat.spec.js.snap +366 -366
  18. package/package.json +28 -28
  19. package/src/I18NContext.js +2 -2
  20. package/src/components/DateTimeDiffFormat.js +254 -254
  21. package/src/components/FormatText.js +14 -14
  22. package/src/components/HOCI18N.js +37 -37
  23. package/src/components/I18N.js +72 -72
  24. package/src/components/I18NProvider.js +110 -106
  25. package/src/components/PluralFormat.js +37 -37
  26. package/src/components/UserTimeDiffFormat.js +94 -94
  27. package/src/components/__tests__/DateTimeDiffFormat.spec.js +618 -618
  28. package/src/components/__tests__/FormatText.spec.js +26 -26
  29. package/src/components/__tests__/HOCI18N.spec.js +33 -33
  30. package/src/components/__tests__/I18N.spec.js +29 -29
  31. package/src/components/__tests__/I18NProvider.spec.js +65 -65
  32. package/src/components/__tests__/PluralFormat.spec.js +27 -27
  33. package/src/components/__tests__/UserTimeDiffFormat.spec.js +1076 -1076
  34. package/src/components/__tests__/__snapshots__/DateTimeDiffFormat.spec.js.snap +258 -258
  35. package/src/components/__tests__/__snapshots__/FormatText.spec.js.snap +17 -17
  36. package/src/components/__tests__/__snapshots__/HOCI18N.spec.js.snap +15 -15
  37. package/src/components/__tests__/__snapshots__/I18N.spec.js.snap +17 -17
  38. package/src/components/__tests__/__snapshots__/I18NProvider.spec.js.snap +13 -13
  39. package/src/components/__tests__/__snapshots__/PluralFormat.spec.js.snap +17 -17
  40. package/src/components/__tests__/__snapshots__/UserTimeDiffFormat.spec.js.snap +366 -366
  41. package/src/index.js +33 -33
  42. package/src/utils.js +527 -527
@@ -1,618 +1,618 @@
1
- import DateTimeDiffFormat from '../DateTimeDiffFormat';
2
- import I18NProvider from '../I18NProvider';
3
- import React from 'react';
4
- import renderer from 'react-test-renderer';
5
-
6
- let tzData = {
7
- offsets: [154, 180],
8
- untils: [1013911200000, null]
9
- };
10
-
11
- let fromTzData = tzData,
12
- toTzData = tzData;
13
-
14
- describe('DateTimeDiffFormat component', () => {
15
- it('Should display yesterday - with same time', () => {
16
- let ele = renderer.create(
17
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
18
- <DateTimeDiffFormat
19
- from='2016-10-25T06:55:28.000Z'
20
- fromTzData={fromTzData}
21
- to='2016-10-24T05:55:28.000Z'
22
- toTzData={toTzData}
23
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
24
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
25
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
26
- others={({ years, days, hours, minutes }) => {
27
- if (days > 7) {
28
- return 'DD-MM-YYYY';
29
- }
30
- return getDateKeyWithParam(years, days, hours, minutes);
31
- }}
32
- ago='ago'
33
- later='later'
34
- />
35
- </I18NProvider>
36
- );
37
- let tree = ele.toJSON();
38
- expect(tree).toMatchSnapshot();
39
- });
40
- it('Should display yesterday - less than 24 hour', () => {
41
- let ele = renderer.create(
42
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
43
- <DateTimeDiffFormat
44
- from='2016-10-25T05:55:28.000Z'
45
- fromTzData={fromTzData}
46
- to='2016-10-24T06:55:28.000Z'
47
- toTzData={toTzData}
48
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
49
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
50
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
51
- others={({ years, days, hours, minutes }) => {
52
- if (days > 7) {
53
- return 'DD-MM-YYYY';
54
- }
55
- return getDateKeyWithParam(years, days, hours, minutes);
56
- }}
57
- ago='ago'
58
- later='later'
59
- />
60
- </I18NProvider>
61
- );
62
- let tree = ele.toJSON();
63
- expect(tree).toMatchSnapshot();
64
- });
65
- it('Should display yesterday - greater than 24 hour', () => {
66
- let ele = renderer.create(
67
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
68
- <DateTimeDiffFormat
69
- from='2016-10-25T05:55:28.000Z'
70
- fromTzData={fromTzData}
71
- to='2016-10-24T04:55:28.000Z'
72
- toTzData={toTzData}
73
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
74
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
75
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
76
- others={({ years, days, hours, minutes }) => {
77
- if (days > 7) {
78
- return 'DD-MM-YYYY';
79
- }
80
- return getDateKeyWithParam(years, days, hours, minutes);
81
- }}
82
- ago='ago'
83
- later='later'
84
- />
85
- </I18NProvider>
86
- );
87
- let tree = ele.toJSON();
88
- expect(tree).toMatchSnapshot();
89
- });
90
- it('Should display today key - same time', () => {
91
- let ele = renderer.create(
92
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
93
- <DateTimeDiffFormat
94
- from='2016-10-25T05:55:28.000Z'
95
- fromTzData={fromTzData}
96
- to='2016-10-25T05:55:28.000Z'
97
- toTzData={toTzData}
98
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
99
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
100
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
101
- others={({ years, days, hours, minutes }) => {
102
- if (days > 7) {
103
- return 'DD-MM-YYYY';
104
- }
105
- return getDateKeyWithParam(years, days, hours, minutes);
106
- }}
107
- ago='ago'
108
- later='later'
109
- />
110
- </I18NProvider>
111
- );
112
- let tree = ele.toJSON();
113
- expect(tree).toMatchSnapshot();
114
- });
115
-
116
- it('Should display today key - less than 24 hour', () => {
117
- let ele = renderer.create(
118
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
119
- <DateTimeDiffFormat
120
- from='2016-10-25T05:55:28.000Z'
121
- fromTzData={fromTzData}
122
- to='2016-10-25T04:55:28.000Z'
123
- toTzData={toTzData}
124
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
125
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
126
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
127
- others={({ years, days, hours, minutes }) => {
128
- if (days > 7) {
129
- return 'DD-MM-YYYY';
130
- }
131
- return getDateKeyWithParam(years, days, hours, minutes);
132
- }}
133
- ago='ago'
134
- later='later'
135
- />
136
- </I18NProvider>
137
- );
138
- let tree = ele.toJSON();
139
- expect(tree).toMatchSnapshot();
140
- });
141
- it('Should display today key - greater than 24 hour', () => {
142
- let ele = renderer.create(
143
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
144
- <DateTimeDiffFormat
145
- from='2016-10-25T05:55:28.000Z'
146
- fromTzData={fromTzData}
147
- to='2016-10-25T06:55:28.000Z'
148
- toTzData={toTzData}
149
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
150
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
151
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
152
- others={({ years, days, hours, minutes }) => {
153
- if (days > 7) {
154
- return 'DD-MM-YYYY';
155
- }
156
- return getDateKeyWithParam(years, days, hours, minutes);
157
- }}
158
- ago='ago'
159
- later='later'
160
- />
161
- </I18NProvider>
162
- );
163
- let tree = ele.toJSON();
164
- expect(tree).toMatchSnapshot();
165
- });
166
- it('Should display tomorrow key - same time', () => {
167
- let ele = renderer.create(
168
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
169
- <DateTimeDiffFormat
170
- from='2016-10-25T05:55:28.000Z'
171
- fromTzData={fromTzData}
172
- to='2016-10-26T05:55:28.000Z'
173
- toTzData={toTzData}
174
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
175
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
176
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
177
- others={({ years, days, hours, minutes }) => {
178
- if (days > 7) {
179
- return 'DD-MM-YYYY';
180
- }
181
- return getDateKeyWithParam(years, days, hours, minutes);
182
- }}
183
- ago='ago'
184
- later='later'
185
- />
186
- </I18NProvider>
187
- );
188
- let tree = ele.toJSON();
189
- expect(tree).toMatchSnapshot();
190
- });
191
- it('Should display tomorrow key - less than 24 hour', () => {
192
- let ele = renderer.create(
193
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
194
- <DateTimeDiffFormat
195
- from='2016-10-25T05:55:28.000Z'
196
- fromTzData={fromTzData}
197
- to='2016-10-26T04:55:28.000Z'
198
- toTzData={toTzData}
199
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
200
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
201
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
202
- others={({ years, days, hours, minutes }) => {
203
- if (days > 7) {
204
- return 'DD-MM-YYYY';
205
- }
206
- return getDateKeyWithParam(years, days, hours, minutes);
207
- }}
208
- ago='ago'
209
- later='later'
210
- />
211
- </I18NProvider>
212
- );
213
- let tree = ele.toJSON();
214
- expect(tree).toMatchSnapshot();
215
- });
216
- it('Should display tomorrow key - greater than 24 hour', () => {
217
- let ele = renderer.create(
218
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
219
- <DateTimeDiffFormat
220
- from='2016-10-25T05:55:28.000Z'
221
- fromTzData={fromTzData}
222
- to='2016-10-26T06:55:28.000Z'
223
- toTzData={toTzData}
224
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
225
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
226
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
227
- others={({ years, days, hours, minutes }) => {
228
- if (days > 7) {
229
- return 'DD-MM-YYYY';
230
- }
231
- return getDateKeyWithParam(years, days, hours, minutes);
232
- }}
233
- ago='ago'
234
- later='later'
235
- />
236
- </I18NProvider>
237
- );
238
- let tree = ele.toJSON();
239
- expect(tree).toMatchSnapshot();
240
- });
241
- it('Should display other - same time', () => {
242
- let ele = renderer.create(
243
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
244
- <DateTimeDiffFormat
245
- from='2016-10-25T05:55:28.000Z'
246
- fromTzData={fromTzData}
247
- to='2016-10-23T05:55:28.000Z'
248
- toTzData={toTzData}
249
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
250
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
251
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
252
- others={({ years, days, hours, minutes, suffix }) => {
253
- if (days > 7) {
254
- return 'DD-MM-YYYY';
255
- }
256
- return '[less 7] DD-MM-YYYY';
257
- }}
258
- ago='ago'
259
- later='later'
260
- />
261
- </I18NProvider>
262
- );
263
- let tree = ele.toJSON();
264
- expect(tree).toMatchSnapshot();
265
- });
266
- it('Should display other - greater time', () => {
267
- let ele = renderer.create(
268
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
269
- <DateTimeDiffFormat
270
- from='2016-10-25T05:55:28.000Z'
271
- fromTzData={fromTzData}
272
- to='2016-10-23T06:55:28.000Z'
273
- toTzData={toTzData}
274
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
275
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
276
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
277
- others={({ years, days, hours, minutes, suffix }) => {
278
- if (days > 7) {
279
- return 'DD-MM-YYYY';
280
- }
281
- return '[less 7] DD-MM-YYYY';
282
- }}
283
- ago='ago'
284
- later='later'
285
- />
286
- </I18NProvider>
287
- );
288
- let tree = ele.toJSON();
289
- expect(tree).toMatchSnapshot();
290
- });
291
- it('Should display other - less time', () => {
292
- let ele = renderer.create(
293
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
294
- <DateTimeDiffFormat
295
- from='2016-10-25T05:55:28.000Z'
296
- fromTzData={fromTzData}
297
- to='2016-10-23T04:55:28.000Z'
298
- toTzData={toTzData}
299
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
300
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
301
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
302
- others={({ years, days, hours, minutes, suffix }) => {
303
- if (days > 7) {
304
- return 'DD-MM-YYYY';
305
- }
306
- return '[less 7] DD-MM-YYYY';
307
- }}
308
- ago='ago'
309
- later='later'
310
- />
311
- </I18NProvider>
312
- );
313
- let tree = ele.toJSON();
314
- expect(tree).toMatchSnapshot();
315
- });
316
- it('Should display other later- same time', () => {
317
- let ele = renderer.create(
318
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
319
- <DateTimeDiffFormat
320
- from='2016-10-25T05:55:28.000Z'
321
- fromTzData={fromTzData}
322
- to='2016-10-27T05:55:28.000Z'
323
- toTzData={toTzData}
324
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
325
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
326
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
327
- others={({ years, days, hours, minutes, suffix, isWithInAWeek }) => {
328
- if (days > 7) {
329
- return 'DD-MM-YYYY';
330
- }
331
- return '[less 7] DD-MM-YYYY';
332
- }}
333
- ago='ago'
334
- later='later'
335
- />
336
- </I18NProvider>
337
- );
338
- let tree = ele.toJSON();
339
- expect(tree).toMatchSnapshot();
340
- });
341
- it('Should display other later- less time', () => {
342
- let ele = renderer.create(
343
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
344
- <DateTimeDiffFormat
345
- from='2016-10-25T05:55:28.000Z'
346
- fromTzData={fromTzData}
347
- to='2016-10-27T06:55:28.000Z'
348
- toTzData={toTzData}
349
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
350
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
351
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
352
- others={({ years, days, hours, minutes, suffix }) => {
353
- if (days > 7) {
354
- return 'DD-MM-YYYY';
355
- }
356
- return '[less 7] DD-MM-YYYY';
357
- }}
358
- ago='ago'
359
- later='later'
360
- />
361
- </I18NProvider>
362
- );
363
- let tree = ele.toJSON();
364
- expect(tree).toMatchSnapshot();
365
- });
366
- it('Should display other later- less time', () => {
367
- let ele = renderer.create(
368
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
369
- <DateTimeDiffFormat
370
- from='2016-10-25T05:55:28.000Z'
371
- fromTzData={fromTzData}
372
- to='2016-10-27T04:55:28.000Z'
373
- toTzData={toTzData}
374
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
375
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
376
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
377
- others={({ years, days, hours, minutes, suffix }) => {
378
- if (days > 7) {
379
- return 'DD-MM-YYYY';
380
- }
381
- return '[less 7] DD-MM-YYYY';
382
- }}
383
- ago='ago'
384
- later='later'
385
- />
386
- </I18NProvider>
387
- );
388
- let tree = ele.toJSON();
389
- expect(tree).toMatchSnapshot();
390
- });
391
- it('Should display others', () => {
392
- let ele = renderer.create(
393
- <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
394
- <DateTimeDiffFormat
395
- from='2016-10-25T05:55:28.000Z'
396
- fromTzData={fromTzData}
397
- to='2016-11-27T05:55:28.000Z'
398
- toTzData={toTzData}
399
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
400
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
401
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
402
- others={({ years, days, hours, minutes, suffix, isWithInAWeek }) => {
403
- if (days > 7) {
404
- return 'DD-MM-YYYY';
405
- }
406
- return '[less 7] DD-MM-YYYY';
407
- }}
408
- ago='ago'
409
- later='later'
410
- />
411
- </I18NProvider>
412
- );
413
- let tree = ele.toJSON();
414
- expect(tree).toMatchSnapshot();
415
- });
416
-
417
- it('Should display today1', () => {
418
- let toDates = [
419
- '2016-10-24T05:55:28.000Z',
420
- '2016-10-24T06:55:28.000Z',
421
- '2016-10-24T04:55:28.000Z',
422
- '2016-10-25T05:55:28.000Z',
423
- '2016-10-25T04:55:28.000Z',
424
- '2016-10-25T06:55:28.000Z',
425
- '2016-10-26T05:55:28.000Z',
426
- '2016-10-26T04:55:28.000Z',
427
- '2016-10-26T06:55:28.000Z',
428
- '2016-10-23T05:55:28.000Z',
429
- '2016-10-23T04:55:28.000Z',
430
- '2016-10-23T06:55:28.000Z'
431
- ];
432
- let ele = renderer.create(
433
- <I18NProvider
434
- i18n={{
435
- today: 'today',
436
- yesterday: 'yesterday',
437
- now: 'noooow',
438
- 'support.1day.ago': '1day ago',
439
- 'support.1day.nhours.ago': 'one day {0} hours ago',
440
- 'support.1min.ago': '1min ago',
441
- 'support.nmins.ago': '{0} mins ago'
442
- }}
443
- >
444
- <div>
445
- {toDates.map((to, i) => (
446
- <DateTimeDiffFormat
447
- key={i}
448
- from='2016-10-25T05:55:28.000Z'
449
- fromTzData={fromTzData}
450
- to={to}
451
- toTzData={toTzData}
452
- format={({ years, days, months, hours }, pattern) => {
453
- switch (pattern) {
454
- case '000000':
455
- case '000001':
456
- case '000002':
457
- return {
458
- key: 'now'
459
- };
460
- break;
461
- case '000010':
462
- return {
463
- key: 'support.1min'
464
- };
465
- break;
466
- case '000020':
467
- return {
468
- key: 'support.nmins',
469
- params: ['m']
470
- };
471
- break;
472
- case '001000':
473
- case '001100':
474
- return {
475
- key: 'support.1day'
476
- };
477
- break;
478
- case '001200':
479
- case '001201':
480
- return {
481
- key: 'support.1day.nhours',
482
- params: ['h']
483
- };
484
- break;
485
- }
486
- }}
487
- ago='ago'
488
- later='later'
489
- />
490
- ))}
491
- </div>
492
- </I18NProvider>
493
- );
494
- let tree = ele.toJSON();
495
- expect(tree).toMatchSnapshot();
496
- });
497
- it('Should display today later', () => {
498
- let ele = renderer.create(
499
- <I18NProvider
500
- i18n={{
501
- today: 'today',
502
- yesterday: 'yesterday',
503
- 'today.later': '{0}:{1}:{2} later'
504
- }}
505
- >
506
- <DateTimeDiffFormat
507
- from='2016-10-25T05:55:28.000Z'
508
- fromTzData={fromTzData}
509
- to='2016-10-25T05:55:29.000Z'
510
- toTzData={toTzData}
511
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
512
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
513
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
514
- others={({ years, days, hours, minutes }) => {
515
- if (days > 7) {
516
- return 'DD-MM-YYYY';
517
- }
518
- return getDateKeyWithParam(years, days, hours, minutes);
519
- }}
520
- ago='ago'
521
- later='later'
522
- />
523
- </I18NProvider>
524
- );
525
- let tree = ele.toJSON();
526
- expect(tree).toMatchSnapshot();
527
- });
528
- it('Should display today ago', () => {
529
- let ele = renderer.create(
530
- <I18NProvider
531
- i18n={{
532
- today: 'today',
533
- yesterday: 'yesterday',
534
- 'today.later': '{0}:{1}:{2} later',
535
- 'today.ago': '{0}:{1}:{2} ago'
536
- }}
537
- >
538
- <DateTimeDiffFormat
539
- from='2016-10-25T05:55:30.000Z'
540
- fromTzData={fromTzData}
541
- to='2016-10-25T05:55:29.000Z'
542
- toTzData={toTzData}
543
- today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
544
- yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
545
- tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
546
- others={({ years, days, hours, minutes }) => {
547
- if (days > 7) {
548
- return 'DD-MM-YYYY';
549
- }
550
- return getDateKeyWithParam(years, days, hours, minutes);
551
- }}
552
- ago='ago'
553
- later='later'
554
- />
555
- </I18NProvider>
556
- );
557
- let tree = ele.toJSON();
558
- expect(tree).toMatchSnapshot();
559
- });
560
- it('Should display years and days', () => {
561
- let ele = renderer.create(
562
- <I18NProvider
563
- i18n={{
564
- 'nyear.ndays.ago': '{0} years {1} days ago',
565
- yesterday: 'yesterday'
566
- }}
567
- >
568
- <DateTimeDiffFormat
569
- from='2017-10-25T05:55:28.000Z'
570
- fromTzData={fromTzData}
571
- to='2015-08-25T05:55:28.000Z'
572
- toTzData={toTzData}
573
- format={({ years, days, months, hours }, pattern) => {
574
- if (years > 1) {
575
- return {
576
- key: 'nyear.ndays',
577
- params: ['y', 'days']
578
- };
579
- }
580
- }}
581
- ago='ago'
582
- later='later'
583
- />
584
- </I18NProvider>
585
- );
586
- let tree = ele.toJSON();
587
- expect(tree).toMatchSnapshot();
588
- });
589
- it('Should display years and days1', () => {
590
- let ele = renderer.create(
591
- <I18NProvider
592
- i18n={{
593
- 'nyear.ndays.later': '{0} years {1} days later',
594
- yesterday: 'yesterday'
595
- }}
596
- >
597
- <DateTimeDiffFormat
598
- from='2015-08-25T05:55:28.000Z'
599
- fromTzData={fromTzData}
600
- to='2017-10-25T05:55:28.000Z'
601
- toTzData={toTzData}
602
- format={({ years, days, months, hours }, pattern) => {
603
- if (years > 1) {
604
- return {
605
- key: 'nyear.ndays',
606
- params: ['y', 'days']
607
- };
608
- }
609
- }}
610
- ago='ago'
611
- later='later'
612
- />
613
- </I18NProvider>
614
- );
615
- let tree = ele.toJSON();
616
- expect(tree).toMatchSnapshot();
617
- });
618
- });
1
+ import DateTimeDiffFormat from '../DateTimeDiffFormat';
2
+ import I18NProvider from '../I18NProvider';
3
+ import React from 'react';
4
+ import renderer from 'react-test-renderer';
5
+
6
+ let tzData = {
7
+ offsets: [154, 180],
8
+ untils: [1013911200000, null]
9
+ };
10
+
11
+ let fromTzData = tzData,
12
+ toTzData = tzData;
13
+
14
+ describe('DateTimeDiffFormat component', () => {
15
+ it('Should display yesterday - with same time', () => {
16
+ let ele = renderer.create(
17
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
18
+ <DateTimeDiffFormat
19
+ from='2016-10-25T06:55:28.000Z'
20
+ fromTzData={fromTzData}
21
+ to='2016-10-24T05:55:28.000Z'
22
+ toTzData={toTzData}
23
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
24
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
25
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
26
+ others={({ years, days, hours, minutes }) => {
27
+ if (days > 7) {
28
+ return 'DD-MM-YYYY';
29
+ }
30
+ return getDateKeyWithParam(years, days, hours, minutes);
31
+ }}
32
+ ago='ago'
33
+ later='later'
34
+ />
35
+ </I18NProvider>
36
+ );
37
+ let tree = ele.toJSON();
38
+ expect(tree).toMatchSnapshot();
39
+ });
40
+ it('Should display yesterday - less than 24 hour', () => {
41
+ let ele = renderer.create(
42
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
43
+ <DateTimeDiffFormat
44
+ from='2016-10-25T05:55:28.000Z'
45
+ fromTzData={fromTzData}
46
+ to='2016-10-24T06:55:28.000Z'
47
+ toTzData={toTzData}
48
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
49
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
50
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
51
+ others={({ years, days, hours, minutes }) => {
52
+ if (days > 7) {
53
+ return 'DD-MM-YYYY';
54
+ }
55
+ return getDateKeyWithParam(years, days, hours, minutes);
56
+ }}
57
+ ago='ago'
58
+ later='later'
59
+ />
60
+ </I18NProvider>
61
+ );
62
+ let tree = ele.toJSON();
63
+ expect(tree).toMatchSnapshot();
64
+ });
65
+ it('Should display yesterday - greater than 24 hour', () => {
66
+ let ele = renderer.create(
67
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
68
+ <DateTimeDiffFormat
69
+ from='2016-10-25T05:55:28.000Z'
70
+ fromTzData={fromTzData}
71
+ to='2016-10-24T04:55:28.000Z'
72
+ toTzData={toTzData}
73
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
74
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
75
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
76
+ others={({ years, days, hours, minutes }) => {
77
+ if (days > 7) {
78
+ return 'DD-MM-YYYY';
79
+ }
80
+ return getDateKeyWithParam(years, days, hours, minutes);
81
+ }}
82
+ ago='ago'
83
+ later='later'
84
+ />
85
+ </I18NProvider>
86
+ );
87
+ let tree = ele.toJSON();
88
+ expect(tree).toMatchSnapshot();
89
+ });
90
+ it('Should display today key - same time', () => {
91
+ let ele = renderer.create(
92
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
93
+ <DateTimeDiffFormat
94
+ from='2016-10-25T05:55:28.000Z'
95
+ fromTzData={fromTzData}
96
+ to='2016-10-25T05:55:28.000Z'
97
+ toTzData={toTzData}
98
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
99
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
100
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
101
+ others={({ years, days, hours, minutes }) => {
102
+ if (days > 7) {
103
+ return 'DD-MM-YYYY';
104
+ }
105
+ return getDateKeyWithParam(years, days, hours, minutes);
106
+ }}
107
+ ago='ago'
108
+ later='later'
109
+ />
110
+ </I18NProvider>
111
+ );
112
+ let tree = ele.toJSON();
113
+ expect(tree).toMatchSnapshot();
114
+ });
115
+
116
+ it('Should display today key - less than 24 hour', () => {
117
+ let ele = renderer.create(
118
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
119
+ <DateTimeDiffFormat
120
+ from='2016-10-25T05:55:28.000Z'
121
+ fromTzData={fromTzData}
122
+ to='2016-10-25T04:55:28.000Z'
123
+ toTzData={toTzData}
124
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
125
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
126
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
127
+ others={({ years, days, hours, minutes }) => {
128
+ if (days > 7) {
129
+ return 'DD-MM-YYYY';
130
+ }
131
+ return getDateKeyWithParam(years, days, hours, minutes);
132
+ }}
133
+ ago='ago'
134
+ later='later'
135
+ />
136
+ </I18NProvider>
137
+ );
138
+ let tree = ele.toJSON();
139
+ expect(tree).toMatchSnapshot();
140
+ });
141
+ it('Should display today key - greater than 24 hour', () => {
142
+ let ele = renderer.create(
143
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
144
+ <DateTimeDiffFormat
145
+ from='2016-10-25T05:55:28.000Z'
146
+ fromTzData={fromTzData}
147
+ to='2016-10-25T06:55:28.000Z'
148
+ toTzData={toTzData}
149
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
150
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
151
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
152
+ others={({ years, days, hours, minutes }) => {
153
+ if (days > 7) {
154
+ return 'DD-MM-YYYY';
155
+ }
156
+ return getDateKeyWithParam(years, days, hours, minutes);
157
+ }}
158
+ ago='ago'
159
+ later='later'
160
+ />
161
+ </I18NProvider>
162
+ );
163
+ let tree = ele.toJSON();
164
+ expect(tree).toMatchSnapshot();
165
+ });
166
+ it('Should display tomorrow key - same time', () => {
167
+ let ele = renderer.create(
168
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
169
+ <DateTimeDiffFormat
170
+ from='2016-10-25T05:55:28.000Z'
171
+ fromTzData={fromTzData}
172
+ to='2016-10-26T05:55:28.000Z'
173
+ toTzData={toTzData}
174
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
175
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
176
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
177
+ others={({ years, days, hours, minutes }) => {
178
+ if (days > 7) {
179
+ return 'DD-MM-YYYY';
180
+ }
181
+ return getDateKeyWithParam(years, days, hours, minutes);
182
+ }}
183
+ ago='ago'
184
+ later='later'
185
+ />
186
+ </I18NProvider>
187
+ );
188
+ let tree = ele.toJSON();
189
+ expect(tree).toMatchSnapshot();
190
+ });
191
+ it('Should display tomorrow key - less than 24 hour', () => {
192
+ let ele = renderer.create(
193
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
194
+ <DateTimeDiffFormat
195
+ from='2016-10-25T05:55:28.000Z'
196
+ fromTzData={fromTzData}
197
+ to='2016-10-26T04:55:28.000Z'
198
+ toTzData={toTzData}
199
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
200
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
201
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
202
+ others={({ years, days, hours, minutes }) => {
203
+ if (days > 7) {
204
+ return 'DD-MM-YYYY';
205
+ }
206
+ return getDateKeyWithParam(years, days, hours, minutes);
207
+ }}
208
+ ago='ago'
209
+ later='later'
210
+ />
211
+ </I18NProvider>
212
+ );
213
+ let tree = ele.toJSON();
214
+ expect(tree).toMatchSnapshot();
215
+ });
216
+ it('Should display tomorrow key - greater than 24 hour', () => {
217
+ let ele = renderer.create(
218
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
219
+ <DateTimeDiffFormat
220
+ from='2016-10-25T05:55:28.000Z'
221
+ fromTzData={fromTzData}
222
+ to='2016-10-26T06:55:28.000Z'
223
+ toTzData={toTzData}
224
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
225
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
226
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
227
+ others={({ years, days, hours, minutes }) => {
228
+ if (days > 7) {
229
+ return 'DD-MM-YYYY';
230
+ }
231
+ return getDateKeyWithParam(years, days, hours, minutes);
232
+ }}
233
+ ago='ago'
234
+ later='later'
235
+ />
236
+ </I18NProvider>
237
+ );
238
+ let tree = ele.toJSON();
239
+ expect(tree).toMatchSnapshot();
240
+ });
241
+ it('Should display other - same time', () => {
242
+ let ele = renderer.create(
243
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
244
+ <DateTimeDiffFormat
245
+ from='2016-10-25T05:55:28.000Z'
246
+ fromTzData={fromTzData}
247
+ to='2016-10-23T05:55:28.000Z'
248
+ toTzData={toTzData}
249
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
250
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
251
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
252
+ others={({ years, days, hours, minutes, suffix }) => {
253
+ if (days > 7) {
254
+ return 'DD-MM-YYYY';
255
+ }
256
+ return '[less 7] DD-MM-YYYY';
257
+ }}
258
+ ago='ago'
259
+ later='later'
260
+ />
261
+ </I18NProvider>
262
+ );
263
+ let tree = ele.toJSON();
264
+ expect(tree).toMatchSnapshot();
265
+ });
266
+ it('Should display other - greater time', () => {
267
+ let ele = renderer.create(
268
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
269
+ <DateTimeDiffFormat
270
+ from='2016-10-25T05:55:28.000Z'
271
+ fromTzData={fromTzData}
272
+ to='2016-10-23T06:55:28.000Z'
273
+ toTzData={toTzData}
274
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
275
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
276
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
277
+ others={({ years, days, hours, minutes, suffix }) => {
278
+ if (days > 7) {
279
+ return 'DD-MM-YYYY';
280
+ }
281
+ return '[less 7] DD-MM-YYYY';
282
+ }}
283
+ ago='ago'
284
+ later='later'
285
+ />
286
+ </I18NProvider>
287
+ );
288
+ let tree = ele.toJSON();
289
+ expect(tree).toMatchSnapshot();
290
+ });
291
+ it('Should display other - less time', () => {
292
+ let ele = renderer.create(
293
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
294
+ <DateTimeDiffFormat
295
+ from='2016-10-25T05:55:28.000Z'
296
+ fromTzData={fromTzData}
297
+ to='2016-10-23T04:55:28.000Z'
298
+ toTzData={toTzData}
299
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
300
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
301
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
302
+ others={({ years, days, hours, minutes, suffix }) => {
303
+ if (days > 7) {
304
+ return 'DD-MM-YYYY';
305
+ }
306
+ return '[less 7] DD-MM-YYYY';
307
+ }}
308
+ ago='ago'
309
+ later='later'
310
+ />
311
+ </I18NProvider>
312
+ );
313
+ let tree = ele.toJSON();
314
+ expect(tree).toMatchSnapshot();
315
+ });
316
+ it('Should display other later- same time', () => {
317
+ let ele = renderer.create(
318
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
319
+ <DateTimeDiffFormat
320
+ from='2016-10-25T05:55:28.000Z'
321
+ fromTzData={fromTzData}
322
+ to='2016-10-27T05:55:28.000Z'
323
+ toTzData={toTzData}
324
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
325
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
326
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
327
+ others={({ years, days, hours, minutes, suffix, isWithInAWeek }) => {
328
+ if (days > 7) {
329
+ return 'DD-MM-YYYY';
330
+ }
331
+ return '[less 7] DD-MM-YYYY';
332
+ }}
333
+ ago='ago'
334
+ later='later'
335
+ />
336
+ </I18NProvider>
337
+ );
338
+ let tree = ele.toJSON();
339
+ expect(tree).toMatchSnapshot();
340
+ });
341
+ it('Should display other later- less time', () => {
342
+ let ele = renderer.create(
343
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
344
+ <DateTimeDiffFormat
345
+ from='2016-10-25T05:55:28.000Z'
346
+ fromTzData={fromTzData}
347
+ to='2016-10-27T06:55:28.000Z'
348
+ toTzData={toTzData}
349
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
350
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
351
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
352
+ others={({ years, days, hours, minutes, suffix }) => {
353
+ if (days > 7) {
354
+ return 'DD-MM-YYYY';
355
+ }
356
+ return '[less 7] DD-MM-YYYY';
357
+ }}
358
+ ago='ago'
359
+ later='later'
360
+ />
361
+ </I18NProvider>
362
+ );
363
+ let tree = ele.toJSON();
364
+ expect(tree).toMatchSnapshot();
365
+ });
366
+ it('Should display other later- less time', () => {
367
+ let ele = renderer.create(
368
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
369
+ <DateTimeDiffFormat
370
+ from='2016-10-25T05:55:28.000Z'
371
+ fromTzData={fromTzData}
372
+ to='2016-10-27T04:55:28.000Z'
373
+ toTzData={toTzData}
374
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
375
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
376
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
377
+ others={({ years, days, hours, minutes, suffix }) => {
378
+ if (days > 7) {
379
+ return 'DD-MM-YYYY';
380
+ }
381
+ return '[less 7] DD-MM-YYYY';
382
+ }}
383
+ ago='ago'
384
+ later='later'
385
+ />
386
+ </I18NProvider>
387
+ );
388
+ let tree = ele.toJSON();
389
+ expect(tree).toMatchSnapshot();
390
+ });
391
+ it('Should display others', () => {
392
+ let ele = renderer.create(
393
+ <I18NProvider i18n={{ today: 'today', yesterday: 'yesterday' }}>
394
+ <DateTimeDiffFormat
395
+ from='2016-10-25T05:55:28.000Z'
396
+ fromTzData={fromTzData}
397
+ to='2016-11-27T05:55:28.000Z'
398
+ toTzData={toTzData}
399
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
400
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
401
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
402
+ others={({ years, days, hours, minutes, suffix, isWithInAWeek }) => {
403
+ if (days > 7) {
404
+ return 'DD-MM-YYYY';
405
+ }
406
+ return '[less 7] DD-MM-YYYY';
407
+ }}
408
+ ago='ago'
409
+ later='later'
410
+ />
411
+ </I18NProvider>
412
+ );
413
+ let tree = ele.toJSON();
414
+ expect(tree).toMatchSnapshot();
415
+ });
416
+
417
+ it('Should display today1', () => {
418
+ let toDates = [
419
+ '2016-10-24T05:55:28.000Z',
420
+ '2016-10-24T06:55:28.000Z',
421
+ '2016-10-24T04:55:28.000Z',
422
+ '2016-10-25T05:55:28.000Z',
423
+ '2016-10-25T04:55:28.000Z',
424
+ '2016-10-25T06:55:28.000Z',
425
+ '2016-10-26T05:55:28.000Z',
426
+ '2016-10-26T04:55:28.000Z',
427
+ '2016-10-26T06:55:28.000Z',
428
+ '2016-10-23T05:55:28.000Z',
429
+ '2016-10-23T04:55:28.000Z',
430
+ '2016-10-23T06:55:28.000Z'
431
+ ];
432
+ let ele = renderer.create(
433
+ <I18NProvider
434
+ i18n={{
435
+ today: 'today',
436
+ yesterday: 'yesterday',
437
+ now: 'noooow',
438
+ 'support.1day.ago': '1day ago',
439
+ 'support.1day.nhours.ago': 'one day {0} hours ago',
440
+ 'support.1min.ago': '1min ago',
441
+ 'support.nmins.ago': '{0} mins ago'
442
+ }}
443
+ >
444
+ <div>
445
+ {toDates.map((to, i) => (
446
+ <DateTimeDiffFormat
447
+ key={i}
448
+ from='2016-10-25T05:55:28.000Z'
449
+ fromTzData={fromTzData}
450
+ to={to}
451
+ toTzData={toTzData}
452
+ format={({ years, days, months, hours }, pattern) => {
453
+ switch (pattern) {
454
+ case '000000':
455
+ case '000001':
456
+ case '000002':
457
+ return {
458
+ key: 'now'
459
+ };
460
+ break;
461
+ case '000010':
462
+ return {
463
+ key: 'support.1min'
464
+ };
465
+ break;
466
+ case '000020':
467
+ return {
468
+ key: 'support.nmins',
469
+ params: ['m']
470
+ };
471
+ break;
472
+ case '001000':
473
+ case '001100':
474
+ return {
475
+ key: 'support.1day'
476
+ };
477
+ break;
478
+ case '001200':
479
+ case '001201':
480
+ return {
481
+ key: 'support.1day.nhours',
482
+ params: ['h']
483
+ };
484
+ break;
485
+ }
486
+ }}
487
+ ago='ago'
488
+ later='later'
489
+ />
490
+ ))}
491
+ </div>
492
+ </I18NProvider>
493
+ );
494
+ let tree = ele.toJSON();
495
+ expect(tree).toMatchSnapshot();
496
+ });
497
+ it('Should display today later', () => {
498
+ let ele = renderer.create(
499
+ <I18NProvider
500
+ i18n={{
501
+ today: 'today',
502
+ yesterday: 'yesterday',
503
+ 'today.later': '{0}:{1}:{2} later'
504
+ }}
505
+ >
506
+ <DateTimeDiffFormat
507
+ from='2016-10-25T05:55:28.000Z'
508
+ fromTzData={fromTzData}
509
+ to='2016-10-25T05:55:29.000Z'
510
+ toTzData={toTzData}
511
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
512
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
513
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
514
+ others={({ years, days, hours, minutes }) => {
515
+ if (days > 7) {
516
+ return 'DD-MM-YYYY';
517
+ }
518
+ return getDateKeyWithParam(years, days, hours, minutes);
519
+ }}
520
+ ago='ago'
521
+ later='later'
522
+ />
523
+ </I18NProvider>
524
+ );
525
+ let tree = ele.toJSON();
526
+ expect(tree).toMatchSnapshot();
527
+ });
528
+ it('Should display today ago', () => {
529
+ let ele = renderer.create(
530
+ <I18NProvider
531
+ i18n={{
532
+ today: 'today',
533
+ yesterday: 'yesterday',
534
+ 'today.later': '{0}:{1}:{2} later',
535
+ 'today.ago': '{0}:{1}:{2} ago'
536
+ }}
537
+ >
538
+ <DateTimeDiffFormat
539
+ from='2016-10-25T05:55:30.000Z'
540
+ fromTzData={fromTzData}
541
+ to='2016-10-25T05:55:29.000Z'
542
+ toTzData={toTzData}
543
+ today={{ key: 'today', params: ['hh', 'mm', 'ss'] }}
544
+ yesterday={{ key: 'yesterday', params: ['hh', 'mm', 'ss'] }}
545
+ tomorrow={{ key: 'tomorrow', params: ['hh', 'mm', 'ss'] }}
546
+ others={({ years, days, hours, minutes }) => {
547
+ if (days > 7) {
548
+ return 'DD-MM-YYYY';
549
+ }
550
+ return getDateKeyWithParam(years, days, hours, minutes);
551
+ }}
552
+ ago='ago'
553
+ later='later'
554
+ />
555
+ </I18NProvider>
556
+ );
557
+ let tree = ele.toJSON();
558
+ expect(tree).toMatchSnapshot();
559
+ });
560
+ it('Should display years and days', () => {
561
+ let ele = renderer.create(
562
+ <I18NProvider
563
+ i18n={{
564
+ 'nyear.ndays.ago': '{0} years {1} days ago',
565
+ yesterday: 'yesterday'
566
+ }}
567
+ >
568
+ <DateTimeDiffFormat
569
+ from='2017-10-25T05:55:28.000Z'
570
+ fromTzData={fromTzData}
571
+ to='2015-08-25T05:55:28.000Z'
572
+ toTzData={toTzData}
573
+ format={({ years, days, months, hours }, pattern) => {
574
+ if (years > 1) {
575
+ return {
576
+ key: 'nyear.ndays',
577
+ params: ['y', 'days']
578
+ };
579
+ }
580
+ }}
581
+ ago='ago'
582
+ later='later'
583
+ />
584
+ </I18NProvider>
585
+ );
586
+ let tree = ele.toJSON();
587
+ expect(tree).toMatchSnapshot();
588
+ });
589
+ it('Should display years and days1', () => {
590
+ let ele = renderer.create(
591
+ <I18NProvider
592
+ i18n={{
593
+ 'nyear.ndays.later': '{0} years {1} days later',
594
+ yesterday: 'yesterday'
595
+ }}
596
+ >
597
+ <DateTimeDiffFormat
598
+ from='2015-08-25T05:55:28.000Z'
599
+ fromTzData={fromTzData}
600
+ to='2017-10-25T05:55:28.000Z'
601
+ toTzData={toTzData}
602
+ format={({ years, days, months, hours }, pattern) => {
603
+ if (years > 1) {
604
+ return {
605
+ key: 'nyear.ndays',
606
+ params: ['y', 'days']
607
+ };
608
+ }
609
+ }}
610
+ ago='ago'
611
+ later='later'
612
+ />
613
+ </I18NProvider>
614
+ );
615
+ let tree = ele.toJSON();
616
+ expect(tree).toMatchSnapshot();
617
+ });
618
+ });