From e6d760cec2883d13a4e10f59e2d7bc4bb4877984 Mon Sep 17 00:00:00 2001 From: Ben Allen Date: Tue, 18 Nov 2025 12:31:06 -0800 Subject: [PATCH] Added tests ensuring `yearOfWeek` and `weekOfYear` are `undefined` when using non-ISO calendar with `PlainDate`, `PlainDateTime`, and `ZonedDateTime` --- .../weekOfYear/non-iso-week-of-year.js | 37 +++++++++++++----- .../yearOfWeek/non-iso-week-of-year.js | 37 +++++++++++++----- .../weekOfYear/non-iso-week-of-year.js | 39 +++++++++++++------ .../yearOfWeek/non-iso-week-of-year.js | 37 ++++++++++++------ .../weekOfYear/non-iso-week-of-year.js | 37 ++++++++++++------ .../yearOfWeek/non-iso-week-of-year.js | 37 ++++++++++++------ 6 files changed, 159 insertions(+), 65 deletions(-) diff --git a/test/intl402/Temporal/PlainDate/prototype/weekOfYear/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDate/prototype/weekOfYear/non-iso-week-of-year.js index 10448418e9f..8311dc29ee6 100644 --- a/test/intl402/Temporal/PlainDate/prototype/weekOfYear/non-iso-week-of-year.js +++ b/test/intl402/Temporal/PlainDate/prototype/weekOfYear/non-iso-week-of-year.js @@ -9,14 +9,31 @@ description: > features: [Temporal, Intl.Era-monthcode] ---*/ -assert.sameValue( - new Temporal.PlainDate(2024, 1, 1, "gregory").weekOfYear, - undefined, - "Gregorian calendar does not provide week numbers" -); -assert.sameValue( - new Temporal.PlainDate(2024, 1, 1, "hebrew").weekOfYear, - undefined, - "Hebrew calendar does not provide week numbers" -); +const nonIsoCalendars = [ + "buddhist", + "chinese", + "coptic", + "dangi", + "ethioaa", + "ethiopic", + "gregory", + "hebrew", + "indian", + "islamic-civil", + "islamic-tbla", + "islamic-umalqura", + "islamicc", + "japanese", + "persian", + "roc" +]; + + +for (const calendar of nonIsoCalendars){ + assert.sameValue( + new Temporal.PlainDate(2024, 1, 1, calendar).weekOfYear, + undefined, + `${calendar} does not provide week numbers` + ); +} diff --git a/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/non-iso-week-of-year.js index 21a018e9064..ab3325329ff 100644 --- a/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/non-iso-week-of-year.js +++ b/test/intl402/Temporal/PlainDate/prototype/yearOfWeek/non-iso-week-of-year.js @@ -9,14 +9,31 @@ description: > features: [Temporal, Intl.Era-monthcode] ---*/ -assert.sameValue( - new Temporal.PlainDate(2024, 1, 1, "gregory").yearOfWeek, - undefined, - "Gregorian calendar does not provide week numbers" -); +const nonIsoCalendars = [ + "buddhist", + "chinese", + "coptic", + "dangi", + "ethioaa", + "ethiopic", + "gregory", + "hebrew", + "indian", + "islamic-civil", + "islamic-tbla", + "islamic-umalqura", + "islamicc", + "japanese", + "persian", + "roc" +]; + + +for (const calendar of nonIsoCalendars){ + assert.sameValue( + new Temporal.PlainDate(2024, 1, 1, calendar).yearOfWeek, + undefined, + `${calendar} does not provide week numbers` + ); +} -assert.sameValue( - new Temporal.PlainDate(2024, 1, 1, "hebrew").yearOfWeek, - undefined, - "Hebrew calendar does not provide week numbers" -); diff --git a/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/non-iso-week-of-year.js index 19fa29cd46a..e285b91bdd9 100644 --- a/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/non-iso-week-of-year.js +++ b/test/intl402/Temporal/PlainDateTime/prototype/weekOfYear/non-iso-week-of-year.js @@ -4,19 +4,34 @@ /*--- esid: sec-temporal.plaindatetime.prototype.weekofyear description: > - Temporal.PlainDateTime.prototype.weekOfYear returns undefined for all + Temporal.PlainDateTimeTime.prototype.weekOfYear returns undefined for all non-ISO calendars without a well-defined week numbering system. -features: [Temporal] +features: [Temporal, Intl.Era-monthcode] ---*/ -assert.sameValue( - new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, "gregory").weekOfYear, - undefined, - "Gregorian calendar does not provide week numbers" -); +const nonIsoCalendars = [ + "buddhist", + "chinese", + "coptic", + "dangi", + "ethioaa", + "ethiopic", + "gregory", + "hebrew", + "indian", + "islamic-civil", + "islamic-tbla", + "islamic-umalqura", + "islamicc", + "japanese", + "persian", + "roc" +]; -assert.sameValue( - new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, "hebrew").weekOfYear, - undefined, - "Hebrew calendar does not provide week numbers" -); +for (const calendar of nonIsoCalendars){ + assert.sameValue( + new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar).weekOfYear, + undefined, + `${calendar} does not provide week numbers` + ); +} diff --git a/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/non-iso-week-of-year.js b/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/non-iso-week-of-year.js index fa1f4d4face..cd268c6e8e0 100644 --- a/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/non-iso-week-of-year.js +++ b/test/intl402/Temporal/PlainDateTime/prototype/yearOfWeek/non-iso-week-of-year.js @@ -6,17 +6,32 @@ esid: sec-temporal.plaindatetime.prototype.yearofweek description: > Temporal.PlainDateTime.prototype.yearOfWeek returns undefined for all non-ISO calendars without a well-defined week numbering system. -features: [Temporal] +features: [Temporal, Intl.Era-monthcode] ---*/ -assert.sameValue( - new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, "gregory").yearOfWeek, - undefined, - "Gregorian calendar does not provide week numbers" -); +const nonIsoCalendars = [ + "buddhist", + "chinese", + "coptic", + "dangi", + "ethioaa", + "ethiopic", + "gregory", + "hebrew", + "indian", + "islamic-civil", + "islamic-tbla", + "islamic-umalqura", + "islamicc", + "japanese", + "persian", + "roc" +]; -assert.sameValue( - new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, "hebrew").yearOfWeek, - undefined, - "Hebrew calendar does not provide week numbers" -); +for (const calendar of nonIsoCalendars){ + assert.sameValue( + new Temporal.PlainDateTime(2024, 1, 1, 12, 34, 56, 987, 654, 321, calendar).yearOfWeek, + undefined, + `${calendar} does not provide week numbers` + ); +} diff --git a/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/non-iso-week-of-year.js b/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/non-iso-week-of-year.js index b1954a67ba9..1c3d68d53c8 100644 --- a/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/non-iso-week-of-year.js +++ b/test/intl402/Temporal/ZonedDateTime/prototype/weekOfYear/non-iso-week-of-year.js @@ -6,17 +6,32 @@ esid: sec-temporal.zoneddatetime.prototype.weekofyear description: > Temporal.ZonedDateTime.prototype.weekOfYear returns undefined for all non-ISO calendars without a well-defined week numbering system. -features: [Temporal] +features: [Temporal, Intl.Era-monthcode] ---*/ -assert.sameValue( - new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", "gregory").weekOfYear, - undefined, - "Gregorian calendar does not provide week numbers" -); +const nonIsoCalendars = [ + "buddhist", + "chinese", + "coptic", + "dangi", + "ethioaa", + "ethiopic", + "gregory", + "hebrew", + "indian", + "islamic-civil", + "islamic-tbla", + "islamic-umalqura", + "islamicc", + "japanese", + "persian", + "roc" +]; -assert.sameValue( - new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", "hebrew").weekOfYear, - undefined, - "Hebrew calendar does not provide week numbers" -); +for (const calendar of nonIsoCalendars){ + assert.sameValue( + new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar).weekOfYear, + undefined, + `${calendar} does not provide week numbers` + ); +} diff --git a/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/non-iso-week-of-year.js b/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/non-iso-week-of-year.js index f6f3e59f10b..254d1d65bc5 100644 --- a/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/non-iso-week-of-year.js +++ b/test/intl402/Temporal/ZonedDateTime/prototype/yearOfWeek/non-iso-week-of-year.js @@ -6,17 +6,32 @@ esid: sec-temporal.zoneddatetime.prototype.yearofweek description: > Temporal.ZonedDateTime.prototype.yearOfWeek returns undefined for all non-ISO calendars without a well-defined week numbering system. -features: [Temporal] +features: [Temporal, Intl.Era-monthcode] ---*/ -assert.sameValue( - new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", "gregory").yearOfWeek, - undefined, - "Gregorian calendar does not provide week numbers" -); +const nonIsoCalendars = [ + "buddhist", + "chinese", + "coptic", + "dangi", + "ethioaa", + "ethiopic", + "gregory", + "hebrew", + "indian", + "islamic-civil", + "islamic-tbla", + "islamic-umalqura", + "islamicc", + "japanese", + "persian", + "roc" +]; -assert.sameValue( - new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", "hebrew").yearOfWeek, - undefined, - "Hebrew calendar does not provide week numbers" -); +for (const calendar of nonIsoCalendars){ + assert.sameValue( + new Temporal.ZonedDateTime(1_704_112_496_987_654_321n, "UTC", calendar).weekOfYear, + undefined, + `${calendar} does not provide week numbers` + ); +}