diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-10-09 17:10:09 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-10-09 17:10:09 -0400 |
commit | 151ce0266eb4de2c8fc600c81c192a5f791b6169 (patch) | |
tree | 7cb04016a1c7ee88adde83814548d7a9409dcde3 /std/xeval/test.ts | |
parent | a355f7c807686918734416d91b79c26c21effba9 (diff) |
Move everything into std subdir
Diffstat (limited to 'std/xeval/test.ts')
-rw-r--r-- | std/xeval/test.ts | 49 |
1 files changed, 49 insertions, 0 deletions
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"); +}); |