test262/test/built-ins/Temporal/ZonedDateTime/compare/argument-propertybag-calendar-invalid-iso-string.js
brageh01 443f0d2e7f
Temporal: Reorganize calendar and wrong-type tests (#4415)
Changes made to:

- PlainDate
- PlainYearMonth
- ZonedDateTime
- PlainDateTime
- PlainMonthDay

Merged calendar-number.js and calendar-wrong-type.js, due to no special behaviour of number to be tested.

Extracted string tests to calendar-iso-string.js and renamed the file to calendar-invalid-iso-string.js, due to the contents of the file initially testing invalid ISO strings.

Closes #3873
2025-04-23 16:04:15 -07:00

29 lines
867 B
JavaScript

// Copyright (C) 2025 Brage Hogstad, University of Bergen. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.zoneddatetime.compare
description: Invalid ISO string as calendar should throw RangeError
features: [Temporal]
---*/
const datetime = new Temporal.ZonedDateTime(0n, "UTC");
const invalidStrings = [
["", "empty string"],
];
for (const [calendar, description] of invalidStrings) {
const arg = { year: 1970, monthCode: "M01", day: 1, calendar, timeZone: "UTC" };
assert.throws(
RangeError,
() => Temporal.ZonedDateTime.compare(arg, datetime),
`${description} is not a valid calendar ID (first argument)`
);
assert.throws(
RangeError,
() => Temporal.ZonedDateTime.compare(datetime, arg),
`${description} is not a valid calendar ID (second argument)`
);
}