lessons.js 1.3 KB

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