test262/test/built-ins/Temporal/ZonedDateTime/compare/argument-string-calendar-annotation-invalid-key.js
Philip Chimento 0c12b84244 Temporal: Add tests for incorrectly capitalized annotation keys
As per IETF, annotation keys may only consist of lowercase letters,
dashes, and digits, and an optional leading underscore. Uppercase letters
are non-syntactical. Add tests covering this.
2024-04-03 12:32:46 +02:00

30 lines
956 B
JavaScript

// 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.compare
description: Annotation keys are lowercase-only
features: [Temporal]
---*/
const datetime = new Temporal.ZonedDateTime(0n, "UTC");
const invalidStrings = [
["1970-01-01T00:00[UTC][U-CA=iso8601]", "invalid capitalized key"],
["1970-01-01T00:00[UTC][u-CA=iso8601]", "invalid partially-capitalized key"],
["1970-01-01T00:00[UTC][FOO=bar]", "invalid capitalized unrecognized key"],
];
invalidStrings.forEach(([arg, descr]) => {
assert.throws(
RangeError,
() => Temporal.ZonedDateTime.compare(arg, datetime),
`annotation keys must be lowercase: ${arg} - ${descr} (first argument)`
);
assert.throws(
RangeError,
() => Temporal.ZonedDateTime.compare(datetime, arg),
`annotation keys must be lowercase: ${arg} - ${descr} (second argument)`
);
});