mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 04:39:10 +00:00
refactor(std/example): Inconsistencies in the example tests (#7684)
This commit is contained in:
parent
ff785bc35a
commit
04836dc700
8 changed files with 27 additions and 27 deletions
47
std/examples/echo_server_test.ts
Normal file
47
std/examples/echo_server_test.ts
Normal file
|
@ -0,0 +1,47 @@
|
|||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
||||
import { assertStrictEquals, assertNotEquals } from "../testing/asserts.ts";
|
||||
import { BufReader, ReadLineResult } from "../io/bufio.ts";
|
||||
import { dirname, fromFileUrl } from "../path/mod.ts";
|
||||
|
||||
const moduleDir = dirname(fromFileUrl(import.meta.url));
|
||||
|
||||
Deno.test("[examples/echo_server]", async () => {
|
||||
const encoder = new TextEncoder();
|
||||
const decoder = new TextDecoder();
|
||||
const process = Deno.run({
|
||||
cmd: [Deno.execPath(), "run", "--allow-net", "echo_server.ts"],
|
||||
cwd: moduleDir,
|
||||
stdout: "piped",
|
||||
});
|
||||
|
||||
let conn: Deno.Conn | undefined;
|
||||
try {
|
||||
const processReader = new BufReader(process.stdout);
|
||||
const message = await processReader.readLine();
|
||||
|
||||
assertNotEquals(message, null);
|
||||
assertStrictEquals(
|
||||
decoder.decode((message as ReadLineResult).line).trim(),
|
||||
"Listening on 0.0.0.0:8080",
|
||||
);
|
||||
|
||||
conn = await Deno.connect({ hostname: "127.0.0.1", port: 8080 });
|
||||
const connReader = new BufReader(conn);
|
||||
|
||||
await conn.write(encoder.encode("Hello echo_server\n"));
|
||||
const result = await connReader.readLine();
|
||||
|
||||
assertNotEquals(result, null);
|
||||
|
||||
const actualResponse = decoder
|
||||
.decode((result as ReadLineResult).line)
|
||||
.trim();
|
||||
const expectedResponse = "Hello echo_server";
|
||||
|
||||
assertStrictEquals(actualResponse, expectedResponse);
|
||||
} finally {
|
||||
conn?.close();
|
||||
process.stdout.close();
|
||||
process.close();
|
||||
}
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue