From 0af3bcc5820c250b9148a2094590d9b5be1a5c0f 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 0000000000..444815b189 --- /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 0000000000..4bc1431607 --- /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 0000000000..9affdf732f --- /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 0000000000..5373947175 --- /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 0000000000..d47b0ec013 --- /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 0000000000..27b7162ede --- /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" +);