diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-10-10 05:31:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-10 05:31:23 -0400 |
commit | e7562eed8c816cd0d97aab6b818d7c8453dbaa2b (patch) | |
tree | c5a9f536e79d2c8d2d02897511a9138acaf35394 /std/xeval/test.ts | |
parent | 3882c9d19a641e0c919f1350d87c6d7ee280cf78 (diff) | |
parent | 93f7f00c956c14620ef031626f124b57397ca867 (diff) |
Merge deno_std in main repo (#3091)
The history of deno_std is persevered but rewritten to update links to issues and PRs
Fixes denoland/deno_std#603
Diffstat (limited to 'std/xeval/test.ts')
m--------- | std | 0 | ||||
-rw-r--r-- | std/xeval/test.ts | 49 |
2 files changed, 49 insertions, 0 deletions
diff --git a/std b/std deleted file mode 160000 -Subproject 43aafbf33285753e7b42230f0eb7969b300f71c diff --git a/std/xeval/test.ts b/std/xeval/test.ts new file mode 100644 index 000000000..f6dd70696 --- /dev/null +++ b/std/xeval/test.ts @@ -0,0 +1,49 @@ +import { xeval } from "./mod.ts"; +import { stringsReader } from "../io/util.ts"; +import { decode, encode } from "../strings/mod.ts"; +import { assertEquals, assertStrContains } from "../testing/asserts.ts"; +import { test } from "../testing/mod.ts"; +const { execPath, run } = Deno; + +test(async function xevalSuccess(): Promise<void> { + const chunks: string[] = []; + await xeval(stringsReader("a\nb\nc"), ($): number => chunks.push($)); + assertEquals(chunks, ["a", "b", "c"]); +}); + +test(async function xevalDelimiter(): Promise<void> { + const chunks: string[] = []; + await xeval(stringsReader("!MADMADAMADAM!"), ($): number => chunks.push($), { + delimiter: "MADAM" + }); + assertEquals(chunks, ["!MAD", "ADAM!"]); +}); + +// https://github.com/denoland/deno/issues/2861 +// TODO: Use the URL constructor here when it's fixed. +const modTsUrl = import.meta.url.replace(/test.ts$/, "mod.ts"); + +test(async function xevalCliReplvar(): Promise<void> { + const p = run({ + args: [execPath(), modTsUrl, "--replvar=abc", "console.log(abc)"], + stdin: "piped", + stdout: "piped", + stderr: "null" + }); + await p.stdin!.write(encode("hello")); + await p.stdin!.close(); + assertEquals(await p.status(), { code: 0, success: true }); + assertEquals(decode(await p.output()).trimEnd(), "hello"); +}); + +test(async function xevalCliSyntaxError(): Promise<void> { + const p = run({ + args: [execPath(), modTsUrl, "("], + stdin: "null", + stdout: "piped", + stderr: "piped" + }); + assertEquals(await p.status(), { code: 1, success: false }); + assertEquals(decode(await p.output()), ""); + assertStrContains(decode(await p.stderrOutput()), "Uncaught SyntaxError"); +}); |