summaryrefslogtreecommitdiff
path: root/std/http/file_server_test.ts
diff options
context:
space:
mode:
author木杉 <zhmushan@qq.com>2019-12-12 13:05:26 +0800
committerRy Dahl <ry@tinyclouds.org>2019-12-12 13:05:26 +0800
commit7f27f649cca0e928a422aaa6182988087338e435 (patch)
treeeab4e39feddd70aa51a1481ffcacdbc775b015e2 /std/http/file_server_test.ts
parentd146d45861708bcf1879563a545a2c8b8f96bd80 (diff)
fix: file_server swallowing permission errors (#3467)
Diffstat (limited to 'std/http/file_server_test.ts')
-rw-r--r--std/http/file_server_test.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/std/http/file_server_test.ts b/std/http/file_server_test.ts
index f725b32a2..85785d923 100644
--- a/std/http/file_server_test.ts
+++ b/std/http/file_server_test.ts
@@ -93,3 +93,29 @@ test(async function serveFallback(): Promise<void> {
killFileServer();
}
});
+
+test(async function servePermissionDenied(): Promise<void> {
+ const deniedServer = Deno.run({
+ args: [Deno.execPath(), "run", "--allow-net", "http/file_server.ts"],
+ stdout: "piped",
+ stderr: "piped"
+ });
+ const reader = new TextProtoReader(new BufReader(deniedServer.stdout!));
+ const errReader = new TextProtoReader(new BufReader(deniedServer.stderr!));
+ const s = await reader.readLine();
+ assert(s !== Deno.EOF && s.includes("server listening"));
+
+ try {
+ await fetch("http://localhost:4500/");
+ assertEquals(
+ await errReader.readLine(),
+ "run again with the --allow-read flag"
+ );
+ } catch (e) {
+ throw e;
+ } finally {
+ deniedServer.close();
+ deniedServer.stdout!.close();
+ deniedServer.stderr!.close();
+ }
+});