summaryrefslogtreecommitdiff
path: root/std/xeval/test.ts
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2019-10-10 05:31:23 -0400
committerGitHub <noreply@github.com>2019-10-10 05:31:23 -0400
commite7562eed8c816cd0d97aab6b818d7c8453dbaa2b (patch)
treec5a9f536e79d2c8d2d02897511a9138acaf35394 /std/xeval/test.ts
parent3882c9d19a641e0c919f1350d87c6d7ee280cf78 (diff)
parent93f7f00c956c14620ef031626f124b57397ca867 (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---------std0
-rw-r--r--std/xeval/test.ts49
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");
+});