1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-27 01:29:14 -05:00

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

This commit is contained in:
Ryan Dahl 2019-03-08 02:32:46 -05:00 committed by GitHub
parent afaf343f37
commit 02274ef48b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 1 deletions

View file

@ -283,3 +283,13 @@ export async function assertThrowsAsync(
throw new Error(msg); 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, assertStrContains,
assertArrayContains, assertArrayContains,
assertMatch, assertMatch,
assertEquals assertEquals,
unimplemented,
unreachable
} from "./asserts.ts"; } from "./asserts.ts";
import { test } from "./mod.ts"; import { test } from "./mod.ts";
// import { assertEquals as prettyAssertEqual } from "./pretty.ts"; // import { assertEquals as prettyAssertEqual } from "./pretty.ts";
@ -112,3 +114,25 @@ test(function testingAssertStringMatchingThrows() {
} }
assert(didThrow); 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);
});