forked from Azure/login
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlessons.js
More file actions
38 lines (29 loc) · 1.26 KB
/
Copy pathlessons.js
File metadata and controls
38 lines (29 loc) · 1.26 KB
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
var assert = require('assert');
var jp = require('../');
var data = require('./data/store.json');
suite('orig-google-code-issues', function() {
test('comma in eval', function() {
var pathExpression = '$..book[?(@.price && ",")]'
var results = jp.query(data, pathExpression);
assert.deepEqual(results, data.store.book);
});
test('member names with dots', function() {
var data = { 'www.google.com': 42, 'www.wikipedia.org': 190 };
var results = jp.query(data, "$['www.google.com']");
assert.deepEqual(results, [ 42 ]);
});
test('nested objects with filter', function() {
var data = { dataResult: { object: { objectInfo: { className: "folder", typeName: "Standard Folder", id: "uniqueId" } } } };
var results = jp.query(data, "$..object[?(@.className=='folder')]");
assert.deepEqual(results, [ data.dataResult.object.objectInfo ]);
});
test('script expressions with @ char', function() {
var data = { "DIV": [{ "@class": "value", "val": 5 }] };
var results = jp.query(data, "$..DIV[?(@['@class']=='value')]");
assert.deepEqual(results, data.DIV);
});
test('negative slices', function() {
var results = jp.query(data, "$..book[-1:].title");
assert.deepEqual(results, ['The Lord of the Rings']);
});
});