From 3a7a72aef5009eb22117231d40f9a5a66a9a595a 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" +);