From d928c0ca31d6ec8533d5fab5d084ad3708f63ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 14 Aug 2019 22:12:35 +0200 Subject: feat: add overloaded form of unit test declaration (denoland/deno_std#563) Original: https://github.com/denoland/deno_std/commit/bd146e0188dbd2c4a802e0af6e6b0705675c4abb --- testing/mod.ts | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'testing/mod.ts') diff --git a/testing/mod.ts b/testing/mod.ts index 462c13fb1..fa6fda246 100644 --- a/testing/mod.ts +++ b/testing/mod.ts @@ -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"); -- cgit v1.2.3