jsoniq
Version:
JSONiq implementation for JavaScript
65 lines (63 loc) • 8.81 kB
JavaScript
;
/// <reference path="../../../typings/tsd.d.ts" />
require("jasmine2-pit");
var u = require("./Utils");
describe("Test Item Constructors: ", () => {
it("()", () => {
var e = u.expectQuery("()");
e.toEqual([]);
});
it("seq", () => {
var e = u.expectQuery("((1 + 1, 2), 3, (4 + 0), (5))");
e.toEqual([2, 2, 3, 4, 5]);
});
it("null 1", () => {
var e = u.expectQuery("null", true);
e.toEqual([null]);
});
it("null 2", () => {
var e = u.expectQuery("null, null", true);
e.toEqual([null, null]);
});
it("null 3", () => {
var e = u.expectQuery("1, null, null", true);
e.toEqual([1, null, null]);
});
it("boolean", () => {
var e = u.expectQuery("true, false", true);
e.toEqual([true, false]);
});
it("primitives 1", () => {
var e = u.expectQuery("true, false, null, 2", true);
e.toEqual([true, false, null, 2]);
});
it("primitives 2", () => {
var e = u.expectQuery("null, (), false, null, ((), (), true)", true);
e.toEqual([null, false, null, true]);
});
it("object 1", () => {
var e = u.expectQuery("{}, {}, 1, ({}, 2)", true);
e.toEqual([{}, {}, 1, {}, 2]);
});
it("object 2", () => {
var e = u.expectQuery("{ \"foo\": 1 + 1 }", true);
e.toEqual([{ foo: 2 }]);
});
it("object 3", () => {
var e = u.expectQuery("{ foo: 1, \"bar\": (1 + 1, 2) }", true);
e.toEqual([{ foo: 1, "bar": [2, 2] }]);
});
it("object 4", () => {
var e = u.expectQuery("{ (\"foo\", 2): 1, \"bar\": (1 + 1, 2) }", true);
e.toEqual([{ foo: 1, "bar": [2, 2] }]);
});
it("array 1", () => {
var e = u.expectQuery("[1, 1 + 1, 1 + 1 + 1]", true);
e.toEqual([[1, 2, 3]]);
});
it("array 2", () => {
var e = u.expectQuery("[1, 2, 3]", true);
e.toEqual([[1, 2, 3]]);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3RzL25vZGUvcnVudGltZS9Db25zdHJ1Y3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDeEIsSUFBWSxDQUFDLFdBQU0sU0FBUyxDQUFDLENBQUE7QUFFN0IsUUFBUSxDQUFDLDBCQUEwQixFQUFFO0lBRWpDLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsS0FBSyxFQUFFO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ1QsSUFBSSxD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LFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6InRlc3RzL25vZGUvcnVudGltZS9Db25zdHJ1Y3RvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vLi4vdHlwaW5ncy90c2QuZC50c1wiIC8+XG5yZXF1aXJlKFwiamFzbWluZTItcGl0XCIpO1xuaW1wb3J0ICogYXMgdSBmcm9tIFwiLi9VdGlsc1wiO1xuXG5kZXNjcmliZShcIlRlc3QgSXRlbSBDb25zdHJ1Y3RvcnM6IFwiLCAoKSA9PiB7XG5cbiAgICBpdChcIigpXCIsICgpID0+IHtcbiAgICAgICAgdmFyIGUgPSB1LmV4cGVjdFF1ZXJ5KFwiKClcIik7XG4gICAgICAgIGUudG9FcXVhbChbXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNlcVwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcIigoMSArIDEsIDIpLCAzLCAoNCArIDApLCAoNSkpXCIpO1xuICAgICAgICBlLnRvRXF1YWwoWzIsIDIsIDMsIDQsIDVdKTtcbiAgICB9KTtcblxuICAgIGl0KFwibnVsbCAxXCIsICgpID0+IHtcbiAgICAgICAgdmFyIGUgPSB1LmV4cGVjdFF1ZXJ5KFwibnVsbFwiLCB0cnVlKTtcbiAgICAgICAgZS50b0VxdWFsKFtudWxsXSk7XG4gICAgfSk7XG5cbiAgICBpdChcIm51bGwgMlwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcIm51bGwsIG51bGxcIiwgdHJ1ZSk7XG4gICAgICAgIGUudG9FcXVhbChbbnVsbCwgbnVsbF0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJudWxsIDNcIiwgKCkgPT4ge1xuICAgICAgICB2YXIgZSA9IHUuZXhwZWN0UXVlcnkoXCIxLCBudWxsLCBudWxsXCIsIHRydWUpO1xuICAgICAgICBlLnRvRXF1YWwoWzEsIG51bGwsIG51bGxdKTtcbiAgICB9KTtcblxuICAgIGl0KFwiYm9vbGVhblwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcInRydWUsIGZhbHNlXCIsIHRydWUpO1xuICAgICAgICBlLnRvRXF1YWwoW3RydWUsIGZhbHNlXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInByaW1pdGl2ZXMgMVwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcInRydWUsIGZhbHNlLCBudWxsLCAyXCIsIHRydWUpO1xuICAgICAgICBlLnRvRXF1YWwoW3RydWUsIGZhbHNlLCBudWxsLCAyXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInByaW1pdGl2ZXMgMlwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcIm51bGwsICgpLCBmYWxzZSwgbnVsbCwgKCgpLCAoKSwgdHJ1ZSlcIiwgdHJ1ZSk7XG4gICAgICAgIGUudG9FcXVhbChbbnVsbCwgZmFsc2UsIG51bGwsIHRydWVdKTtcbiAgICB9KTtcblxuICAgIGl0KFwib2JqZWN0IDFcIiwgKCkgPT4ge1xuICAgICAgICB2YXIgZSA9IHUuZXhwZWN0UXVlcnkoXCJ7fSwge30sIDEsICh7fSwgMilcIiwgdHJ1ZSk7XG4gICAgICAgIGUudG9FcXVhbChbe30sIHt9LCAxLCB7fSwgMl0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJvYmplY3QgMlwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcInsgXFxcImZvb1xcXCI6IDEgKyAxIH1cIiwgdHJ1ZSk7XG4gICAgICAgIGUudG9FcXVhbChbeyBmb286IDIgfV0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJvYmplY3QgM1wiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcInsgZm9vOiAxLCBcXFwiYmFyXFxcIjogKDEgKyAxLCAyKSB9XCIsIHRydWUpO1xuICAgICAgICBlLnRvRXF1YWwoW3sgZm9vOiAxLCBcImJhclwiOiBbMiwgMl0gfV0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJvYmplY3QgNFwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcInsgKFxcXCJmb29cXFwiLCAyKTogMSwgXFxcImJhclxcXCI6ICgxICsgMSwgMikgfVwiLCB0cnVlKTtcbiAgICAgICAgZS50b0VxdWFsKFt7IGZvbzogMSwgXCJiYXJcIjogWzIsIDJdIH1dKTtcbiAgICB9KTtcblxuICAgIGl0KFwiYXJyYXkgMVwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcIlsxLCAxICsgMSwgMSArIDEgKyAxXVwiLCB0cnVlKTtcbiAgICAgICAgZS50b0VxdWFsKFtbMSwgMiwgM11dKTtcbiAgICB9KTtcblxuICAgIGl0KFwiYXJyYXkgMlwiLCAoKSA9PiB7XG4gICAgICAgIHZhciBlID0gdS5leHBlY3RRdWVyeShcIlsxLCAyLCAzXVwiLCB0cnVlKTtcbiAgICAgICAgZS50b0VxdWFsKFtbMSwgMiwgM11dKTtcbiAgICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9