From 70c965409ada0c51ca385015a8a67ed8d25f2e88 Mon Sep 17 00:00:00 2001 From: Dominic Farolino Date: Thu, 7 Jun 2018 01:00:14 -0700 Subject: [PATCH 1/2] Consolidate label conversion tests + add timeLog --- .../console-counting-label-conversion.any.js | 55 ------------------- console/console-label-conversion.any.js | 37 +++++++++++++ console/console-time-label-conversion.any.js | 46 ---------------- 3 files changed, 37 insertions(+), 101 deletions(-) delete mode 100644 console/console-counting-label-conversion.any.js create mode 100644 console/console-label-conversion.any.js delete mode 100644 console/console-time-label-conversion.any.js diff --git a/console/console-counting-label-conversion.any.js b/console/console-counting-label-conversion.any.js deleted file mode 100644 index bbc77f011b7bc7..00000000000000 --- a/console/console-counting-label-conversion.any.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -// https://console.spec.whatwg.org/#count -// https://console.spec.whatwg.org/#countreset - -// TODO(domfarolino): make this a link to -// https://console.spec.whatwg/org/#counting pending -// the resolution of https://github.com/whatwg/console/issues/135 - -// TODO(domfarolino): DRY up the label conversion tests for count/countReset/time/timeEnd -// by probably making a helper function that passes in the console method to perform the -// conversion with so we're not duplicating everything - -test(() => { - let countLabelToStringCalled = false; - - console.count({ - toString() { - countLabelToStringCalled = true; - } - }); - - assert_true(countLabelToStringCalled, "toString() must be called on count()'s label when label is an object"); -}, "console.count()'s label gets converted to string via label.toString() when label is an object"); - -test(() => { - assert_throws({name: "Error"}, () => { - console.count({ - toString() { - throw new Error("conversion error"); - } - }); - }, "count() must re-throw any exceptions thrown by label.toString() conversion"); -}, "console.count() throws exceptions generated by erroneous label.toString() conversion"); - -test(() => { - let countLabelToStringCalled = false; - - console.countReset({ - toString() { - countLabelToStringCalled = true; - } - }); - - assert_true(countLabelToStringCalled, "toString() must be called on countReset()'s label when label is an object"); -}, "console.countReset()'s label gets converted to string via label.toString() when label is an object"); - -test(() => { - assert_throws({name: "Error"}, () => { - console.countReset({ - toString() { - throw new Error("conversion error"); - } - }); - }, "countReset() must re-throw any exceptions thrown by label.toString() conversion"); -}, "console.countReset() throws exceptions generated by erroneous label.toString() conversion"); diff --git a/console/console-label-conversion.any.js b/console/console-label-conversion.any.js new file mode 100644 index 00000000000000..9ecafa9656c947 --- /dev/null +++ b/console/console-label-conversion.any.js @@ -0,0 +1,37 @@ +"use strict"; +// https://console.spec.whatwg/org/#counting +// https://console.spec.whatwg/org/#timing + +// toString() console label test strings +const toStringAssertionEnding = 'must call toString() on label when label is an object'; +const toStringTestNameEnding = 'label gets converted to string via label.toString() when label is an object'; + +// toString error re-throwing console test strings +const toStringRethrowAssertionEnding = 'must re-throw any exceptions thrown by label.toString() conversion'; +const toStringRethrowTestNameEnding = 'throws exceptions generated by erroneous label.toString() conversion'; + +const methods = ['count', 'countReset', 'time', 'timeLog', 'timeEnd']; + +for (const method of methods) { + test(() => { + let labelToStringCalled = false; + + console[method]({ + toString() { + labelToStringCalled = true; + } + }); + + assert_true(labelToStringCalled, `${method}() ${toStringAssertionEnding}`); + }, `console.${method}()'s ${toStringTestNameEnding}`); + + test(() => { + assert_throws({name: 'Error'}, () => { + console[method]({ + toString() { + throw new Error('conversion error'); + } + }); + }, `${method} ${toStringRethrowAssertionEnding}`); + }, `console.${method}() ${toStringRethrowTestNameEnding}`); +} diff --git a/console/console-time-label-conversion.any.js b/console/console-time-label-conversion.any.js deleted file mode 100644 index 5004a7476c2d0b..00000000000000 --- a/console/console-time-label-conversion.any.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -// https://console.spec.whatwg.org/#timing - -test(() => { - let timeLabelToStringCalled = false; - - console.time({ - toString() { - timeLabelToStringCalled = true; - } - }); - - assert_true(timeLabelToStringCalled, "toString() must be called on time()'s label when label is an object"); -}, "console.time()'s label gets converted to string via label.toString() when label is an object"); - -test(() => { - let timeEndLabelToStringCalled = false; - - console.timeEnd({ - toString() { - timeEndLabelToStringCalled = true; - } - }); - - assert_true(timeEndLabelToStringCalled, "toString() must be called on timeEnd()'s label when label is an object"); -}, "console.timeEnd()'s label gets converted to string via label.toString() when label is an object"); - -test(() => { - assert_throws({name: "Error"}, () => { - console.time({ - toString() { - throw new Error("conversion error"); - } - }); - }, "time() must re-throw any exceptions thrown by label.toString() conversion"); -}, "console.time() throws exceptions generated by erroneous label.toString() conversion"); - -test(() => { - assert_throws({name: "Error"}, () => { - console.timeEnd({ - toString() { - throw new Error("conversion error"); - } - }); - }, "timeEnd() must re-throw any exceptions thrown by label.toString() conversion"); -}, "console.timeEnd() throws exceptions generated by erroneous label.toString() conversion"); From 6b14ce23a48cd5cb5b849ebc2af471beb4a1f2ba Mon Sep 17 00:00:00 2001 From: Dominic Farolino Date: Sun, 17 Jun 2018 22:54:06 -0700 Subject: [PATCH 2/2] Inline factored out strings --- console/console-label-conversion.any.js | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/console/console-label-conversion.any.js b/console/console-label-conversion.any.js index 9ecafa9656c947..1fb269d4061c61 100644 --- a/console/console-label-conversion.any.js +++ b/console/console-label-conversion.any.js @@ -2,14 +2,6 @@ // https://console.spec.whatwg/org/#counting // https://console.spec.whatwg/org/#timing -// toString() console label test strings -const toStringAssertionEnding = 'must call toString() on label when label is an object'; -const toStringTestNameEnding = 'label gets converted to string via label.toString() when label is an object'; - -// toString error re-throwing console test strings -const toStringRethrowAssertionEnding = 'must re-throw any exceptions thrown by label.toString() conversion'; -const toStringRethrowTestNameEnding = 'throws exceptions generated by erroneous label.toString() conversion'; - const methods = ['count', 'countReset', 'time', 'timeLog', 'timeEnd']; for (const method of methods) { @@ -22,8 +14,8 @@ for (const method of methods) { } }); - assert_true(labelToStringCalled, `${method}() ${toStringAssertionEnding}`); - }, `console.${method}()'s ${toStringTestNameEnding}`); + assert_true(labelToStringCalled, `${method}() must call toString() on label when label is an object`); + }, `console.${method}()'s label gets converted to string via label.toString() when label is an object`); test(() => { assert_throws({name: 'Error'}, () => { @@ -32,6 +24,6 @@ for (const method of methods) { throw new Error('conversion error'); } }); - }, `${method} ${toStringRethrowAssertionEnding}`); - }, `console.${method}() ${toStringRethrowTestNameEnding}`); + }, `${method} must re-throw any exceptions thrown by label.toString() conversion`); + }, `console.${method}() throws exceptions generated by erroneous label.toString() conversion`); }