deno.land / std@0.167.0 / examples / catj_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
77
78
79
80
81
82
83
84
85
86
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.import { assertStrictEquals } from "../testing/asserts.ts";import { dirname, fromFileUrl } from "../path/mod.ts";
const moduleDir = dirname(fromFileUrl(import.meta.url));
Deno.test("[examples/catj] print an array", async () => { const decoder = new TextDecoder(); const process = catj("testdata/catj/array.json");
await process.stdin.close(); const { stdout } = await process.output(); const actual = decoder.decode(stdout).trim(); const expected = [ '.[0] = "string"', ".[1] = 100", '.[2].key = "value"', '.[2].array[0] = "foo"', '.[2].array[1] = "bar"', ].join("\n");
assertStrictEquals(actual, expected);});
Deno.test("[examples/catj] print an object", async () => { const decoder = new TextDecoder(); const process = catj("testdata/catj/object.json");
await process.stdin.close(); const { stdout } = await process.output(); const actual = decoder.decode(stdout).trim(); const expected = [ '.string = "foobar"', ".number = 123", '.array[0].message = "hello"', ].join("\n");
assertStrictEquals(actual, expected);});
Deno.test("[examples/catj] print multiple files", async () => { const decoder = new TextDecoder(); const process = catj( "testdata/catj/simple-object.json", "testdata/catj/simple-array.json", );
await process.stdin.close(); const { stdout } = await process.output(); const actual = decoder.decode(stdout).trim(); const expected = ['.message = "hello"', ".[0] = 1", ".[1] = 2"].join("\n");
assertStrictEquals(actual, expected);});
Deno.test("[examples/catj] read from stdin", async () => { const decoder = new TextDecoder(); const process = catj("-"); const input = `{ "foo": "bar" }`;
const writer = process.stdin.getWriter(); await writer.write(new TextEncoder().encode(input)); writer.releaseLock(); await process.stdin.close(); const { stdout } = await process.output(); const actual = decoder.decode(stdout).trim();
assertStrictEquals(actual, '.foo = "bar"');});
function catj(...files: string[]): Deno.ChildProcess { const process = new Deno.Command(Deno.execPath(), { args: [ "run", "--quiet", "--allow-read", "catj.ts", ...files, ], cwd: moduleDir, stdin: "piped", env: { NO_COLOR: "true" }, }); return process.spawn();}
std

Version Info

Tagged at
a year ago