-
Notifications
You must be signed in to change notification settings - Fork 3
/
test.js
69 lines (53 loc) · 2.23 KB
/
test.js
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
var assert = require("assert")
var exec = require("child_process").exec
const EXIT_SUCCESS = 0
const EXIT_NOTFOUND = 1
const EXIT_USAGE = 2
const EXIT_PARSE = 3
const EXIT_QUERY = 4
exec("json-query", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_USAGE)
})
exec("json-query -h", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_USAGE)
})
exec("json-query --help", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_USAGE)
})
exec("json-query -x", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_USAGE)
})
exec("json-query --foo", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_USAGE)
})
exec("json-query -n", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_USAGE)
})
exec("json-query --no-escape", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_USAGE)
})
exec("json-query foo '[]'", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_NOTFOUND)
assert.strictEqual(stdout, "undefined\n")
})
exec("json-query foo [bar]", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_PARSE)
})
exec("json-query ! '[]'", function (err, stdout, stderr) {
assert.strictEqual(err.code, EXIT_QUERY)
})
exec("json-query -n foo '{\"foo\": \"bar\"}'", function (err, stdout, stderr) {
assert.strictEqual(stdout, "bar\n")
})
exec("json-query foo '{\"foo\": \"bar\"}'", function (err, stdout, stderr) {
assert.strictEqual(stdout, "\"bar\"\n")
})
exec("json-query '?foo=\"bar\"&rating>3' '[{\"foo\":\"bar\",\"rating\":4}, {\"foo\":\"baz\",\"rating\":2}]'", function (err, stdout, stderr) {
assert.strictEqual(stdout, "[{\"foo\":\"bar\",\"rating\":4}]\n")
})
exec("json-query '$[?price<15.00][\\rating][0:10]' '[{\"price\":12.25,\"rating\":4},{\"price\":17.75,\"rating\":2}]'", function (err, stdout, stderr) {
assert.strictEqual(stdout, "[{\"price\":12.25,\"rating\":4}]\n")
})
exec("json-query '$.customers[?purchases > 21 & name=\"Jake\"][\\purchases]' '{\"customers\":[{\"name\":\"Susan\",\"purchases\":29}, {\"name\":\"Kim\",\"purchases\":150}, {\"name\":\"Jake\",\"purchases\":27}]}'", function (err, stdout, stderr) {
assert.strictEqual(stdout, "[{\"name\":\"Jake\",\"purchases\":27}]\n")
})