mirror of https://github.com/tc39/test262.git
Temporal: Some more tests for PlainDateTime#withPlainDate.
This commit is contained in:
parent
7823be3e96
commit
a226601d12
|
@ -0,0 +1,38 @@
|
|||
// 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.withplaindate
|
||||
description: PlainDate calendar is preserved with ISO PDT
|
||||
features: [Temporal]
|
||||
includes: [temporalHelpers.js]
|
||||
---*/
|
||||
|
||||
const cal = {
|
||||
id: 'thisisnotiso',
|
||||
era() { return "the era"; },
|
||||
eraYear() { return 1909; },
|
||||
toString() { return "this is a string"; },
|
||||
year() { return 2008; },
|
||||
month() { return 9; },
|
||||
monthCode() { return "M09"; },
|
||||
day() { return 6; }
|
||||
};
|
||||
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0);
|
||||
assert.sameValue(pdt.calendar.toString(), "iso8601", "PlainDateTime with ISO calendar");
|
||||
const pd = new Temporal.PlainDate(2010, 11, 12, cal);
|
||||
const shifted = pdt.withPlainDate(pd);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
shifted,
|
||||
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||
"calendar is changed if receiver has ISO calendar (1)",
|
||||
"the era",
|
||||
1909
|
||||
);
|
||||
|
||||
assert.sameValue(
|
||||
shifted.calendar,
|
||||
cal,
|
||||
"calendar is changed if receiver has ISO calendar (2)"
|
||||
);
|
|
@ -0,0 +1,40 @@
|
|||
// 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.withplaindate
|
||||
description: PlainDate calendar is preserved when both calendars have the same id
|
||||
features: [Temporal]
|
||||
includes: [temporalHelpers.js]
|
||||
---*/
|
||||
|
||||
const cal1 = {
|
||||
toString() { return "this is a string"; },
|
||||
};
|
||||
const cal2 = {
|
||||
id: 'thisisnotiso',
|
||||
era() { return "the era"; },
|
||||
eraYear() { return 1909; },
|
||||
toString() { return "this is a string"; },
|
||||
year() { return 2008; },
|
||||
month() { return 9; },
|
||||
monthCode() { return "M09"; },
|
||||
day() { return 6; }
|
||||
};
|
||||
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0, cal1);
|
||||
const pd = new Temporal.PlainDate(2010, 11, 12, cal2);
|
||||
const shifted = pdt.withPlainDate(pd);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
shifted,
|
||||
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||
"calendar is changed with same id (1)",
|
||||
"the era",
|
||||
1909
|
||||
);
|
||||
|
||||
assert.sameValue(
|
||||
shifted.calendar,
|
||||
cal2,
|
||||
"calendar is changed with same id (2)"
|
||||
);
|
|
@ -0,0 +1,42 @@
|
|||
// 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.withplaindate
|
||||
description: PlainDate calendar is preserved when both calendars are the same object
|
||||
features: [Temporal]
|
||||
includes: [temporalHelpers.js]
|
||||
---*/
|
||||
|
||||
let calls = 0;
|
||||
const cal = {
|
||||
id: 'thisisnotiso',
|
||||
era() { return "the era"; },
|
||||
eraYear() { return 1909; },
|
||||
toString() {
|
||||
++calls;
|
||||
return "this is a string";
|
||||
},
|
||||
year() { return 2008; },
|
||||
month() { return 9; },
|
||||
monthCode() { return "M09"; },
|
||||
day() { return 6; }
|
||||
};
|
||||
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0, cal);
|
||||
const pd = new Temporal.PlainDate(2010, 11, 12, cal);
|
||||
const shifted = pdt.withPlainDate(pd);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
shifted,
|
||||
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||
"calendar is unchanged with same calendars (1)",
|
||||
"the era",
|
||||
1909
|
||||
);
|
||||
|
||||
assert.sameValue(
|
||||
shifted.calendar,
|
||||
cal,
|
||||
"calendar is unchanged with same calendars (2)"
|
||||
);
|
||||
assert.sameValue(calls, 0, "should not have called cal.toString()");
|
38
test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
vendored
Normal file
38
test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
// 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.withplaindate
|
||||
description: Original PDT calendar is preserved with ISO PlainDate
|
||||
features: [Temporal]
|
||||
includes: [temporalHelpers.js]
|
||||
---*/
|
||||
|
||||
const cal = {
|
||||
id: 'thisisnotiso',
|
||||
era() { return "the era"; },
|
||||
eraYear() { return 1909; },
|
||||
toString() { return "this is a string"; },
|
||||
year() { return 2008; },
|
||||
month() { return 9; },
|
||||
monthCode() { return "M09"; },
|
||||
day() { return 6; }
|
||||
};
|
||||
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0, cal);
|
||||
const pd = new Temporal.PlainDate(2010, 11, 12);
|
||||
assert.sameValue(pd.calendar.toString(), "iso8601", "PlainDate with ISO calendar");
|
||||
const shifted = pdt.withPlainDate(pd);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
shifted,
|
||||
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||
"calendar is unchanged if input has ISO calendar (1)",
|
||||
"the era",
|
||||
1909
|
||||
);
|
||||
|
||||
assert.sameValue(
|
||||
shifted.calendar,
|
||||
cal,
|
||||
"calendar is unchanged if input has ISO calendar (2)"
|
||||
);
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
/*---
|
||||
esid: sec-temporal.plaindatetime.prototype.withplaindate
|
||||
description: New calendar is preserved if original PDT has ISO calendar
|
||||
description: Original PDT calendar is preserved with ISO string
|
||||
features: [Temporal]
|
||||
includes: [temporalHelpers.js]
|
||||
---*/
|
||||
|
|
Loading…
Reference in New Issue