inquiry
Version:
A parameterized JSON path language for Node.js and the browser.
17 lines (15 loc) • 1.2 kB
JavaScript
#!/usr/bin/env node
var inquiry = require("../..");
require("proof")(8, function (equal) {
var object;
object = { firstName: "Abraham", lastName: "Lincoln" };
equal(inquiry("[.{$.firstName == 'Abraham'}]")(object).pop().lastName, 'Lincoln', 'select by property');
equal(inquiry("[{$.firstName == 'Abraham'}]")(object).pop().lastName, 'Lincoln', 'select by property no dot');
object = require('./presidents');
equal(inquiry("/presidents[.{$.firstName == 'Andrew'}]")(object).pop().lastName, 'Jackson', 'select by property many');
equal(inquiry("/presidents![.{$.firstName != 'Andrew'}]")(object).pop().lastName, 'Jackson', 'negate sub-query');
equal(inquiry("/presidents[{$.firstName == 'Andrew'}]")(object).pop().lastName, 'Jackson', 'select by property many no dot');
equal(inquiry("/presidents[{$.firstName == 'Andrew'}]/lastName")(object).pop(), 'Jackson', 'select by property many no dot continue');
equal(inquiry("/presidents[{$.firstName == 'Horatio'}]")(object).length, 0, 'select by property many no dot continue');
equal(inquiry(" / presidents [ { $.firstName == 'Andrew' } ] / lastName ")(object).pop(), 'Jackson', 'select by property many no dot continue spaced');
});