From fe9ac35a650dfeea9168fc1cbbbf323b5689fc3b Mon Sep 17 00:00:00 2001 From: uki00a Date: Mon, 24 Feb 2020 22:31:40 +0900 Subject: fix(std/examples): add tests for examples (#4094) --- std/examples/tests/curl_test.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 std/examples/tests/curl_test.ts (limited to 'std/examples/tests/curl_test.ts') diff --git a/std/examples/tests/curl_test.ts b/std/examples/tests/curl_test.ts new file mode 100644 index 000000000..71a0fe67f --- /dev/null +++ b/std/examples/tests/curl_test.ts @@ -0,0 +1,41 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { Server, serve } from "../../http/server.ts"; +import { assertStrictEq } from "../../testing/asserts.ts"; + +let server: Server | undefined; + +async function startTestServer(): Promise { + server = await serve({ port: 8080 }); + (async (): Promise => { + for await (const req of server) { + req.respond({ body: "Hello world" }); + } + })(); +} + +Deno.test("[examples/curl] beforeAll", async () => { + await startTestServer(); +}); + +Deno.test("[examples/curl] send a request to a specified url", async () => { + const decoder = new TextDecoder(); + const process = Deno.run({ + args: [Deno.execPath(), "--allow-net", "curl.ts", "http://localhost:8080"], + cwd: "examples", + stdout: "piped" + }); + + try { + const output = await Deno.readAll(process.stdout!); + const actual = decoder.decode(output).trim(); + const expected = "Hello world"; + + assertStrictEq(actual, expected); + } finally { + process.close(); + } +}); + +Deno.test("[examples/curl] afterAll", () => { + server?.close(); +}); -- cgit v1.2.3