diff options
author | uki00a <uki00a@gmail.com> | 2020-02-24 22:31:40 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-24 08:31:40 -0500 |
commit | fe9ac35a650dfeea9168fc1cbbbf323b5689fc3b (patch) | |
tree | 56008d06659dbc0cc167eb0380006dbc5b3d48f4 /std/examples/tests/echo_server_test.ts | |
parent | 162d66d23fe984d7ac0396faacb8800f19a719fd (diff) |
fix(std/examples): add tests for examples (#4094)
Diffstat (limited to 'std/examples/tests/echo_server_test.ts')
-rw-r--r-- | std/examples/tests/echo_server_test.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/std/examples/tests/echo_server_test.ts b/std/examples/tests/echo_server_test.ts new file mode 100644 index 000000000..49a1feb31 --- /dev/null +++ b/std/examples/tests/echo_server_test.ts @@ -0,0 +1,43 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { assertStrictEq, assertNotEquals } from "../../testing/asserts.ts"; +import { BufReader, ReadLineResult } from "../../io/bufio.ts"; + +Deno.test("[examples/echo_server]", async () => { + const encoder = new TextEncoder(); + const decoder = new TextDecoder(); + const process = Deno.run({ + args: [Deno.execPath(), "--allow-net", "echo_server.ts"], + cwd: "examples", + stdout: "piped" + }); + + let conn: Deno.Conn | undefined; + try { + const processReader = new BufReader(process.stdout!); + const message = await processReader.readLine(); + + assertNotEquals(message, Deno.EOF); + assertStrictEq( + 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, Deno.EOF); + + const actualResponse = decoder + .decode((result as ReadLineResult).line) + .trim(); + const expectedResponse = "Hello echo_server"; + + assertStrictEq(actualResponse, expectedResponse); + } finally { + conn?.close(); + process.close(); + } +}); |