diff options
Diffstat (limited to 'std/examples/curl_test.ts')
-rw-r--r-- | std/examples/curl_test.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/std/examples/curl_test.ts b/std/examples/curl_test.ts new file mode 100644 index 000000000..63b78bff6 --- /dev/null +++ b/std/examples/curl_test.ts @@ -0,0 +1,43 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { serve } from "../http/server.ts"; +import { assertStrictEquals } from "../testing/asserts.ts"; +import { dirname, fromFileUrl } from "../path/mod.ts"; + +const moduleDir = dirname(fromFileUrl(import.meta.url)); + +Deno.test({ + name: "[examples/curl] send a request to a specified url", + fn: async () => { + const server = serve({ port: 8081 }); + const serverPromise = (async (): Promise<void> => { + for await (const req of server) { + req.respond({ body: "Hello world" }); + } + })(); + + const decoder = new TextDecoder(); + const process = Deno.run({ + cmd: [ + Deno.execPath(), + "run", + "--allow-net", + "curl.ts", + "http://localhost:8081", + ], + cwd: moduleDir, + stdout: "piped", + }); + + try { + const output = await process.output(); + const actual = decoder.decode(output).trim(); + const expected = "Hello world"; + + assertStrictEquals(actual, expected); + } finally { + server.close(); + process.close(); + await serverPromise; + } + }, +}); |