forked from tc39/test262
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Temporal: Some more tests for PlainDateTime#withPlainDate.
- Loading branch information
Showing
5 changed files
with
159 additions
and
1 deletion.
There are no files selected for viewing
38 changes: 38 additions & 0 deletions
38
...-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-noniso.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)" | ||
); |
40 changes: 40 additions & 0 deletions
40
...ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-id.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)" | ||
); |
42 changes: 42 additions & 0 deletions
42
...Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar-same-object.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 changes: 38 additions & 0 deletions
38
test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)" | ||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters