mirror of
https://github.com/denoland/deno.git
synced 2025-09-30 14:11:14 +00:00
feat: add overloaded form of unit test declaration (denoland/deno_std#563)
Original: bd146e0188
This commit is contained in:
parent
eab0647bd1
commit
d928c0ca31
2 changed files with 23 additions and 3 deletions
|
@ -86,9 +86,24 @@ function filter(name: string): boolean {
|
|||
}
|
||||
}
|
||||
|
||||
export function test(t: TestDefinition | TestFunction): void {
|
||||
const fn: TestFunction = typeof t === "function" ? t : t.fn;
|
||||
const name: string = t.name;
|
||||
export function test(t: TestDefinition): void;
|
||||
export function test(fn: TestFunction): void;
|
||||
export function test(name: string, fn: TestFunction): void;
|
||||
export function test(
|
||||
t: string | TestDefinition | TestFunction,
|
||||
fn?: TestFunction
|
||||
): void {
|
||||
let name: string;
|
||||
|
||||
if (typeof t === "string") {
|
||||
if (!fn) {
|
||||
throw new Error("Missing test function");
|
||||
}
|
||||
name = t;
|
||||
} else {
|
||||
fn = typeof t === "function" ? t : t.fn;
|
||||
name = t.name;
|
||||
}
|
||||
|
||||
if (!name) {
|
||||
throw new Error("Test function may not be anonymous");
|
||||
|
|
|
@ -263,4 +263,9 @@ test(async function testingThrowsAsyncMsgNotIncludes(): Promise<void> {
|
|||
assert(didThrow);
|
||||
});
|
||||
|
||||
test("test fn overloading", (): void => {
|
||||
// just verifying that you can use this test definition syntax
|
||||
assert(true);
|
||||
});
|
||||
|
||||
runIfMain(import.meta);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue