Skip to content

Commit

Permalink
Temporal: Port PlainDateTime's Demitasse withCalendar tests
Browse files Browse the repository at this point in the history
Co-authored-by: Philip Chimento <philip.chimento@gmail.com>
  • Loading branch information
2 people authored and Ms2ger committed Apr 26, 2022
1 parent 8f5c7ae commit d156a5a
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// 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.plaindatetime.prototype.withcalendar
description: String argument, if it names a recognizable calendar, gets cast
features: [Temporal]
includes: [temporalHelpers.js]
---*/

const calendar = {
toString() { return "something special"; }
};
const dt = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789, calendar);
const result = dt.withCalendar("iso8601");

TemporalHelpers.assertPlainDateTime(
result,
1976, 11, "M11", 18, 15, 23, 30, 123, 456, 789,
"'iso8601' is a recognizable calendar"
);

const resultCalendar = result.calendar;

assert.sameValue(
resultCalendar instanceof Temporal.Calendar,
true,
"underlying calendar is no longer a plain object"
);

assert.sameValue(resultCalendar.toString(), "iso8601", "underlying calendar has changed");

assert.throws(
RangeError,
() => dt.withCalendar("this will fail"),
"unknown calendar throws"
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// 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.plaindatetime.prototype.withcalendar
description: Non-throwing non-edge case
features: [Temporal]
includes: [temporalHelpers.js]
---*/

const dt = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789);
const calendar = new Temporal.Calendar("iso8601");

const result = dt.withCalendar(calendar);

TemporalHelpers.assertPlainDateTime(
result,
1976, 11, "M11", 18, 15, 23, 30, 123, 456, 789,
"works"
);

assert.sameValue(result.calendar, calendar, "underlying calendar is unchanged");

0 comments on commit d156a5a

Please sign in to comment.