From f626b04ebe320a96a220af29595c6ca84cf9a10a Mon Sep 17 00:00:00 2001 From: Andy Hayden Date: Sat, 12 Jan 2019 13:50:04 -0800 Subject: Reorgnanize repos, examples and tests (denoland/deno_std#105) Original: https://github.com/denoland/deno_std/commit/c5e6e015b5be19027f60c19ca86283d12f9258f3 --- http/file_server_test.ts | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 http/file_server_test.ts (limited to 'http/file_server_test.ts') diff --git a/http/file_server_test.ts b/http/file_server_test.ts new file mode 100644 index 000000000..bd00d749b --- /dev/null +++ b/http/file_server_test.ts @@ -0,0 +1,51 @@ +import { readFile } from "deno"; + +import { test, assert, assertEqual } from "../testing/mod.ts"; + +// Promise to completeResolve when all tests completes +let completeResolve; +export const completePromise = new Promise(res => (completeResolve = res)); +let completedTestCount = 0; + +function maybeCompleteTests() { + completedTestCount++; + // Change this when adding more tests + if (completedTestCount === 3) { + completeResolve(); + } +} + +export function runTests(serverReadyPromise: Promise) { + test(async function serveFile() { + await serverReadyPromise; + const res = await fetch("http://localhost:4500/azure-pipelines.yml"); + assert(res.headers.has("access-control-allow-origin")); + assert(res.headers.has("access-control-allow-headers")); + assertEqual(res.headers.get("content-type"), "text/yaml; charset=utf-8"); + const downloadedFile = await res.text(); + const localFile = new TextDecoder().decode( + await readFile("./azure-pipelines.yml") + ); + assertEqual(downloadedFile, localFile); + maybeCompleteTests(); + }); + + test(async function serveDirectory() { + await serverReadyPromise; + const res = await fetch("http://localhost:4500/"); + assert(res.headers.has("access-control-allow-origin")); + assert(res.headers.has("access-control-allow-headers")); + const page = await res.text(); + assert(page.includes("azure-pipelines.yml")); + maybeCompleteTests(); + }); + + test(async function serveFallback() { + await serverReadyPromise; + const res = await fetch("http://localhost:4500/badfile.txt"); + assert(res.headers.has("access-control-allow-origin")); + assert(res.headers.has("access-control-allow-headers")); + assertEqual(res.status, 404); + maybeCompleteTests(); + }); +} -- cgit v1.2.3