summaryrefslogtreecommitdiff
path: root/js/console_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/console_test.ts')
-rw-r--r--js/console_test.ts74
1 files changed, 74 insertions, 0 deletions
diff --git a/js/console_test.ts b/js/console_test.ts
index 21116f7c5..46a349784 100644
--- a/js/console_test.ts
+++ b/js/console_test.ts
@@ -145,6 +145,80 @@ test(function consoleTestStringifyWithDepth() {
);
});
+test(function consoleTestWithIntegerFormatSpecifier() {
+ assertEqual(stringify("%i"), "%i");
+ assertEqual(stringify("%i", 42.0), "42");
+ assertEqual(stringify("%i", 42), "42");
+ assertEqual(stringify("%i", "42"), "42");
+ assertEqual(stringify("%i", "42.0"), "42");
+ assertEqual(stringify("%i", 1.5), "1");
+ assertEqual(stringify("%i", -0.5), "0");
+ assertEqual(stringify("%i", ""), "NaN");
+ assertEqual(stringify("%i", Symbol()), "NaN");
+ assertEqual(stringify("%i %d", 42, 43), "42 43");
+ assertEqual(stringify("%d %i", 42), "42 %i");
+ assertEqual(stringify("%d", 12345678901234567890123), "1");
+ assertEqual(
+ stringify("%i", 12345678901234567890123n),
+ "12345678901234567890123n"
+ );
+});
+
+test(function consoleTestWithFloatFormatSpecifier() {
+ assertEqual(stringify("%f"), "%f");
+ assertEqual(stringify("%f", 42.0), "42");
+ assertEqual(stringify("%f", 42), "42");
+ assertEqual(stringify("%f", "42"), "42");
+ assertEqual(stringify("%f", "42.0"), "42");
+ assertEqual(stringify("%f", 1.5), "1.5");
+ assertEqual(stringify("%f", -0.5), "-0.5");
+ assertEqual(stringify("%f", Math.PI), "3.141592653589793");
+ assertEqual(stringify("%f", ""), "NaN");
+ assertEqual(stringify("%f", Symbol("foo")), "NaN");
+ assertEqual(stringify("%f", 5n), "5");
+ assertEqual(stringify("%f %f", 42, 43), "42 43");
+ assertEqual(stringify("%f %f", 42), "42 %f");
+});
+
+test(function consoleTestWithStringFormatSpecifier() {
+ assertEqual(stringify("%s"), "%s");
+ assertEqual(stringify("%s", undefined), "undefined");
+ assertEqual(stringify("%s", "foo"), "foo");
+ assertEqual(stringify("%s", 42), "42");
+ assertEqual(stringify("%s", "42"), "42");
+ assertEqual(stringify("%s %s", 42, 43), "42 43");
+ assertEqual(stringify("%s %s", 42), "42 %s");
+ assertEqual(stringify("%s", Symbol("foo")), "Symbol(foo)");
+});
+
+test(function consoleTestWithObjectFormatSpecifier() {
+ assertEqual(stringify("%o"), "%o");
+ assertEqual(stringify("%o", 42), "42");
+ assertEqual(stringify("%o", "foo"), "foo");
+ assertEqual(stringify("o: %o, a: %O", {}, []), "o: {}, a: []");
+ assertEqual(stringify("%o", { a: 42 }), "{ a: 42 }");
+ assertEqual(
+ stringify("%o", { a: { b: { c: { d: new Set([1]) } } } }),
+ "{ a: { b: { c: { d: [Set] } } } }"
+ );
+});
+
+test(function consoleTestWithVariousOrInvalidFormatSpecifier() {
+ assertEqual(stringify("%s:%s"), "%s:%s");
+ assertEqual(stringify("%i:%i"), "%i:%i");
+ assertEqual(stringify("%d:%d"), "%d:%d");
+ assertEqual(stringify("%%s%s", "foo"), "%sfoo");
+ assertEqual(stringify("%s:%s", undefined), "undefined:%s");
+ assertEqual(stringify("%s:%s", "foo", "bar"), "foo:bar");
+ assertEqual(stringify("%s:%s", "foo", "bar", "baz"), "foo:bar baz");
+ assertEqual(stringify("%%%s%%", "hi"), "%hi%");
+ assertEqual(stringify("%d:%d", 12), "12:%d");
+ assertEqual(stringify("%i:%i", 12), "12:%i");
+ assertEqual(stringify("%f:%f", 12), "12:%f");
+ assertEqual(stringify("o: %o, a: %o", {}), "o: {}, a: %o");
+ assertEqual(stringify("abc%", 1), "abc% 1");
+});
+
test(function consoleTestCallToStringOnLabel() {
const methods = ["count", "countReset", "time", "timeLog", "timeEnd"];