UNPKG

1.29 kBJavaScriptView Raw
1var assert = require('assert');
2var jp = require('../');
3
4var data = require('./data/store.json');
5
6suite('orig-google-code-issues', function() {
7
8 test('comma in eval', function() {
9 var pathExpression = '$..book[?(@.price && ",")]'
10 var results = jp.query(data, pathExpression);
11 assert.deepEqual(results, data.store.book);
12 });
13
14 test('member names with dots', function() {
15 var data = { 'www.google.com': 42, 'www.wikipedia.org': 190 };
16 var results = jp.query(data, "$['www.google.com']");
17 assert.deepEqual(results, [ 42 ]);
18 });
19
20 test('nested objects with filter', function() {
21 var data = { dataResult: { object: { objectInfo: { className: "folder", typeName: "Standard Folder", id: "uniqueId" } } } };
22 var results = jp.query(data, "$..object[?(@.className=='folder')]");
23 assert.deepEqual(results, [ data.dataResult.object.objectInfo ]);
24 });
25
26 test('script expressions with @ char', function() {
27 var data = { "DIV": [{ "@class": "value", "val": 5 }] };
28 var results = jp.query(data, "$..DIV[?(@['@class']=='value')]");
29 assert.deepEqual(results, data.DIV);
30 });
31
32 test('negative slices', function() {
33 var results = jp.query(data, "$..book[-1:].title");
34 assert.deepEqual(results, ['The Lord of the Rings']);
35 });
36
37});
38