diff --git a/test/built-ins/Temporal/Duration/compare/relativeto-string-limits.js b/test/built-ins/Temporal/Duration/compare/relativeto-string-limits.js index 7af8066ec5..208dd3fad3 100644 --- a/test/built-ins/Temporal/Duration/compare/relativeto-string-limits.js +++ b/test/built-ins/Temporal/Duration/compare/relativeto-string-limits.js @@ -7,7 +7,8 @@ description: ISO strings at the edges of the representable range features: [Temporal] ---*/ -const instance = new Temporal.Duration(); +const instance = new Temporal.Duration(0, 0, 0, 0, 0, /* minutes = */ 5); +const blankInstance = new Temporal.Duration(); const validStrings = [ "-271821-04-20T00:00Z[UTC]", @@ -21,7 +22,7 @@ const validStrings = [ ]; for (const relativeTo of validStrings) { - Temporal.Duration.compare(instance, instance, { relativeTo }); + Temporal.Duration.compare(instance, blankInstance, { relativeTo }); } const invalidStrings = [ @@ -42,7 +43,7 @@ const invalidStrings = [ for (const relativeTo of invalidStrings) { assert.throws( RangeError, - () => Temporal.Duration.compare(instance, instance, { relativeTo }), + () => Temporal.Duration.compare(instance, blankInstance, { relativeTo }), `"${relativeTo}" is outside the representable range for a relativeTo parameter` ); } diff --git a/test/built-ins/Temporal/Duration/prototype/round/relativeto-string-limits.js b/test/built-ins/Temporal/Duration/prototype/round/relativeto-string-limits.js index b9e94e9fad..483eb8ce8a 100644 --- a/test/built-ins/Temporal/Duration/prototype/round/relativeto-string-limits.js +++ b/test/built-ins/Temporal/Duration/prototype/round/relativeto-string-limits.js @@ -7,21 +7,34 @@ description: ISO strings at the edges of the representable range features: [Temporal] ---*/ -const instance = new Temporal.Duration(); +const instance = new Temporal.Duration(0, 0, 0, 0, 0, /* minutes = */ 5); +const blankInstance = new Temporal.Duration(); const validStrings = [ "-271821-04-20T00:00Z[UTC]", - "+275760-09-13T00:00Z[UTC]", - "+275760-09-13T01:00+01:00[+01:00]", - "+275760-09-13T23:59+23:59[+23:59]", - "-271821-04-19", - "-271821-04-19T01:00", "+275760-09-13", "+275760-09-13T23:00", ]; for (const relativeTo of validStrings) { instance.round({ smallestUnit: "minutes", relativeTo }); + blankInstance.round({ smallestUnit: "minutes", relativeTo }); +} + +const validStringsThatFailAfterEarlyReturn = [ + "+275760-09-13T00:00Z[UTC]", + "+275760-09-13T01:00+01:00[+01:00]", + "+275760-09-13T23:59+23:59[+23:59]", + "-271821-04-19", + "-271821-04-19T01:00", +]; +for (const relativeTo of validStringsThatFailAfterEarlyReturn) { + blankInstance.round({ smallestUnit: "minutes", relativeTo }); + assert.throws( + RangeError, + () => instance.round({ smallestUnit: "minutes", relativeTo }), + `"${relativeTo}" is outside the representable range for a relativeTo parameter after conversion to DateTime` + ); } const invalidStrings = [ @@ -45,4 +58,9 @@ for (const relativeTo of invalidStrings) { () => instance.round({ smallestUnit: "minutes", relativeTo }), `"${relativeTo}" is outside the representable range for a relativeTo parameter` ); + assert.throws( + RangeError, + () => blankInstance.round({ smallestUnit: "minutes", relativeTo }), + `"${relativeTo}" is outside the representable range for a relativeTo parameter` + ); } diff --git a/test/built-ins/Temporal/Duration/prototype/total/relativeto-string-limits.js b/test/built-ins/Temporal/Duration/prototype/total/relativeto-string-limits.js index 99e72e764c..f742a4d193 100644 --- a/test/built-ins/Temporal/Duration/prototype/total/relativeto-string-limits.js +++ b/test/built-ins/Temporal/Duration/prototype/total/relativeto-string-limits.js @@ -7,21 +7,34 @@ description: ISO strings at the edges of the representable range features: [Temporal] ---*/ -const instance = new Temporal.Duration(); +const instance = new Temporal.Duration(0, 0, 0, 0, 0, /* minutes = */ 5); +const blankInstance = new Temporal.Duration(); const validStrings = [ "-271821-04-20T00:00Z[UTC]", - "+275760-09-13T00:00Z[UTC]", - "+275760-09-13T01:00+01:00[+01:00]", - "+275760-09-13T23:59+23:59[+23:59]", - "-271821-04-19", - "-271821-04-19T01:00", "+275760-09-13", "+275760-09-13T23:00", ]; for (const relativeTo of validStrings) { instance.total({ unit: "minutes", relativeTo }); + blankInstance.total({ unit: "minutes", relativeTo }); +} + +const validStringsThatFailAfterEarlyReturn = [ + "+275760-09-13T00:00Z[UTC]", + "+275760-09-13T01:00+01:00[+01:00]", + "+275760-09-13T23:59+23:59[+23:59]", + "-271821-04-19", + "-271821-04-19T01:00", +]; +for (const relativeTo of validStringsThatFailAfterEarlyReturn) { + blankInstance.total({ unit: "minutes", relativeTo }); + assert.throws( + RangeError, + () => instance.total({ unit: "minutes", relativeTo }), + `"${relativeTo}" is outside the representable range for a relativeTo parameter after conversion to DateTime` + ); } const invalidStrings = [ @@ -45,4 +58,9 @@ for (const relativeTo of invalidStrings) { () => instance.total({ unit: "minutes", relativeTo }), `"${relativeTo}" is outside the representable range for a relativeTo parameter` ); + assert.throws( + RangeError, + () => blankInstance.total({ unit: "minutes", relativeTo }), + `"${relativeTo}" is outside the representable range for a relativeTo parameter` + ); }