0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 09:31:22 -05:00

testing/asserts: Add unimplemented and unreachable (denoland/deno_std#248)

Original: 02274ef48b
This commit is contained in:
Ryan Dahl 2019-03-08 02:32:46 -05:00 committed by GitHub
parent 4b96bfa8c7
commit b7a11b486d
2 changed files with 35 additions and 1 deletions

View file

@ -283,3 +283,13 @@ export async function assertThrowsAsync(
throw new Error(msg);
}
}
/** Use this to stub out methods that will throw when invoked. */
export function unimplemented(msg?: string): never {
throw new Error(msg || "unimplemented");
}
/** Use this to assert unreachable code. */
export function unreachable(): never {
throw new Error("unreachable");
}

View file

@ -7,7 +7,9 @@ import {
assertStrContains,
assertArrayContains,
assertMatch,
assertEquals
assertEquals,
unimplemented,
unreachable
} from "./asserts.ts";
import { test } from "./mod.ts";
// import { assertEquals as prettyAssertEqual } from "./pretty.ts";
@ -112,3 +114,25 @@ test(function testingAssertStringMatchingThrows() {
}
assert(didThrow);
});
test(function testingAssertsUnimplemented() {
let didThrow = false;
try {
unimplemented();
} catch (e) {
assert(e.message === "unimplemented");
didThrow = true;
}
assert(didThrow);
});
test(function testingAssertsUnreachable() {
let didThrow = false;
try {
unreachable();
} catch (e) {
assert(e.message === "unreachable");
didThrow = true;
}
assert(didThrow);
});