@@ -14,17 +14,104 @@ afterEach(() => {
14
14
} )
15
15
16
16
it ( 'Upgrades old locale objects' , ( ) => {
17
- // English is the default locale used for tests;
18
- // initially it is defined by the old locale structure
19
- expect ( dayjs . en ) . toBeDefined ( )
20
- expect ( dayjs . en . relativeTime ) . toBeDefined ( )
21
- expect ( dayjs . en . relativeTime . s ) . toBeDefined ( )
22
- expect ( dayjs . en . relativeTime . duration ) . toBeUndefined ( )
17
+ const old = {
18
+ name : 'old-relativeTime' ,
19
+ relativeTime : {
20
+ future : 'in %s' ,
21
+ past : '%s ago' ,
22
+ s : 'a few seconds' ,
23
+ m : 'a minute' ,
24
+ mm : '%d minutes' ,
25
+ h : 'an hour' ,
26
+ hh : '%d hours' ,
27
+ d : 'a day' ,
28
+ dd : '%d days' ,
29
+ M : 'a month' ,
30
+ MM : '%d months' ,
31
+ y : 'a year' ,
32
+ yy : '%d years'
33
+ }
34
+ }
35
+ dayjs . locale ( old , null , true )
36
+ const locale = dayjs ( undefined , { locale : 'old-relativeTime' } ) . $locale ( )
23
37
// Call the plugin to upgrade the locale structure on the fly
24
- dayjs ( ) . from ( dayjs ( ) )
25
- // English locale has been upgraded to the new locale structure
26
- expect ( dayjs . en . relativeTime . s ) . toBeUndefined ( )
27
- expect ( dayjs . en . relativeTime . duration ) . toBeDefined ( )
38
+ dayjs ( undefined , { locale : 'old-relativeTime' } ) . fromNow ( )
39
+ // The locale has been upgraded to the new locale structure
40
+ expect ( locale . relativeTime . s ) . toBeUndefined ( )
41
+ expect ( typeof locale . relativeTime . duration ) . toEqual ( 'object' )
42
+ expect ( Array . isArray ( [ locale . relativeTime . duration . s ] ) ) . toBeTruthy ( )
43
+ expect ( typeof locale . relativeTime . duration . s [ 0 ] ) . toEqual ( 'string' )
44
+ expect ( typeof locale . relativeTime . pluralRule ) . toEqual ( 'number' )
45
+ } )
46
+
47
+ it ( 'Upgrades improved locale objects' , ( ) => {
48
+ const improved = {
49
+ name : 'improved-relativeTime' ,
50
+ relativeTime : {
51
+ duration : {
52
+ s : 'několik sekund' ,
53
+ m : 'minuta' ,
54
+ mm : '%d minuty' ,
55
+ mmm : '%d minut' ,
56
+ h : 'hodina' ,
57
+ hh : '%d hodiny' ,
58
+ hhh : '%d hodin' ,
59
+ d : 'den' ,
60
+ dd : '%d dny' ,
61
+ ddd : '%d dní' ,
62
+ M : 'měsíc' ,
63
+ MM : '%d měsíce' ,
64
+ MMM : '%d měsícú' ,
65
+ y : 'rok' ,
66
+ yy : '%d roky' ,
67
+ yyy : '%d let'
68
+ } ,
69
+ future : {
70
+ s : 'za několik sekund' ,
71
+ m : 'za minutu' ,
72
+ mm : 'za %d minuty' ,
73
+ mmm : 'za %d minut' ,
74
+ h : 'za hodinu' ,
75
+ hh : 'za %d hodiny' ,
76
+ hhh : 'za %d hodin' ,
77
+ d : 'zítra' ,
78
+ dd : 'za %d dny' ,
79
+ ddd : 'za %d dní' ,
80
+ M : 'za měsíc' ,
81
+ MM : 'za %d měsíce' ,
82
+ MMM : 'za %d měsícú' ,
83
+ y : 'za rok' ,
84
+ yy : 'za %d roky' ,
85
+ yyy : 'za %d let'
86
+ } ,
87
+ past : {
88
+ s : 'před několika sekundami' ,
89
+ m : 'před minutou' ,
90
+ mm : 'před %d minutami' ,
91
+ mmm : 'před %d minutami' ,
92
+ h : 'před hodinou' ,
93
+ hh : 'před %d hodinami' ,
94
+ hhh : 'před %d hodinami' ,
95
+ d : 'včera' ,
96
+ dd : 'před %d dny' ,
97
+ ddd : 'před %d dny' ,
98
+ M : 'před měsícem' ,
99
+ MM : 'před %d měsíci' ,
100
+ MMM : 'před %d měsíci' ,
101
+ y : 'vloni' ,
102
+ yy : 'před %d roky' ,
103
+ yyy : 'před %d lety'
104
+ }
105
+ }
106
+ }
107
+ dayjs . locale ( improved , null , true )
108
+ const locale = dayjs ( undefined , { locale : 'improved-relativeTime' } ) . $locale ( )
109
+ // Call the plugin to upgrade the locale structure on the fly
110
+ dayjs ( undefined , { locale : 'improved-relativeTime' } ) . fromNow ( )
111
+ // The locale has been upgraded to the new locale structure
112
+ expect ( Array . isArray ( [ locale . relativeTime . duration . s ] ) ) . toBeTruthy ( )
113
+ expect ( typeof locale . relativeTime . duration . s [ 0 ] ) . toEqual ( 'string' )
114
+ expect ( typeof locale . relativeTime . pluralRule ) . toEqual ( 'number' )
28
115
} )
29
116
30
117
it ( 'Time from X' , ( ) => {
0 commit comments