Skip to content
Permalink
Browse files

Use pretty assertEqual in testing (denoland#234)

  • Loading branch information...
zekth authored and ry committed Mar 5, 2019
1 parent c0390ad commit 8fb9f709a67e92634b0be3024dfbc70fb445883c
Showing with 14 additions and 32 deletions.
  1. +4 −26 testing/mod.ts
  2. +8 −1 testing/pretty.ts
  3. +2 −5 testing/test.ts
@@ -1,6 +1,7 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.

import { green, red } from "../colors/mod.ts";
import { assertEqual as prettyAssertEqual } from "./pretty.ts";

interface Constructor {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -46,30 +47,7 @@ const assertions = {
* deeply equal, then throw.
*/
equal(actual: unknown, expected: unknown, msg?: string): void {
if (!equal(actual, expected)) {
let actualString: string;
let expectedString: string;
try {
actualString = String(actual);
} catch (e) {
actualString = "[Cannot display]";
}
try {
expectedString = String(expected);
} catch (e) {
expectedString = "[Cannot display]";
}
console.error(
"assertEqual failed. actual =",
actualString,
"expected =",
expectedString
);
if (!msg) {
msg = `actual: ${actualString} expected: ${expectedString}`;
}
throw new Error(msg);
}
prettyAssertEqual(actual, expected, msg);
},

/** Make an assertion that `actual` and `expected` are strictly equal. If
@@ -187,10 +165,10 @@ Object.assign(assertions.assert, assertions);
export const assert = assertions.assert as Assert;

/**
* An alias to assert.equal
* Alias to pretty.assertEqual
* @deprecated
*/
export const assertEqual = assert.equal;
export const assertEqual = prettyAssertEqual;

export type TestFunction = () => void | Promise<void>;

@@ -55,7 +55,11 @@ function buildMessage(diffResult: ReadonlyArray<DiffResult<string>>): string[] {
return messages;
}

export function assertEqual(actual: unknown, expected: unknown): void {
export function assertEqual(
actual: unknown,
expected: unknown,
msg?: string
): void {
if (equal(actual, expected)) {
return;
}
@@ -71,5 +75,8 @@ export function assertEqual(actual: unknown, expected: unknown): void {
} catch (e) {
message = `\n${red(CAN_NOT_DISPLAY)} + \n\n`;
}
if (msg) {
message = msg;
}
throw new Error(message);
}
@@ -1,6 +1,7 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.

import { test, assert, assertEqual, equal, runIfMain } from "./mod.ts";
import { assertEqual as prettyAssertEqual } from "./pretty.ts";
import "./format_test.ts";
import "./diff_test.ts";
import "./pretty_test.ts";
@@ -31,7 +32,7 @@ test(function testingAssertEqual() {
const a = Object.create(null);
a.b = "foo";
assert.equal(a, a);
assert(assertEqual === assert.equal);
assert(assertEqual === prettyAssertEqual);
});

test(function testingAssertFail() {
@@ -52,8 +53,6 @@ test(function testingAssertEqualActualUncoercable() {
assert.equal(a, "bar");
} catch (e) {
didThrow = true;
console.log(e.message);
assert(e.message === "actual: [Cannot display] expected: bar");
}
assert(didThrow);
});
@@ -65,8 +64,6 @@ test(function testingAssertEqualExpectedUncoercable() {
assert.equal("bar", a);
} catch (e) {
didThrow = true;
console.log(e.message);
assert(e.message === "actual: bar expected: [Cannot display]");
}
assert(didThrow);
});

0 comments on commit 8fb9f70

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.