summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/unit/flash_test.ts496
1 files changed, 267 insertions, 229 deletions
diff --git a/cli/tests/unit/flash_test.ts b/cli/tests/unit/flash_test.ts
index 51534c79b..1b979812f 100644
--- a/cli/tests/unit/flash_test.ts
+++ b/cli/tests/unit/flash_test.ts
@@ -41,15 +41,16 @@ Deno.test({ permissions: { net: true } }, async function httpServerBasic() {
const promise = deferred();
const listeningPromise = deferred();
- const server = Deno.serve(async (request) => {
- // FIXME(bartlomieju):
- // make sure that request can be inspected
- console.log(request);
- assertEquals(new URL(request.url).href, "http://127.0.0.1:4501/");
- assertEquals(await request.text(), "");
- promise.resolve();
- return new Response("Hello World", { headers: { "foo": "bar" } });
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ // FIXME(bartlomieju):
+ // make sure that request can be inspected
+ console.log(request);
+ assertEquals(new URL(request.url).href, "http://127.0.0.1:4501/");
+ assertEquals(await request.text(), "");
+ promise.resolve();
+ return new Response("Hello World", { headers: { "foo": "bar" } });
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -80,12 +81,13 @@ Deno.test(
const ac = new AbortController();
let headers: Headers;
- const server = Deno.serve(async (request) => {
- await request.text();
- headers = request.headers;
- promise.resolve();
- return new Response("");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ await request.text();
+ headers = request.headers;
+ promise.resolve();
+ return new Response("");
+ },
port: 2333,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -116,12 +118,13 @@ Deno.test(
const listeningPromise = deferred();
let req: Request;
- const server = Deno.serve(async (request) => {
- await request.text();
- req = request;
- promise.resolve();
- return new Response("Hello World");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ await request.text();
+ req = request;
+ promise.resolve();
+ return new Response("Hello World");
+ },
port: 2334,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -159,11 +162,12 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve((request) => {
- assertEquals(request.body, null);
- promise.resolve();
- return new Response("", { headers: {} });
- }, {
+ const server = Deno.serve({
+ fetch: (request) => {
+ assertEquals(request.body, null);
+ promise.resolve();
+ return new Response("", { headers: {} });
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -202,11 +206,11 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
-
- const server = Deno.serve((request) => {
- assert(!request.body);
- return new Response(stream.readable);
- }, {
+ const server = Deno.serve({
+ fetch: (request) => {
+ assert(!request.body);
+ return new Response(stream.readable);
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -232,11 +236,12 @@ Deno.test(
writer.close();
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- const reqBody = await request.text();
- assertEquals("hello world", reqBody);
- return new Response("yo");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ const reqBody = await request.text();
+ assertEquals("hello world", reqBody);
+ return new Response("yo");
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -259,7 +264,8 @@ Deno.test(
Deno.test({ permissions: { net: true } }, async function httpServerClose() {
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => new Response("ok"), {
+ const server = Deno.serve({
+ fetch: () => new Response("ok"),
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -278,7 +284,8 @@ Deno.test(
async function httpServerEmptyBlobResponse() {
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => new Response(new Blob([])), {
+ const server = Deno.serve({
+ fetch: () => new Response(new Blob([])),
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -298,18 +305,19 @@ Deno.test(
Deno.test({ permissions: { net: true } }, async function httpServerWebSocket() {
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(async (request) => {
- const {
- response,
- socket,
- } = Deno.upgradeWebSocket(request);
- socket.onerror = () => fail();
- socket.onmessage = (m) => {
- socket.send(m.data);
- socket.close(1001);
- };
- return response;
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ const {
+ response,
+ socket,
+ } = Deno.upgradeWebSocket(request);
+ socket.onerror = () => fail();
+ socket.onmessage = (m) => {
+ socket.send(m.data);
+ socket.close(1001);
+ };
+ return response;
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -337,11 +345,12 @@ Deno.test(
const ac = new AbortController();
let headers: Headers;
- const server = Deno.serve(async (request) => {
- headers = request.headers;
- promise.resolve();
- return new Response("");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ headers = request.headers;
+ promise.resolve();
+ return new Response("");
+ },
port: 2333,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -375,12 +384,13 @@ Deno.test(
let headers: Headers;
let text: string;
- const server = Deno.serve(async (request) => {
- headers = request.headers;
- text = await request.text();
- promise.resolve();
- return new Response("");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ headers = request.headers;
+ text = await request.text();
+ promise.resolve();
+ return new Response("");
+ },
port: 2333,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -419,10 +429,11 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => {
- promise.resolve();
- return new Response("");
- }, {
+ const server = Deno.serve({
+ fetch: () => {
+ promise.resolve();
+ return new Response("");
+ },
port: 2333,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -568,10 +579,11 @@ Deno.test(
}).pipeThrough(new TextEncoderStream());
}
- const finished = Deno.serve(() => {
- promise.resolve();
- return new Response(periodicStream());
- }, {
+ const finished = Deno.serve({
+ fetch: () => {
+ promise.resolve();
+ return new Response(periodicStream());
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -598,11 +610,12 @@ Deno.test(
const listeningPromise = deferred();
const promise = deferred();
const ac = new AbortController();
- const server = Deno.serve((request) => {
- assertEquals(request.headers.get("X-Header-Test"), "á");
- promise.resolve();
- return new Response("hello", { headers: { "X-Header-Test": "Æ" } });
- }, {
+ const server = Deno.serve({
+ fetch: (request) => {
+ assertEquals(request.headers.get("X-Header-Test"), "á");
+ promise.resolve();
+ return new Response("hello", { headers: { "X-Header-Test": "Æ" } });
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -643,13 +656,14 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- // FIXME:
- // assertEquals(new URL(request.url).href, "http://127.0.0.1:4501/");
- assertEquals(await request.text(), "");
- promise.resolve();
- return new Response("11");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ // FIXME:
+ // assertEquals(new URL(request.url).href, "http://127.0.0.1:4501/");
+ assertEquals(await request.text(), "");
+ promise.resolve();
+ return new Response("11");
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -696,12 +710,13 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(await request.text(), "");
- assertEquals(request.headers.get("cookie"), "foo=bar, bar=foo");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(await request.text(), "");
+ assertEquals(request.headers.get("cookie"), "foo=bar, bar=foo");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -738,11 +753,12 @@ Deno.test(
await file.write(new Uint8Array(70 * 1024).fill(1)); // 70kb sent in 64kb + 6kb chunks
file.close();
- const server = Deno.serve(async (request) => {
- const f = await Deno.open(tmpFile, { read: true });
- promise.resolve();
- return new Response(f.readable);
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ const f = await Deno.open(tmpFile, { read: true });
+ promise.resolve();
+ return new Response(f.readable);
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -773,10 +789,11 @@ Deno.test(
const hostname = "localhost";
const port = 4501;
- const server = Deno.serve(() => {
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: () => {
+ promise.resolve();
+ return new Response("ok");
+ },
port: port,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -807,11 +824,12 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(request.body, null);
- promise.resolve();
- return new Response(new Uint8Array([128]));
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.body, null);
+ promise.resolve();
+ return new Response(new Uint8Array([128]));
+ },
port: 4501,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -837,8 +855,7 @@ Deno.test("upgradeHttp tcp", async () => {
const promise2 = deferred();
const ac = new AbortController();
const signal = ac.signal;
-
- const server = Deno.serve(async (req) => {
+ const fetch = async (req: Request) => {
const [conn, _] = await Deno.upgradeHttp(req);
await conn.write(
@@ -856,7 +873,9 @@ Deno.test("upgradeHttp tcp", async () => {
promise2.resolve();
conn.close();
- }, {
+ };
+ const server = Deno.serve({
+ fetch,
port: 4501,
signal,
onListen: onListen(listeningPromise),
@@ -897,12 +916,13 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "GET");
- assertEquals(request.headers.get("host"), "deno.land");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "GET");
+ assertEquals(request.headers.get("host"), "deno.land");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -930,12 +950,13 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "GET");
- assertEquals(request.headers.get("server"), "hello\tworld");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "GET");
+ assertEquals(request.headers.get("server"), "hello\tworld");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -963,12 +984,13 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "GET");
- assertEquals(await request.text(), "");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "GET");
+ assertEquals(await request.text(), "");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -998,12 +1020,13 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "POST");
- assertEquals(await request.text(), "I'm a good request.");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "POST");
+ assertEquals(await request.text(), "I'm a good request.");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1043,11 +1066,12 @@ function createServerLengthTest(name: string, testCase: TestCase) {
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "GET");
- promise.resolve();
- return new Response(testCase.body, testCase.headers ?? {});
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "GET");
+ promise.resolve();
+ return new Response(testCase.body, testCase.headers ?? {});
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1174,12 +1198,13 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "GET");
- promises[reqCount].resolve();
- reqCount++;
- return new Response(reqCount <= 1 ? stream("foo bar baz") : "zar quux");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "GET");
+ promises[reqCount].resolve();
+ reqCount++;
+ return new Response(reqCount <= 1 ? stream("foo bar baz") : "zar quux");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1236,13 +1261,14 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "POST");
- assertEquals(request.headers.get("content-length"), "5");
- assertEquals(await request.text(), "hello");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "POST");
+ assertEquals(request.headers.get("content-length"), "5");
+ assertEquals(await request.text(), "hello");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1271,9 +1297,10 @@ Deno.test(
async function httpServerPostWithInvalidPrefixContentLength() {
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => {
- throw new Error("unreachable");
- }, {
+ const server = Deno.serve({
+ fetch: () => {
+ throw new Error("unreachable");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1310,12 +1337,13 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(async (request) => {
- assertEquals(request.method, "POST");
- assertEquals(await request.text(), "qwert");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(request.method, "POST");
+ assertEquals(await request.text(), "qwert");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1346,11 +1374,12 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(async (r) => {
- promise.resolve();
- assertEquals(await r.text(), "12345");
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (r) => {
+ promise.resolve();
+ assertEquals(await r.text(), "12345");
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1381,10 +1410,11 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => {
- promise.resolve();
- return new Response("foo bar baz");
- }, {
+ const server = Deno.serve({
+ fetch: () => {
+ promise.resolve();
+ return new Response("foo bar baz");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1428,11 +1458,12 @@ Deno.test(
const data = new Uint8Array(70 * 1024).fill(1);
await file.write(data);
file.close();
- const server = Deno.serve(async () => {
- const f = await Deno.open(tmpFile, { read: true });
- promise.resolve();
- return new Response(f.readable, { status: 200 });
- }, {
+ const server = Deno.serve({
+ fetch: async () => {
+ const f = await Deno.open(tmpFile, { read: true });
+ promise.resolve();
+ return new Response(f.readable, { status: 200 });
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1462,11 +1493,12 @@ Deno.test(
await file.write(data);
file.close();
- const server = Deno.serve(async (request) => {
- assertEquals(new Uint8Array(await request.arrayBuffer()), data);
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (request) => {
+ assertEquals(new Uint8Array(await request.arrayBuffer()), data);
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1497,11 +1529,9 @@ Deno.test(
const listeningPromise = deferred();
const hostname = "127.0.0.1";
const port = 4501;
- function handler() {
- return new Response("Hello World");
- }
- const server = Deno.serveTls(handler, {
+ const server = Deno.serve({
+ fetch: () => new Response("Hello World"),
hostname,
port,
signal: ac.signal,
@@ -1535,11 +1565,12 @@ Deno.test(
const listeningPromise = deferred();
const promise = deferred();
- const server = Deno.serve(async (req) => {
- assertEquals(await req.text(), "");
- promise.resolve();
- return new Response("ok");
- }, {
+ const server = Deno.serve({
+ fetch: async (req) => {
+ assertEquals(await req.text(), "");
+ promise.resolve();
+ return new Response("ok");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1569,9 +1600,10 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => {
- throw new Error("oops");
- }, {
+ const server = Deno.serve({
+ fetch: () => {
+ throw new Error("oops");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1617,10 +1649,11 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => {
- promise.resolve();
- return new Response(null, { status: 304 });
- }, {
+ const server = Deno.serve({
+ fetch: () => {
+ promise.resolve();
+ return new Response(null, { status: 304 });
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1660,11 +1693,12 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(async (req) => {
- promise.resolve();
- assertEquals(await req.text(), "hello");
- return new Response(null, { status: 304 });
- }, {
+ const server = Deno.serve({
+ fetch: async (req) => {
+ promise.resolve();
+ assertEquals(await req.text(), "hello");
+ return new Response(null, { status: 304 });
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1720,11 +1754,12 @@ Deno.test(
const listeningPromise = deferred();
const ac = new AbortController();
- const server = Deno.serve(async (req) => {
- promise.resolve();
- assertEquals(await req.text(), "");
- return new Response(null, { status: 304 });
- }, {
+ const server = Deno.serve({
+ fetch: async (req) => {
+ promise.resolve();
+ assertEquals(await req.text(), "");
+ return new Response(null, { status: 304 });
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1773,9 +1808,10 @@ for (const [name, req] of badRequests) {
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => {
- throw new Error("oops");
- }, {
+ const server = Deno.serve({
+ fetch: () => {
+ throw new Error("oops");
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1817,7 +1853,8 @@ Deno.test(
const ac = new AbortController();
const listeningPromise = deferred();
- const server = Deno.serve(() => new Response(null), {
+ const server = Deno.serve({
+ fetch: () => new Response(null),
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),
@@ -1856,32 +1893,33 @@ Deno.test(
let reqCount = -1;
let timerId: number | undefined;
- const server = Deno.serve(async (req) => {
- reqCount++;
- if (reqCount === 0) {
- const msg = new TextEncoder().encode("data: hello\r\n\r\n");
- // SSE
- const body = new ReadableStream({
- start(controller) {
- timerId = setInterval(() => {
- controller.enqueue(msg);
- }, 1000);
- },
- cancel() {
- if (typeof timerId === "number") {
- clearInterval(timerId);
- }
- },
- });
- return new Response(body, {
- headers: {
- "Content-Type": "text/event-stream",
- },
- });
- }
+ const server = Deno.serve({
+ fetch: async (req) => {
+ reqCount++;
+ if (reqCount === 0) {
+ const msg = new TextEncoder().encode("data: hello\r\n\r\n");
+ // SSE
+ const body = new ReadableStream({
+ start(controller) {
+ timerId = setInterval(() => {
+ controller.enqueue(msg);
+ }, 1000);
+ },
+ cancel() {
+ if (typeof timerId === "number") {
+ clearInterval(timerId);
+ }
+ },
+ });
+ return new Response(body, {
+ headers: {
+ "Content-Type": "text/event-stream",
+ },
+ });
+ }
- return new Response(`hello ${reqCount}`);
- }, {
+ return new Response(`hello ${reqCount}`);
+ },
port: 4503,
signal: ac.signal,
onListen: onListen(listeningPromise),