Temporal: Test that the offset option has the last word in ZDT.from()

The programmer always gets the last word over how the string is
interpreted, since otherwise it's not possible to make any guarantees
about the offset option. (This is the "out-of-band" mechanism mentioned in
the IETF draft.) Add a test for this.
This commit is contained in:
Philip Chimento 2022-10-07 18:43:43 -07:00 committed by Ms2ger
parent 6205eb529d
commit 1550f7f7e1
1 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,30 @@
// Copyright (C) 2022 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.zoneddatetime.from
description: >
The offset option always overrides the critical flag in a time zone annotation
features: [Temporal]
---*/
const useResult = Temporal.ZonedDateTime.from("2022-10-07T18:37-07:00[!UTC]", { offset: "use" });
assert.sameValue(
useResult.epochNanoseconds,
1665193020000000000n,
"exact time is unchanged with offset = use, despite critical flag"
);
const ignoreResult = Temporal.ZonedDateTime.from("2022-10-07T18:37-07:00[!UTC]", { offset: "ignore" });
assert.sameValue(
ignoreResult.epochNanoseconds,
1665167820000000000n,
"wall time is unchanged with offset = ignore, despite critical flag"
);
const preferResult = Temporal.ZonedDateTime.from("2022-10-07T18:37-07:00[!UTC]", { offset: "prefer" });
assert.sameValue(
useResult.epochNanoseconds,
1665193020000000000n,
"offset is recalculated with offset = prefer, despite critical flag"
);