mirror of
https://github.com/tc39/test262.git
synced 2025-07-27 07:54:41 +02:00
Added tests to verify that use of "long", "short", or "narrow" styles for units following units using "numeric" or "2-digit" styles throws
This commit is contained in:
parent
67a5153cf5
commit
80590ce79a
@ -0,0 +1,43 @@
|
|||||||
|
// Copyright 2023 Igalia, S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-isvaliddurationrecord
|
||||||
|
description: Checks that the "long", "short", and "narrow" styles can't be used for units following a unit using the "numeric" or "2-digit" style.
|
||||||
|
info: |
|
||||||
|
GetDurationUnitOptions (unit, options, baseStyle, stylesList, digitalBase, prevStyle)
|
||||||
|
(...)
|
||||||
|
6. If prevStyle is "numeric" or "2-digit", then
|
||||||
|
a. If style is not "numeric" or "2-digit", then
|
||||||
|
i. Throw a RangeError exception.
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
let invalidOptions = {};
|
||||||
|
for (const timeUnit of ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"]){
|
||||||
|
invalidOptions[timeUnit] = "numeric";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const timeUnit of ["minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"]){
|
||||||
|
for (const invalidStyle of ["long", "short", "narrow"]){
|
||||||
|
invalidOptions[timeUnit] = invalidStyle;
|
||||||
|
assert.throws(RangeError, function() {
|
||||||
|
new Intl.DurationFormat([], invalidOptions);
|
||||||
|
}, `${invalidStyle} is an invalid style option value when following a unit with \"numeric\" style`);
|
||||||
|
}
|
||||||
|
invalidOptions[timeUnit] = "numeric";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const timeUnit of ["hours", "minutes", "seconds"]){
|
||||||
|
invalidOptions[timeUnit] = "2-digit";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const timeUnit of ["minutes", "seconds", "milliseconds"]){
|
||||||
|
for (const invalidStyle of ["long", "short", "narrow"]){
|
||||||
|
invalidOptions[timeUnit] = invalidStyle;
|
||||||
|
assert.throws(RangeError, function() {
|
||||||
|
new Intl.DurationFormat([], invalidOptions);
|
||||||
|
}, `${invalidStyle} is an invalid style option value when following a unit with \"2-digit\" style`);
|
||||||
|
}
|
||||||
|
invalidOptions[timeUnit] = "2-digit";
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user