From 204248a0c3597b99dc4a706203292141fbaf85ed Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 4 Sep 2019 20:08:56 +0200 Subject: console: update time formatting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This improves the readability of the `console.timeEnd()` output while keeping a higher output's precision in multiple cases. Instead of e.g. '1.005min' it will print '1:00.300 (m:ss.mmm)'. PR-URL: https://github.com/nodejs/node/pull/29629 Reviewed-By: Anna Henningsen Reviewed-By: Michaƫl Zasso --- test/parallel/test-console-formatTime.js | 17 ++++++++--------- test/parallel/test-console.js | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 25 deletions(-) (limited to 'test') diff --git a/test/parallel/test-console-formatTime.js b/test/parallel/test-console-formatTime.js index aa5f7ec7aa..0420013c50 100644 --- a/test/parallel/test-console-formatTime.js +++ b/test/parallel/test-console-formatTime.js @@ -4,12 +4,11 @@ require('../common'); const { formatTime } = require('internal/console/constructor'); const assert = require('assert'); -const test1 = formatTime(100); -const test2 = formatTime(1500); -const test3 = formatTime(60300); -const test4 = formatTime(4000000); - -assert.strictEqual(test1, '100.000ms'); -assert.strictEqual(test2, '1.500s'); -assert.strictEqual(test3, '1.005min'); -assert.strictEqual(test4, '1.111h'); +assert.strictEqual(formatTime(100.0096), '100.01ms'); +assert.strictEqual(formatTime(100.0115), '100.011ms'); +assert.strictEqual(formatTime(1500.04), '1.500s'); +assert.strictEqual(formatTime(1000.056), '1.000s'); +assert.strictEqual(formatTime(60300.3), '1:00.300 (m:ss.mmm)'); +assert.strictEqual(formatTime(4000457.4), '1:06:40.457 (h:mm:ss.mmm)'); +assert.strictEqual(formatTime(3601310.4), '1:00:01.310 (h:mm:ss.mmm)'); +assert.strictEqual(formatTime(3213601017.6), '892:40:01.018 (h:mm:ss.mmm)'); diff --git a/test/parallel/test-console.js b/test/parallel/test-console.js index 1d76c42edc..e5e80ee61b 100644 --- a/test/parallel/test-console.js +++ b/test/parallel/test-console.js @@ -246,24 +246,24 @@ assert.ok(strings[0].includes('foo: { bar: { baz:')); assert.ok(strings[0].includes('quux')); assert.ok(strings.shift().includes('quux: true')); -assert.ok(/^label: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^__proto__: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^constructor: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^hasOwnProperty: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); +assert.ok(/^label: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^__proto__: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^constructor: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^hasOwnProperty: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); // Verify that console.time() coerces label values to strings as expected -assert.ok(/^: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^\[object Object\]: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^\[object Object\]: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^null: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^default: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^default: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^NaN: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); - -assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); -assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h) test$/.test(strings.shift().trim())); -assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h) {} \[ 1, 2, 3 ]$/.test(strings.shift().trim())); -assert.ok(/^log1: \d+\.\d{3}(ms|s|min|h)$/.test(strings.shift().trim())); +assert.ok(/^: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^\[object Object\]: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^\[object Object\]: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^null: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^default: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^default: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^NaN: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); + +assert.ok(/^log1: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); +assert.ok(/^log1: \d+(\.\d{1,3})?(ms|s) test$/.test(strings.shift().trim())); +assert.ok(/^log1: \d+(\.\d{1,3})?(ms|s) {} \[ 1, 2, 3 ]$/.test(strings.shift().trim())); +assert.ok(/^log1: \d+(\.\d{1,3})?(ms|s)$/.test(strings.shift().trim())); // Make sure that we checked all strings assert.strictEqual(strings.length, 0); -- cgit v1.2.3