diff options
Diffstat (limited to 'testing/runner_test.ts')
-rw-r--r-- | testing/runner_test.ts | 94 |
1 files changed, 71 insertions, 23 deletions
diff --git a/testing/runner_test.ts b/testing/runner_test.ts index 0e2289187..9b6214918 100644 --- a/testing/runner_test.ts +++ b/testing/runner_test.ts @@ -1,30 +1,78 @@ // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. import { test } from "./mod.ts"; +import { findTestModules } from "./runner.ts"; +import { isWindows } from "../fs/path/constants.ts"; import { assertEquals } from "../testing/asserts.ts"; -import { getMatchingUrls } from "./runner.ts"; -import { join } from "../fs/path/mod.ts"; - -/** - * IMPORTANT: This file assumes it is run from root of repository. - */ -const cwd = Deno.cwd(); -const TEST_ROOT_PATH = join(cwd, "fmt"); - -test(async function getMatchingUrlsRemote(): Promise<void> { - const matches = [ - "https://deno.land/std/fmt/colors_test.ts", - "http://deno.land/std/fmt/printf_test.ts" - ]; - const urls = await getMatchingUrls(matches, [], TEST_ROOT_PATH); - assertEquals(urls, matches); +function urlToFilePath(url: URL): string { + // Since `new URL('file:///C:/a').pathname` is `/C:/a`, remove leading slash. + return url.pathname.slice(url.protocol == "file:" && isWindows ? 1 : 0); +} + +const TEST_DATA_URL = new URL("testdata", import.meta.url); +const TEST_DATA_PATH = urlToFilePath(TEST_DATA_URL); + +test(async function findTestModulesDir1(): Promise<void> { + const urls = await findTestModules(["."], [], TEST_DATA_PATH); + assertEquals(urls.sort(), [ + `${TEST_DATA_URL}/bar_test.js`, + `${TEST_DATA_URL}/foo_test.ts`, + `${TEST_DATA_URL}/subdir/bar_test.js`, + `${TEST_DATA_URL}/subdir/foo_test.ts`, + `${TEST_DATA_URL}/subdir/test.js`, + `${TEST_DATA_URL}/subdir/test.ts`, + `${TEST_DATA_URL}/test.js`, + `${TEST_DATA_URL}/test.ts` + ]); +}); + +test(async function findTestModulesDir2(): Promise<void> { + const urls = await findTestModules(["subdir"], [], TEST_DATA_PATH); + assertEquals(urls.sort(), [ + `${TEST_DATA_URL}/subdir/bar_test.js`, + `${TEST_DATA_URL}/subdir/foo_test.ts`, + `${TEST_DATA_URL}/subdir/test.js`, + `${TEST_DATA_URL}/subdir/test.ts` + ]); +}); + +test(async function findTestModulesGlob(): Promise<void> { + const urls = await findTestModules(["**/*_test.{js,ts}"], [], TEST_DATA_PATH); + assertEquals(urls.sort(), [ + `${TEST_DATA_URL}/bar_test.js`, + `${TEST_DATA_URL}/foo_test.ts`, + `${TEST_DATA_URL}/subdir/bar_test.js`, + `${TEST_DATA_URL}/subdir/foo_test.ts` + ]); +}); + +test(async function findTestModulesExcludeDir(): Promise<void> { + const urls = await findTestModules(["."], ["subdir"], TEST_DATA_PATH); + assertEquals(urls.sort(), [ + `${TEST_DATA_URL}/bar_test.js`, + `${TEST_DATA_URL}/foo_test.ts`, + `${TEST_DATA_URL}/test.js`, + `${TEST_DATA_URL}/test.ts` + ]); }); -test(async function getMatchingUrlsLocal(): Promise<void> { - const urls = await getMatchingUrls( - ["fmt/*_test.ts"], - ["colors*"], - TEST_ROOT_PATH - ); - assertEquals(urls.length, 1); +test(async function findTestModulesExcludeGlob(): Promise<void> { + const urls = await findTestModules(["."], ["**/foo*"], TEST_DATA_PATH); + assertEquals(urls.sort(), [ + `${TEST_DATA_URL}/bar_test.js`, + `${TEST_DATA_URL}/subdir/bar_test.js`, + `${TEST_DATA_URL}/subdir/test.js`, + `${TEST_DATA_URL}/subdir/test.ts`, + `${TEST_DATA_URL}/test.js`, + `${TEST_DATA_URL}/test.ts` + ]); +}); + +test(async function findTestModulesRemote(): Promise<void> { + const urls = [ + "https://example.com/colors_test.ts", + "http://example.com/printf_test.ts" + ]; + const matches = await findTestModules(urls, []); + assertEquals(matches, urls); }); |