diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2019-08-14 16:22:31 +0200 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-08-14 10:22:31 -0400 |
commit | eab0647bd1184d0ade9a54b8720eb52300d2ba5d (patch) | |
tree | ff6e8da85df5f2c400eb6c02505cdffd380b4e64 /testing/asserts_test.ts | |
parent | 63bbe2a2e041388ec167d67c73f497ea7b8590c6 (diff) |
refactor 'assertEquals' (denoland/deno_std#560)
* merge 'testing/pretty.ts' into 'testing/asserts.ts'
* throw AssertionError in assertEquals
* update misc tests use AssertionError
Original: https://github.com/denoland/deno_std/commit/ff2d7f24dbc955650a11fc8db2f35c0aa38dcdb1
Diffstat (limited to 'testing/asserts_test.ts')
-rw-r--r-- | testing/asserts_test.ts | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/testing/asserts_test.ts b/testing/asserts_test.ts index e4f05f166..ba07b3a83 100644 --- a/testing/asserts_test.ts +++ b/testing/asserts_test.ts @@ -15,6 +15,7 @@ import { unreachable } from "./asserts.ts"; import { test } from "./mod.ts"; +import { red, green, white, gray, bold } from "../colors/mod.ts"; test(function testingEqual(): void { assert(equal("world", "world")); @@ -163,3 +164,90 @@ test(function testingAssertFail(): void { "Failed assertion: foo" ); }); + +const createHeader = (): string[] => [ + "", + "", + ` ${gray(bold("[Diff]"))} ${red(bold("Left"))} / ${green(bold("Right"))}`, + "", + "" +]; + +const added: (s: string) => string = (s: string): string => green(bold(s)); +const removed: (s: string) => string = (s: string): string => red(bold(s)); + +test({ + name: "pass case", + fn(): void { + assertEquals({ a: 10 }, { a: 10 }); + assertEquals(true, true); + assertEquals(10, 10); + assertEquals("abc", "abc"); + assertEquals({ a: 10, b: { c: "1" } }, { a: 10, b: { c: "1" } }); + } +}); + +test({ + name: "failed with number", + fn(): void { + assertThrows( + (): void => assertEquals(1, 2), + AssertionError, + [...createHeader(), removed(`- 1`), added(`+ 2`), ""].join("\n") + ); + } +}); + +test({ + name: "failed with number vs string", + fn(): void { + assertThrows( + (): void => assertEquals(1, "1"), + AssertionError, + [...createHeader(), removed(`- 1`), added(`+ "1"`)].join("\n") + ); + } +}); + +test({ + name: "failed with array", + fn(): void { + assertThrows( + (): void => assertEquals([1, "2", 3], ["1", "2", 3]), + AssertionError, + [ + ...createHeader(), + white(" Array ["), + removed(`- 1,`), + added(`+ "1",`), + white(' "2",'), + white(" 3,"), + white(" ]"), + "" + ].join("\n") + ); + } +}); + +test({ + name: "failed with object", + fn(): void { + assertThrows( + (): void => assertEquals({ a: 1, b: "2", c: 3 }, { a: 1, b: 2, c: [3] }), + AssertionError, + [ + ...createHeader(), + white(" Object {"), + white(` "a": 1,`), + added(`+ "b": 2,`), + added(`+ "c": Array [`), + added(`+ 3,`), + added(`+ ],`), + removed(`- "b": "2",`), + removed(`- "c": 3,`), + white(" }"), + "" + ].join("\n") + ); + } +}); |