From aa5fc0a511715a8f1deb703cd5734a94e1ec22eb Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Fri, 28 Jun 2024 01:13:39 +0300 Subject: [PATCH] Temporal: Add tests for conversion of calendar and time zone IDs in constructors Now that we don't have to deal with strings or objects as input to the calendar ID or time zone ID parameter of constructors, we accept only the data that actually goes into the internal slots. --- .../Temporal/PlainDate/calendar-iso-string.js | 14 ++++++++++++++ .../Temporal/PlainDateTime/calendar-iso-string.js | 14 ++++++++++++++ .../Temporal/PlainMonthDay/calendar-iso-string.js | 14 ++++++++++++++ .../Temporal/PlainYearMonth/calendar-iso-string.js | 14 ++++++++++++++ .../Temporal/ZonedDateTime/calendar-iso-string.js | 14 ++++++++++++++ .../Temporal/ZonedDateTime/timezone-iso-string.js | 14 ++++++++++++++ 6 files changed, 84 insertions(+) create mode 100644 test/built-ins/Temporal/PlainDate/calendar-iso-string.js create mode 100644 test/built-ins/Temporal/PlainDateTime/calendar-iso-string.js create mode 100644 test/built-ins/Temporal/PlainMonthDay/calendar-iso-string.js create mode 100644 test/built-ins/Temporal/PlainYearMonth/calendar-iso-string.js create mode 100644 test/built-ins/Temporal/ZonedDateTime/calendar-iso-string.js create mode 100644 test/built-ins/Temporal/ZonedDateTime/timezone-iso-string.js diff --git a/test/built-ins/Temporal/PlainDate/calendar-iso-string.js b/test/built-ins/Temporal/PlainDate/calendar-iso-string.js new file mode 100644 index 00000000000..444815b189d --- /dev/null +++ b/test/built-ins/Temporal/PlainDate/calendar-iso-string.js @@ -0,0 +1,14 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindate.constructor +description: An ISO string is not valid input for a constructor's calendar param +features: [Temporal] +---*/ + +assert.throws( + RangeError, + () => new Temporal.PlainDate(2000, 5, 2, "1997-12-04[u-ca=iso8601]"), + "An ISO string is not a valid calendar ID for constructor parameter" +); diff --git a/test/built-ins/Temporal/PlainDateTime/calendar-iso-string.js b/test/built-ins/Temporal/PlainDateTime/calendar-iso-string.js new file mode 100644 index 00000000000..4bc1431607b --- /dev/null +++ b/test/built-ins/Temporal/PlainDateTime/calendar-iso-string.js @@ -0,0 +1,14 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaindatetime.constructor +description: An ISO string is not valid input for a constructor's calendar param +features: [Temporal] +---*/ + +assert.throws( + RangeError, + () => new Temporal.PlainDateTime(2000, 5, 2, 15, 23, 30, 987, 654, 321, "1997-12-04[u-ca=iso8601]"), + "An ISO string is not a valid calendar ID for constructor parameter" +); diff --git a/test/built-ins/Temporal/PlainMonthDay/calendar-iso-string.js b/test/built-ins/Temporal/PlainMonthDay/calendar-iso-string.js new file mode 100644 index 00000000000..9affdf732f2 --- /dev/null +++ b/test/built-ins/Temporal/PlainMonthDay/calendar-iso-string.js @@ -0,0 +1,14 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plainmonthday.constructor +description: An ISO string is not valid input for a constructor's calendar param +features: [Temporal] +---*/ + +assert.throws( + RangeError, + () => new Temporal.PlainMonthDay(12, 15, "1997-12-04[u-ca=iso8601]", 1972), + "An ISO string is not a valid calendar ID for constructor parameter" +); diff --git a/test/built-ins/Temporal/PlainYearMonth/calendar-iso-string.js b/test/built-ins/Temporal/PlainYearMonth/calendar-iso-string.js new file mode 100644 index 00000000000..5373947175a --- /dev/null +++ b/test/built-ins/Temporal/PlainYearMonth/calendar-iso-string.js @@ -0,0 +1,14 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plainyearmonth.constructor +description: An ISO string is not valid input for a constructor's calendar param +features: [Temporal] +---*/ + +assert.throws( + RangeError, + () => new Temporal.PlainYearMonth(2000, 5, "1997-12-04[u-ca=iso8601]", 1), + "An ISO string is not a valid calendar ID for constructor parameter" +); diff --git a/test/built-ins/Temporal/ZonedDateTime/calendar-iso-string.js b/test/built-ins/Temporal/ZonedDateTime/calendar-iso-string.js new file mode 100644 index 00000000000..d47b0ec013f --- /dev/null +++ b/test/built-ins/Temporal/ZonedDateTime/calendar-iso-string.js @@ -0,0 +1,14 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.constructor +description: An ISO string is not valid input for a constructor's calendar param +features: [Temporal] +---*/ + +assert.throws( + RangeError, + () => new Temporal.ZonedDateTime(0n, "UTC", "1997-12-04[u-ca=iso8601]"), + "An ISO string is not a valid calendar ID for constructor parameter" +); diff --git a/test/built-ins/Temporal/ZonedDateTime/timezone-iso-string.js b/test/built-ins/Temporal/ZonedDateTime/timezone-iso-string.js new file mode 100644 index 00000000000..27b7162edee --- /dev/null +++ b/test/built-ins/Temporal/ZonedDateTime/timezone-iso-string.js @@ -0,0 +1,14 @@ +// Copyright (C) 2024 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.zoneddatetime.constructor +description: An ISO string is not valid input for a constructor's time zone param +features: [Temporal] +---*/ + +assert.throws( + RangeError, + () => new Temporal.ZonedDateTime(0n, "1997-12-04T12:34[+01:00]", "iso8601"), + "An ISO string is not a valid calendar ID for constructor parameter" +);