summaryrefslogtreecommitdiff
path: root/std/examples/tests
diff options
context:
space:
mode:
authorKevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com>2020-01-30 18:02:14 -0800
committerGitHub <noreply@github.com>2020-01-30 21:02:14 -0500
commit97b2a0bb958549e298cd137778053210a05d85d8 (patch)
tree42322cfcf1d8da7f0f398f3c49b0f7a6cc2fe993 /std/examples/tests
parent3de9540ac6ae5ce051ccd9be69c1d6ef64663a26 (diff)
bring back std/examples/xeval.ts (#3822)
Diffstat (limited to 'std/examples/tests')
-rw-r--r--std/examples/tests/xeval_test.ts48
1 files changed, 48 insertions, 0 deletions
diff --git a/std/examples/tests/xeval_test.ts b/std/examples/tests/xeval_test.ts
new file mode 100644
index 000000000..db9cbceee
--- /dev/null
+++ b/std/examples/tests/xeval_test.ts
@@ -0,0 +1,48 @@
+import { xeval } from "../xeval.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
+const xevalPath = "examples/xeval.ts";
+
+test(async function xevalCliReplvar(): Promise<void> {
+ const p = run({
+ args: [execPath(), xevalPath, "--", "--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(), xevalPath, "--", "("],
+ 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");
+});