Skip to content

Commit

Permalink
Temporal: Add tests for conversion of calendar and time zone IDs in c…
Browse files Browse the repository at this point in the history
…onstructors

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.
  • Loading branch information
ptomato committed Jun 27, 2024
1 parent d5d7473 commit 0af3bcc
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 0 deletions.
14 changes: 14 additions & 0 deletions test/built-ins/Temporal/PlainDate/calendar-iso-string.js
Original file line number Diff line number Diff line change
@@ -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"
);
14 changes: 14 additions & 0 deletions test/built-ins/Temporal/PlainDateTime/calendar-iso-string.js
Original file line number Diff line number Diff line change
@@ -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"
);
14 changes: 14 additions & 0 deletions test/built-ins/Temporal/PlainMonthDay/calendar-iso-string.js
Original file line number Diff line number Diff line change
@@ -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"
);
14 changes: 14 additions & 0 deletions test/built-ins/Temporal/PlainYearMonth/calendar-iso-string.js
Original file line number Diff line number Diff line change
@@ -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"
);
14 changes: 14 additions & 0 deletions test/built-ins/Temporal/ZonedDateTime/calendar-iso-string.js
Original file line number Diff line number Diff line change
@@ -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"
);
14 changes: 14 additions & 0 deletions test/built-ins/Temporal/ZonedDateTime/timezone-iso-string.js
Original file line number Diff line number Diff line change
@@ -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"
);

0 comments on commit 0af3bcc

Please sign in to comment.