summaryrefslogtreecommitdiff
path: root/testing/pretty_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'testing/pretty_test.ts')
-rw-r--r--testing/pretty_test.ts92
1 files changed, 92 insertions, 0 deletions
diff --git a/testing/pretty_test.ts b/testing/pretty_test.ts
new file mode 100644
index 000000000..f3b087aff
--- /dev/null
+++ b/testing/pretty_test.ts
@@ -0,0 +1,92 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+
+import { test, assert } from "./mod.ts";
+import { red, green, white, gray, bold } from "../colors/mod.ts";
+import { assertEqual } from "./pretty.ts";
+
+const createHeader = () => [
+ "",
+ "",
+ ` ${gray(bold("[Diff]"))} ${red(bold("Left"))} / ${green(bold("Right"))}`,
+ "",
+ ""
+];
+
+const added = (s: string) => green(bold(s));
+const removed = (s: string) => red(bold(s));
+
+test({
+ name: "pass case",
+ fn() {
+ assertEqual({ a: 10 }, { a: 10 });
+ assertEqual(true, true);
+ assertEqual(10, 10);
+ assertEqual("abc", "abc");
+ assertEqual({ a: 10, b: { c: "1" } }, { a: 10, b: { c: "1" } });
+ }
+});
+
+test({
+ name: "failed with number",
+ fn() {
+ assert.throws(
+ () => assertEqual(1, 2),
+ Error,
+ [...createHeader(), removed(`- 1`), added(`+ 2`), ""].join("\n")
+ );
+ }
+});
+
+test({
+ name: "failed with number vs string",
+ fn() {
+ assert.throws(
+ () => assertEqual(1, "1"),
+ Error,
+ [...createHeader(), removed(`- 1`), added(`+ "1"`)].join("\n")
+ );
+ }
+});
+
+test({
+ name: "failed with array",
+ fn() {
+ assert.throws(
+ () => assertEqual([1, "2", 3], ["1", "2", 3]),
+ Error,
+ [
+ ...createHeader(),
+ white(" Array ["),
+ removed(`- 1,`),
+ added(`+ "1",`),
+ white(' "2",'),
+ white(" 3,"),
+ white(" ]"),
+ ""
+ ].join("\n")
+ );
+ }
+});
+
+test({
+ name: "failed with object",
+ fn() {
+ assert.throws(
+ () => assertEqual({ a: 1, b: "2", c: 3 }, { a: 1, b: 2, c: [3] }),
+ Error,
+ [
+ ...createHeader(),
+ white(" Object {"),
+ white(` "a": 1,`),
+ added(`+ "b": 2,`),
+ added(`+ "c": Array [`),
+ added(`+ 3,`),
+ added(`+ ],`),
+ removed(`- "b": "2",`),
+ removed(`- "c": 3,`),
+ white(" }"),
+ ""
+ ].join("\n")
+ );
+ }
+});