summaryrefslogtreecommitdiff
path: root/test/parallel/test-util-format.js
diff options
context:
space:
mode:
authorRoman Reiss <me@silverwind.io>2016-12-16 21:20:15 +0100
committerRoman Reiss <me@silverwind.io>2017-03-29 07:12:05 +0200
commita46c43d21a6c9980c5c1cdafc21be7c96dec1ad5 (patch)
treeadc03f699a16dac8a16f39c5bbe051d423f48ccb /test/parallel/test-util-format.js
parent1fde98bb4fa5cab0d060994768ebd055ce6fbf2c (diff)
downloadandroid-node-v8-a46c43d21a6c9980c5c1cdafc21be7c96dec1ad5.tar.gz
android-node-v8-a46c43d21a6c9980c5c1cdafc21be7c96dec1ad5.tar.bz2
android-node-v8-a46c43d21a6c9980c5c1cdafc21be7c96dec1ad5.zip
util: add %i and %f formatting specifiers
This change brings formatting specifiers available in `util.format` and consequently, `console.*` closer to what is supported in all major browsers. - `%i` is introduced to format integer values. - `%f` is introduced to format floating point values. Fixes: https://github.com/nodejs/node/issues/10292 PR-URL: https://github.com/nodejs/node/pull/10308 Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-util-format.js')
-rw-r--r--test/parallel/test-util-format.js46
1 files changed, 37 insertions, 9 deletions
diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js
index a57a8094ac..912e448d18 100644
--- a/test/parallel/test-util-format.js
+++ b/test/parallel/test-util-format.js
@@ -48,21 +48,51 @@ assert.throws(function() {
util.format('%d', symbol);
}, TypeError);
+// Number format specifier
+assert.strictEqual(util.format('%d'), '%d');
assert.strictEqual(util.format('%d', 42.0), '42');
assert.strictEqual(util.format('%d', 42), '42');
-assert.strictEqual(util.format('%s', 42), '42');
-assert.strictEqual(util.format('%j', 42), '42');
-
-assert.strictEqual(util.format('%d', '42.0'), '42');
assert.strictEqual(util.format('%d', '42'), '42');
-assert.strictEqual(util.format('%s', '42'), '42');
-assert.strictEqual(util.format('%j', '42'), '"42"');
+assert.strictEqual(util.format('%d', '42.0'), '42');
+assert.strictEqual(util.format('%d', 1.5), '1.5');
+assert.strictEqual(util.format('%d', -0.5), '-0.5');
+assert.strictEqual(util.format('%d', ''), '0');
-assert.strictEqual(util.format('%%s%s', 'foo'), '%sfoo');
+// Integer format specifier
+assert.strictEqual(util.format('%i'), '%i');
+assert.strictEqual(util.format('%i', 42.0), '42');
+assert.strictEqual(util.format('%i', 42), '42');
+assert.strictEqual(util.format('%i', '42'), '42');
+assert.strictEqual(util.format('%i', '42.0'), '42');
+assert.strictEqual(util.format('%i', 1.5), '1');
+assert.strictEqual(util.format('%i', -0.5), '0');
+assert.strictEqual(util.format('%i', ''), 'NaN');
+
+// Float format specifier
+assert.strictEqual(util.format('%f'), '%f');
+assert.strictEqual(util.format('%f', 42.0), '42');
+assert.strictEqual(util.format('%f', 42), '42');
+assert.strictEqual(util.format('%f', '42'), '42');
+assert.strictEqual(util.format('%f', '42.0'), '42');
+assert.strictEqual(util.format('%f', 1.5), '1.5');
+assert.strictEqual(util.format('%f', -0.5), '-0.5');
+assert.strictEqual(util.format('%f', Math.PI), '3.141592653589793');
+assert.strictEqual(util.format('%f', ''), 'NaN');
+// String format specifier
assert.strictEqual(util.format('%s'), '%s');
assert.strictEqual(util.format('%s', undefined), 'undefined');
assert.strictEqual(util.format('%s', 'foo'), 'foo');
+assert.strictEqual(util.format('%s', 42), '42');
+assert.strictEqual(util.format('%s', '42'), '42');
+
+// JSON format specifier
+assert.strictEqual(util.format('%j'), '%j');
+assert.strictEqual(util.format('%j', 42), '42');
+assert.strictEqual(util.format('%j', '42'), '"42"');
+
+// Various format specifiers
+assert.strictEqual(util.format('%%s%s', 'foo'), '%sfoo');
assert.strictEqual(util.format('%s:%s'), '%s:%s');
assert.strictEqual(util.format('%s:%s', undefined), 'undefined:%s');
assert.strictEqual(util.format('%s:%s', 'foo'), 'foo:%s');
@@ -71,11 +101,9 @@ assert.strictEqual(util.format('%s:%s', 'foo', 'bar', 'baz'), 'foo:bar baz');
assert.strictEqual(util.format('%%%s%%', 'hi'), '%hi%');
assert.strictEqual(util.format('%%%s%%%%', 'hi'), '%hi%%');
assert.strictEqual(util.format('%sbc%%def', 'a'), 'abc%def');
-
assert.strictEqual(util.format('%d:%d', 12, 30), '12:30');
assert.strictEqual(util.format('%d:%d', 12), '12:%d');
assert.strictEqual(util.format('%d:%d'), '%d:%d');
-
assert.strictEqual(util.format('o: %j, a: %j', {}, []), 'o: {}, a: []');
assert.strictEqual(util.format('o: %j, a: %j', {}), 'o: {}, a: %j');
assert.strictEqual(util.format('o: %j, a: %j'), 'o: %j, a: %j');