mirror of
https://github.com/denoland/deno.git
synced 2024-12-26 09:10:40 -05:00
a913b7a1ba
This PR removes the hack in CLI that allows to run scripts with shorthand: deno script.ts. Removing this functionality because it hacks around short-comings of clap our CLI parser. We agree that this shorthand syntax is desirable, but it needs to be rethinked and reimplemented. For 1.0 we should go with conservative approach that is correct.
72 lines
2 KiB
TypeScript
72 lines
2 KiB
TypeScript
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
|
import { assert, assertEquals } from "../../testing/asserts.ts";
|
|
import { TextProtoReader } from "../../textproto/mod.ts";
|
|
import { BufReader } from "../../io/bufio.ts";
|
|
import { connectWebSocket, WebSocket } from "../../ws/mod.ts";
|
|
import { delay } from "../../util/async.ts";
|
|
|
|
const { test } = Deno;
|
|
|
|
async function startServer(): Promise<Deno.Process> {
|
|
const server = Deno.run({
|
|
// TODO(lucacasonato): remove unstable once possible
|
|
cmd: [
|
|
Deno.execPath(),
|
|
"run",
|
|
"--allow-net",
|
|
"--allow-read",
|
|
"--unstable",
|
|
"server.ts",
|
|
],
|
|
cwd: "examples/chat",
|
|
stdout: "piped",
|
|
});
|
|
try {
|
|
assert(server.stdout != null);
|
|
const r = new TextProtoReader(new BufReader(server.stdout));
|
|
const s = await r.readLine();
|
|
assert(s !== null && s.includes("chat server starting"));
|
|
} catch (err) {
|
|
server.stdout!.close();
|
|
server.close();
|
|
}
|
|
|
|
return server;
|
|
}
|
|
|
|
test({
|
|
name: "[examples/chat] GET / should serve html",
|
|
async fn() {
|
|
const server = await startServer();
|
|
try {
|
|
const resp = await fetch("http://127.0.0.1:8080/");
|
|
assertEquals(resp.status, 200);
|
|
assertEquals(resp.headers.get("content-type"), "text/html");
|
|
const html = await resp.text();
|
|
assert(html.includes("ws chat example"), "body is ok");
|
|
} finally {
|
|
server.close();
|
|
server.stdout!.close();
|
|
}
|
|
await delay(10);
|
|
},
|
|
});
|
|
|
|
test({
|
|
name: "[examples/chat] GET /ws should upgrade conn to ws",
|
|
async fn() {
|
|
const server = await startServer();
|
|
let ws: WebSocket | undefined;
|
|
try {
|
|
ws = await connectWebSocket("http://127.0.0.1:8080/ws");
|
|
const it = ws.receive();
|
|
assertEquals((await it.next()).value, "Connected: [1]");
|
|
ws.send("Hello");
|
|
assertEquals((await it.next()).value, "[1]: Hello");
|
|
} finally {
|
|
server.close();
|
|
server.stdout!.close();
|
|
ws!.conn.close();
|
|
}
|
|
},
|
|
});
|