summaryrefslogtreecommitdiff
path: root/http/file_server_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'http/file_server_test.ts')
-rw-r--r--http/file_server_test.ts51
1 files changed, 51 insertions, 0 deletions
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<any>) {
+ 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();
+ });
+}