mirror of
https://github.com/tc39/test262.git
synced 2025-07-31 01:44:54 +02:00
Tests for the normative changes made to Temporal in https://github.com/tc39/proposal-temporal/pull/1873 This adds a new Temporal helper calendar that asserts that its dateAdd() method is always called with a PlainDate instance. This allows testing that relativeTo parameters are always converted to PlainDate if they are not ZonedDateTime and not undefined. Prior to the normative PR, they would be converted to PlainDateTime instead. Additionally and optionally, the helper calendar can also assert that its dateAdd() method is called with a specific PlainDate instance. This allows testing that the instance is the same PlainDate passed as the relativeTo parameter (in the case of Duration methods) or is the receiver (in the case of PlainDate methods). For the PlainDateTime and PlainYearMonth methods the PlainDate instance is synthesized internally so there is no need to assert that dateAdd() is called with a specific instance.
18 lines
763 B
JavaScript
18 lines
763 B
JavaScript
// Copyright (C) 2021 Igalia, S.L. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: sec-temporal.duration.compare
|
|
description: >
|
|
relativeTo parameters that are not ZonedDateTime or undefined, are always
|
|
converted to PlainDate for observable calendar calls
|
|
includes: [temporalHelpers.js]
|
|
features: [Temporal]
|
|
---*/
|
|
|
|
const calendar = TemporalHelpers.calendarDateAddPlainDateInstance();
|
|
const relativeTo = new Temporal.PlainDate(2000, 1, 1, calendar);
|
|
calendar.specificPlainDate = relativeTo;
|
|
Temporal.Duration.compare(new Temporal.Duration(1, 1, 1, 1), new Temporal.Duration(1, 1, 1), { relativeTo });
|
|
assert(calendar.dateAddCallCount > 0, "assertions in calendar.dateAdd() should have been tested");
|