-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
24 lines (18 loc) · 1.11 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
'use strict';
const assert = require("assert");
const json_miner = require("./json-miner");
var obj = { "hello": "world", "embeded": '{"hello":"world"}' };
var dump = ` PREFIX ${JSON.stringify(obj)} BETWEEN
${JSON.stringify(obj, null, 4)} SUFFIX
{invalid:json} [{}]`;
var result = json_miner.dig(dump);
assert.strictEqual(result.length, 3, "Incorrect JSONs number captured #1");
assert.deepEqual(result[0], JSON.stringify(obj), "Capture wrong payload #1");
assert.deepEqual(JSON.parse(result[1]), obj, "Capture wrong payload #2");
assert.deepEqual(result[2], "[{}]", "Capture wrong payload #3");
result = json_miner.dig(dump, true);
assert.strictEqual(result.length, 3, "Incorrect JSONs number captured #2");
assert.deepEqual(dump.substr(result[0][0], result[0][1] - result[0][0] + 1), JSON.stringify(obj), "Capture wrong payload #4");
assert.deepEqual(JSON.parse(dump.substr(result[1][0], result[1][1] - result[1][0] + 1)), obj, "Capture wrong payload #5");
assert.deepEqual(dump.substr(result[2][0], result[2][1] - result[2][0] + 1), "[{}]", "Capture wrong payload #6");
console.log("\x1b[32m%s\x1b[0m", "ALL OK");