diff options
| author | Parsa Ghadimi <me@qti3e.com> | 2018-09-05 10:59:02 +0430 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2018-09-06 11:07:10 -0400 |
| commit | 1052f8d0c9530ccae38f2d6c1ab149363130f489 (patch) | |
| tree | 3ed73ba3b618c5c885f2bdb59bb7538cde3b3548 /js | |
| parent | 1e709aa3486ff0700f45c78c07fa57e2c0fd1985 (diff) | |
Check allow-net in fetch
Diffstat (limited to 'js')
| -rw-r--r-- | js/fetch.ts | 8 | ||||
| -rw-r--r-- | js/fetch_test.ts | 14 |
2 files changed, 17 insertions, 5 deletions
diff --git a/js/fetch.ts b/js/fetch.ts index 73ad34e7a..2d57fa65c 100644 --- a/js/fetch.ts +++ b/js/fetch.ts @@ -166,8 +166,7 @@ class FetchRequest { fbs.FetchReq.addId(builder, this.id); fbs.FetchReq.addUrl(builder, url); const msg = fbs.FetchReq.endFetchReq(builder); - const res = send(builder, fbs.Any.FetchReq, msg); - assert(res == null); + send(builder, fbs.Any.FetchReq, msg); } } @@ -177,7 +176,7 @@ export function fetch( ): Promise<Response> { const fetchReq = new FetchRequest(input as string); const response = fetchReq.response; - return new Promise((resolve, reject) => { + const promise = new Promise<Response>((resolve, reject) => { response.onHeader = (response: FetchResponse) => { log("onHeader"); resolve(response); @@ -186,6 +185,7 @@ export function fetch( log("onError", error); reject(error); }; - fetchReq.start(); }); + fetchReq.start(); + return promise; } diff --git a/js/fetch_test.ts b/js/fetch_test.ts index 873f2fbde..88cf834bc 100644 --- a/js/fetch_test.ts +++ b/js/fetch_test.ts @@ -1,5 +1,5 @@ // Copyright 2018 the Deno authors. All rights reserved. MIT license. -import { testPerm, assertEqual } from "./test_util.ts"; +import { test, testPerm, assert, assertEqual } from "./test_util.ts"; import * as deno from "deno"; testPerm({ net: true }, async function fetchJsonSuccess() { @@ -7,3 +7,15 @@ testPerm({ net: true }, async function fetchJsonSuccess() { const json = await response.json(); assertEqual(json.name, "deno"); }); + +test(async function fetchPerm() { + let err; + try { + await fetch("http://localhost:4545/package.json"); + } catch (err_) { + err = err_; + } + // TODO assert(err instanceof deno.PermissionDenied). + assert(err); + assertEqual(err.name, "deno.PermissionDenied"); +}); |
