Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tests for Temporal.Calendar.prototype.(year|month*|day) #3050

Merged
merged 5 commits into from
Aug 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/day/date-time.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.day
description: Temporal.Calendar.prototype.day will take PlainDateTime and return
the value of the day.
info: |
5. Return ! ISODay(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let dateTime = new Temporal.PlainDateTime(1997, 8, 23, 5, 30, 13)
assert.sameValue(23, cal.day(dateTime));
15 changes: 15 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/day/date.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.day
description: Temporal.Calendar.prototype.day will take PlainDate and return
the value of the day.
info: |
5. Return ! ISODay(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let date = new Temporal.PlainDate(2021, 7, 15);
assert.sameValue(15, cal.day(date));
19 changes: 19 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/day/month-day.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.day
description: Temporal.Calendar.prototype.day will take PlainMonthDay and return
the value of the day.
info: |
4. If Type(temporalDateLike) is not Object or temporalDateLike does not have
an [[InitializedTemporalDate]] or [[InitializedTemporalYearMonth]] internal
slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
5. Return ! ISODay(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let monthDay = new Temporal.PlainMonthDay(7, 15);
assert.sameValue(15, cal.day(monthDay));
18 changes: 18 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/day/string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.day
description: Temporal.Calendar.prototype.day will take ISO8601 string and return
the value of the day.
info: |
4. If Type(temporalDateLike) is not Object or temporalDateLike does not have
an [[InitializedTemporalDate]] or [[InitializedTemporalYearMonth]] internal
slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
5. Return ! ISODay(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

assert.sameValue(15, cal.day("2019-03-15"));
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.day
description: Temporal.Calendar.prototype.day throws RangeError on
ToTemporalDate when temporalDateLike is invalid string.
info: |
4. If Type(temporalDateLike) is not Object or temporalDateLike
does not have an [[InitializedTemporalDate]] or
[[InitializedTemporalYearMonth]] internal slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

assert.throws(RangeError, () => cal.day("invalid string"),
"Throw RangeError if temporalDateLike is invalid");
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.day
description: Temporal.Calendar.prototype.day throws TypeError on RequireInternalSlot if object has no internal slot.
info: |
2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let badCal = { day: cal.day }
assert.throws(TypeError, () => badCal.day("2021-03-04"),
"Throw TypeError if there are no internal slot");
19 changes: 19 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/month/date-time.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.month
description: Temporal.Calendar.prototype.month will take PlainDateTime and return
the value of the month.
info: |
5. If Type(temporalDateLike) is not Object or temporalDateLike does not have
an [[InitializedTemporalDate]] or [[InitializedTemporalYearMonth]]
internal slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
6. Return ! ISOMonth(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let dateTime = new Temporal.PlainDateTime(1997, 8, 23, 5, 30, 13)
assert.sameValue(8, cal.month(dateTime));
25 changes: 25 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/month/date.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.month
description: Temporal.Calendar.prototype.month will take PlainDate and return
the value of the month.
info: |
1. Let calendar be the this value.
2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
3. Assert: calendar.[[Identifier]] is "iso8601".
4. If Type(temporalDateLike) is Object and temporalDateLike has an
[[InitializedTemporalMonthDay]] internal slot, then
a. Throw a TypeError exception.
5. If Type(temporalDateLike) is not Object or temporalDateLike does not have
an [[InitializedTemporalDate]] or [[InitializedTemporalYearMonth]]
internal slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
6. Return ! ISOMonth(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let date = new Temporal.PlainDate(2021, 7, 15);
assert.sameValue(7, cal.month(date));
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.month
description: Temporal.Calendar.prototype.month throws TypeError if temporalDateLike
is a PlainMonthDay object.
ToTemporalDate when temporalDateLike is invalid string.
info: |
4. If Type(temporalDateLike) is Object and temporalDateLike has an
[[InitializedTemporalMonthDay]] internal slot, then
a. Throw a TypeError exception.
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let monthDay = new Temporal.PlainMonthDay(12, 25);
assert.throws(TypeError, () => cal.month(monthDay),
"Throw TypeError if temporalDateLike is a PlainMonthDay");
18 changes: 18 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/month/string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.month
description: Temporal.Calendar.prototype.month will take ISO8601 string and return
the value of the month.
info: |
5. If Type(temporalDateLike) is not Object or temporalDateLike does not have
an [[InitializedTemporalDate]] or [[InitializedTemporalYearMonth]] internal
slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
6. Return ! ISOMonth(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

assert.sameValue(3, cal.month("2019-03-15"));
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.month
description: Temporal.Calendar.prototype.month throws RangeError on
ToTemporalDate when temporalDateLike is invalid string.
info: |
5. If Type(temporalDateLike) is not Object or temporalDateLike
does not have an [[InitializedTemporalDate]] or
[[InitializedTemporalYearMonth]] internal slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

assert.throws(RangeError, () => cal.month("invalid string"),
"Throw RangeError if temporalDateLike is invalid");
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.month
description: Temporal.Calendar.prototype.month throws TypeError on RequireInternalSlot if object has no internal slot.
info: |
2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let badCal = { month: cal.month }
assert.throws(TypeError, () => badCal.month("2021-03-04"),
"Throw TypeError if there are no internal slot");
15 changes: 15 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/month/year-month.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.month
description: Temporal.Calendar.prototype.month will take PlainYearMonth and return
the value of the month.
info: |
6. Return ! ISOMonth(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let yearMonth = new Temporal.PlainYearMonth(1999, 6);
assert.sameValue(6, cal.month(yearMonth));
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.monthCode
description: Temporal.Calendar.prototype.month will take PlainDateTime and return
the value of the monthCode.
info: |
6. Return ! ISOMonthCode(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let dateTime = new Temporal.PlainDateTime(1997, 8, 23, 5, 30, 13)
assert.sameValue("M08", cal.monthCode(dateTime));
15 changes: 15 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/monthCode/date.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.monthCode
description: Temporal.Calendar.prototype.monthCode will take PlainDate and return
the value of the monthCode.
info: |
5. Return ! ISOMonthCode(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let date = new Temporal.PlainDate(2021, 7, 15);
assert.sameValue("M07", cal.monthCode(date));
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.monthCode
description: Temporal.Calendar.prototype.monthCode will take PlainMonthDay and return
the value of the monthCode.
info: |
6. Return ! ISOMonthCode(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let monthDay = new Temporal.PlainMonthDay(12, 25);
assert.sameValue("M12", cal.monthCode(monthDay));
17 changes: 17 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/monthCode/string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.monthCode
description: Temporal.Calendar.prototype.monthCode will take ISO8601 string and return
the value of the monthCode.
info: |
5. If Type(temporalDateLike) is not Object or temporalDateLike does not have
an [[InitializedTemporalDate]] or [[InitializedTemporalYearMonth]] internal
slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
6. Return ! ISOYear(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");
assert.sameValue("M03", cal.monthCode("2019-03-15"));
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.monthCode
description: Temporal.Calendar.prototype.monthCode throws RangeError on
ToTemporalDate when temporalDateLike is invalid string.
info: |
4. If Type(temporalDateLike) is not Object or temporalDateLike
does not have an [[InitializedTemporalDate]] or
[[InitializedTemporalYearMonth]] internal slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

assert.throws(RangeError, () => cal.monthCode("invalid string"),
"Throw RangeError if temporalDateLike is invalid");
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.monthCode
description: Temporal.Calendar.prototype.monthCode throws TypeError on RequireInternalSlot if object has no internal slot.
info: |
2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let badCal = { monthCode: cal.monthCode}
assert.throws(TypeError, () => badCal.monthCode("2021-03-04"),
"Throw TypeError if there are no internal slot");
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.monthCode
description: Temporal.Calendar.prototype.monthCode will take PlainYearMonth and return
the value of the monthCode.
info: |
6. Return ! ISOMonthCode(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let yearMonth = new Temporal.PlainYearMonth(1999, 6);
assert.sameValue("M06", cal.monthCode(yearMonth));
20 changes: 20 additions & 0 deletions test/built-ins/Temporal/Calendar/prototype/year/date-time.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright (C) 2021 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-temporal.calendar.prototype.year
description: Temporal.Calendar.prototype.year will take PlainDateTime and return
the value of the year.
info: |
1. Let calendar be the this value.
2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
3. Assert: calendar.[[Identifier]] is "iso8601".
4. If Type(temporalDateLike) is not Object or temporalDateLike does not have an [[InitializedTemporalDate]] or [[InitializedTemporalYearMonth]] internal slot, then
a. Set temporalDateLike to ? ToTemporalDate(temporalDateLike).
5. Return ! ISOYear(temporalDateLike).
features: [Temporal]
---*/
let cal = new Temporal.Calendar("iso8601");

let dateTime = new Temporal.PlainDateTime(1997, 8, 23, 5, 30, 13)
assert.sameValue(1997, cal.year(dateTime));
Loading