Temporal: Extend PlainDate#toPlainDateTime coverage. (#3582)

This commit is contained in:
Ms2ger 2022-06-20 16:33:59 +02:00 committed by GitHub
parent 65e75e4eed
commit b1020c50b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 2 deletions

View File

@ -0,0 +1,19 @@
// 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.plaindate.prototype.toplaindatetime
description: Tests for toPlainDateTime() with an object argument.
includes: [temporalHelpers.js]
features: [Temporal]
---*/
const plainDate = new Temporal.PlainDate(2000, 5, 2);
const calendar = { toString() { return "iso8601" } };
const withOverflow = plainDate.toPlainDateTime({ hour: 25, minute: 70, second: 23 });
TemporalHelpers.assertPlainDateTime(withOverflow, 2000, 5, "M05", 2, 23, 59, 23, 0, 0, 0, "with overflow");
assert.sameValue(withOverflow.calendar, plainDate.calendar, "with overflow calendar");
const withCalendar = plainDate.toPlainDateTime({ hour: 13, calendar });
TemporalHelpers.assertPlainDateTime(withCalendar, 2000, 5, "M05", 2, 13, 0, 0, 0, 0, 0, "with calendar");
assert.sameValue(withCalendar.calendar, plainDate.calendar, "with calendar calendar");

View File

@ -12,15 +12,20 @@ const date = new Temporal.PlainDate(2000, 5, 2);
const string = date.toPlainDateTime("11:30:23");
TemporalHelpers.assertPlainDateTime(string, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "string");
assert.sameValue(string.calendar, date.calendar, "string calendar");
const optionBag = date.toPlainDateTime({ hour: 11, minute: 30, second: 23 });
TemporalHelpers.assertPlainDateTime(optionBag, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "option bag");
assert.sameValue(optionBag.calendar, date.calendar, "option bag calendar");
const plainTime = date.toPlainDateTime(Temporal.PlainTime.from("11:30:23"));
TemporalHelpers.assertPlainDateTime(plainTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
assert.sameValue(plainTime.calendar, date.calendar, "PlainTime calendar");
const plainDateTime = date.toPlainDateTime(Temporal.PlainDateTime.from("1999-07-14T11:30:23"));
TemporalHelpers.assertPlainDateTime(plainDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
TemporalHelpers.assertPlainDateTime(plainDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainDateTime");
assert.sameValue(plainDateTime.calendar, date.calendar, "PlainDateTime calendar");
const zonedDateTime = date.toPlainDateTime(Temporal.ZonedDateTime.from("1999-07-14T11:30:23Z[UTC]"));
TemporalHelpers.assertPlainDateTime(zonedDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
TemporalHelpers.assertPlainDateTime(zonedDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "ZonedDateTime");
assert.sameValue(zonedDateTime.calendar, date.calendar, "ZonedDateTime calendar");

View File

@ -0,0 +1,14 @@
// 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.plaindate.prototype.toplaindatetime
description: toPlainDateTime() doesn't call into the calendar.
includes: [temporalHelpers.js]
features: [Temporal]
---*/
const calendar = TemporalHelpers.calendarThrowEverything();
const plainDate = new Temporal.PlainDate(2000, 5, 2, calendar);
const result = plainDate.toPlainDateTime("11:30:23");
assert.sameValue(result.calendar, calendar, "calendar");