@@ -5,6 +5,40 @@ import { localizeTearDown } from '../../test-helpers.js';
5
5
import { formatDate } from '../../src/date/formatDate.js' ;
6
6
import { parseDate } from '../../src/date/parseDate.js' ;
7
7
8
+ const SUPPORTED_LOCALES = {
9
+ 'bg-BG' : 'Bulgarian' ,
10
+ 'cs-CZ' : 'Czech' ,
11
+ 'de-DE' : 'German (Germany)' ,
12
+ 'en-AU' : 'English (Australia)' ,
13
+ 'en-GB' : 'English (United Kingdom)' ,
14
+ 'en-PH' : 'English (Philippines)' ,
15
+ 'en-US' : 'English (United States)' ,
16
+ 'es-ES' : 'Spanish (Spain)' ,
17
+ 'fr-FR' : 'French (France)' ,
18
+ 'fr-BE' : 'French (Belgium)' ,
19
+ 'hu-HU' : 'Hungarian (Hungary)' ,
20
+ 'id-ID' : 'Indonesian (Indonesia)' ,
21
+ 'it-IT' : 'Italian (Italy)' ,
22
+ 'nl-NL' : 'Dutch (Netherlands)' ,
23
+ 'nl-BE' : 'Dutch (Belgium)' ,
24
+ 'pl-PL' : 'Polish (Poland)' ,
25
+ 'ro-RO' : 'Romanian (Romania)' ,
26
+ 'ru-RU' : 'Russian (Russia)' ,
27
+ 'sk-SK' : 'Slovak (Slovakia)' ,
28
+ 'tr-TR' : 'Turkish (Turkey)' ,
29
+ 'uk-UA' : 'Ukrainian (Ukraine)' ,
30
+ 'zh-CN' : 'Chinese (China)' ,
31
+ 'zh-Hans' : 'Chinese (Simplified Han)' ,
32
+ 'zh-Hans-CN' : 'Chinese (Simplified Han, China)' ,
33
+ 'zh-Hans-HK' : 'Chinese (Simplified Han, Hong Kong SAR China)' ,
34
+ 'zh-Hans-MO' : 'Chinese (Simplified Han, Macau SAR China)' ,
35
+ 'zh-Hans-SG' : 'Chinese (Simplified Han, Singapore)' ,
36
+ 'zh-Hant' : 'Chinese (Traditional Han)' ,
37
+ 'zh-Hant-HK' : 'Chinese (Traditional Han, Hong Kong SAR China)' ,
38
+ 'zh-Hant-MO' : 'Chinese (Traditional Han, Macau SAR China)' ,
39
+ 'zh-Hant-TW' : 'Chinese (Traditional Han, Taiwan)' ,
40
+ } ;
41
+
8
42
describe ( 'formatDate' , ( ) => {
9
43
beforeEach ( ( ) => {
10
44
localizeTearDown ( ) ;
@@ -124,14 +158,53 @@ describe('formatDate', () => {
124
158
expect ( formatDate ( parsedDate , options ) ) . to . equal ( 'maandag 01 januari 1940' ) ;
125
159
} ) ;
126
160
127
- it ( 'handles options without year' , async ( ) => {
128
- const options = {
129
- weekday : 'long' ,
130
- month : 'long' ,
131
- day : '2-digit' ,
161
+ describe ( 'Date format options without "year"' , ( ) => {
162
+ const LOCALE_FORMATTED_DATE_MAP = {
163
+ 'bg-BG' : 'събота, 12 октомври' ,
164
+ 'cs-CZ' : 'sobota 12. října' ,
165
+ 'de-DE' : 'Samstag, 12. Oktober' ,
166
+ 'en-AU' : 'Saturday, 12 October' ,
167
+ 'en-GB' : 'Saturday, 12 October' ,
168
+ 'en-PH' : 'Saturday, 12 October' ,
169
+ 'en-US' : 'Saturday, October 12' ,
170
+ 'es-ES' : 'sábado, 12 de octubre' ,
171
+ 'fr-FR' : 'samedi 12 octobre' ,
172
+ 'fr-BE' : 'samedi 12 octobre' ,
173
+ 'hu-HU' : 'október 12., szombat' ,
174
+ 'id-ID' : 'Sabtu, 12 Oktober' ,
175
+ 'it-IT' : 'sabato 12 ottobre' ,
176
+ 'nl-NL' : 'zaterdag 12 oktober' ,
177
+ 'nl-BE' : 'zaterdag 12 oktober' ,
178
+ 'pl-PL' : 'sobota, 12 października' ,
179
+ 'ro-RO' : 'sâmbătă, 12 octombrie' ,
180
+ 'ru-RU' : 'суббота, 12 октября' ,
181
+ 'sk-SK' : 'sobota 12. októbra' ,
182
+ 'tr-TR' : '12 Ekim Cumartesi' ,
183
+ 'uk-UA' : 'субота, 12 жовтня' ,
184
+ 'zh-CN' : '10月12日星期六' ,
185
+ 'zh-Hans' : '10月12日星期六' ,
186
+ 'zh-Hans-CN' : '10月12日星期六' ,
187
+ 'zh-Hans-HK' : '10月12日星期六' ,
188
+ 'zh-Hans-MO' : '10月12日星期六' ,
189
+ 'zh-Hans-SG' : '10月12日星期六' ,
190
+ 'zh-Hant' : '10月12日 星期六' ,
191
+ 'zh-Hant-HK' : '10月12日星期六' ,
192
+ 'zh-Hant-MO' : '10月12日星期六' ,
193
+ 'zh-Hant-TW' : '10月12日 星期六' ,
132
194
} ;
133
- const parsedDate = /** @type {Date } */ ( parseDate ( '12.10.2019' ) ) ;
134
- expect ( formatDate ( parsedDate , options ) ) . to . equal ( 'Saturday, 12 October' ) ;
195
+
196
+ Object . keys ( SUPPORTED_LOCALES ) . forEach ( locale => {
197
+ it ( `handles options without year for locale: ${ locale } ` , async ( ) => {
198
+ const options = {
199
+ weekday : 'long' ,
200
+ month : 'long' ,
201
+ day : '2-digit' ,
202
+ locale,
203
+ } ;
204
+ const parsedDate = /** @type {Date } */ ( parseDate ( '12.10.2019' ) ) ;
205
+ expect ( formatDate ( parsedDate , options ) ) . to . equal ( LOCALE_FORMATTED_DATE_MAP [ locale ] ) ;
206
+ } ) ;
207
+ } ) ;
135
208
} ) ;
136
209
137
210
it ( 'handles options without month' , async ( ) => {
0 commit comments