From 7b3c17662985273996ef41346ff6b97de1420161 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Mon, 18 Apr 2022 10:36:34 -0700 Subject: [PATCH] Add missing tests for PlainTime property bag with no time units We already had similar tests to these for other methods, such as Temporal.PlainTime.prototype.equals(). since() and until() should have these tests too. Update assertion messages in all of the existing tests as well, as per Ms2ger's review comment. --- .../plaintime-propertybag-no-time-units.js | 2 +- .../plaintime-propertybag-no-time-units.js | 2 +- .../plaintime-propertybag-no-time-units.js | 2 +- .../plaintime-propertybag-no-time-units.js | 2 +- .../plaintime-propertybag-no-time-units.js | 2 +- .../plaintime-propertybag-no-time-units.js | 18 ++++++++++++++++++ .../plaintime-propertybag-no-time-units.js | 18 ++++++++++++++++++ .../plaintime-propertybag-no-time-units.js | 2 +- 8 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js create mode 100644 test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js diff --git a/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js index 0998479018..7dfe34adbf 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js +++ b/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js @@ -11,7 +11,7 @@ features: [Temporal] const instance = new Temporal.PlainDate(2000, 1, 1); const props = {}; -assert.throws(TypeError, () => instance.toPlainDateTime(props), "TypeError if at least one property is not present"); +assert.throws(TypeError, () => instance.toPlainDateTime(props), "TypeError if no properties are present"); props.minute = 30; const result = instance.toPlainDateTime(props); diff --git a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js index 8b87a02254..af8d058476 100644 --- a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js +++ b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js @@ -10,7 +10,7 @@ features: [Temporal] const instance = new Temporal.PlainDate(2000, 1, 1); const props = {}; -assert.throws(TypeError, () => instance.toZonedDateTime({ plainTime: props, timeZone: "UTC" }), "TypeError if at least one property is not present"); +assert.throws(TypeError, () => instance.toZonedDateTime({ plainTime: props, timeZone: "UTC" }), "TypeError if no properties are present"); props.minute = 30; const result = instance.toZonedDateTime({ plainTime: props, timeZone: "UTC" }); diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js index df9181a483..5c749e611f 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js @@ -11,7 +11,7 @@ features: [Temporal] const instance = new Temporal.PlainDateTime(2000, 1, 1, 12, 30, 45, 123, 456, 789); const props = {}; -assert.throws(TypeError, () => instance.withPlainTime(props), "TypeError if at least one property is not present"); +assert.throws(TypeError, () => instance.withPlainTime(props), "TypeError if no properties are present"); props.minute = 30; const result = instance.withPlainTime(props); diff --git a/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js index 9b0d146d55..e9c7ddef2b 100644 --- a/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js +++ b/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js @@ -8,7 +8,7 @@ features: [Temporal] ---*/ const props = {}; -assert.throws(TypeError, () => Temporal.PlainTime.compare(props, new Temporal.PlainTime(0, 30)), "TypeError if at least one property is not present"); +assert.throws(TypeError, () => Temporal.PlainTime.compare(props, new Temporal.PlainTime(0, 30)), "TypeError if no properties are present"); props.minute = 30; const result = Temporal.PlainTime.compare(props, new Temporal.PlainTime(0, 30)); diff --git a/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js index 1b4edfa6a2..d342498899 100644 --- a/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js +++ b/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js @@ -10,7 +10,7 @@ features: [Temporal] const instance = new Temporal.PlainTime(0, 30, 0, 0, 0, 0); const props = {}; -assert.throws(TypeError, () => instance.equals(props), "TypeError if at least one property is not present"); +assert.throws(TypeError, () => instance.equals(props), "TypeError if no properties are present"); props.minute = 30; const result = instance.equals(props); diff --git a/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..5a725a1611 --- /dev/null +++ b/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js @@ -0,0 +1,18 @@ +// Copyright (C) 2021 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaintime.prototype.since +description: Missing time units in property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.PlainTime(1, 0, 0, 0, 0, 1); + +const props = {}; +assert.throws(TypeError, () => instance.since(props), "TypeError if no properties are present"); + +props.minute = 30; +const result = instance.since(props); +TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 30, 0, 0, 0, 1, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..c8d511c02a --- /dev/null +++ b/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js @@ -0,0 +1,18 @@ +// Copyright (C) 2021 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.plaintime.prototype.until +description: Missing time units in property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.PlainTime(1, 0, 0, 0, 0, 1); + +const props = {}; +assert.throws(TypeError, () => instance.until(props), "TypeError if no properties are present"); + +props.minute = 30; +const result = instance.until(props); +TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, -30, 0, 0, 0, -1, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js index 5ecf3e3374..e6df5e8472 100644 --- a/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js @@ -10,7 +10,7 @@ features: [Temporal] const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); const props = {}; -assert.throws(TypeError, () => instance.withPlainTime(props), "TypeError if at least one property is not present"); +assert.throws(TypeError, () => instance.withPlainTime(props), "TypeError if no properties are present"); props.minute = 30; const result = instance.withPlainTime(props);