deno.land / std@0.166.0 / examples / xeval_test.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.import { xeval } from "./xeval.ts";import { assertEquals, assertStringIncludes } from "../testing/asserts.ts";import { dirname, fromFileUrl } from "../path/mod.ts";
const moduleDir = dirname(fromFileUrl(import.meta.url));
function createReadableStream(str: string) { return new ReadableStream<Uint8Array>({ start(controller) { controller.enqueue(new TextEncoder().encode(str)); controller.close(); }, });}
Deno.test("xevalSuccess", async function () { const chunks: string[] = []; await xeval( createReadableStream("a\nb\nc"), ($) => Promise.resolve(chunks.push($)), ); assertEquals(chunks, ["a", "b", "c"]);});
Deno.test("xevalDelimiter", async function () { const chunks: string[] = []; await xeval( createReadableStream("!MADMADAMADAM!"), ($) => Promise.resolve(chunks.push($)), { delimiter: "MADAM", }, ); assertEquals(chunks, ["!MAD", "ADAM!"]);});
const xevalPath = "xeval.ts";
Deno.test({ name: "xevalCliReplvar", fn: async function () { const p = Deno.spawnChild(Deno.execPath(), { args: [ "run", "--quiet", xevalPath, "--replvar=abc", "console.log(abc)", ], cwd: moduleDir, stdin: "piped", stderr: "null", }); const writer = p.stdin.getWriter(); await writer.write(new TextEncoder().encode("hello")); await writer.close(); const { success, stdout } = await p.output(); assertEquals(success, true); assertEquals(new TextDecoder().decode(stdout).trimEnd(), "hello"); },});
Deno.test("xevalCliSyntaxError", async function () { const command = new Deno.Command(Deno.execPath(), { args: ["run", "--quiet", xevalPath, "("], cwd: moduleDir, }); const { code, success, stdout, stderr } = await command.output(); const decoder = new TextDecoder(); assertEquals(code, 1); assertEquals(success, false); assertEquals(decoder.decode(stdout), ""); assertStringIncludes(decoder.decode(stderr), "SyntaxError");});
std

Version Info

Tagged at
a year ago