jsoniq
Version:
JSONiq implementation for JavaScript
90 lines (81 loc) • 2.85 kB
text/typescript
/// <reference path="../../../typings/tsd.d.ts" />
require("jasmine2-pit");
import * as p from "path";
import * as fs from "fs";
import * as u from "./Utils";
function getQueries(path: string): string[] {
var files: string[] = [];
fs.readdirSync(path).forEach(file => {
file = p.resolve(p.normalize(path + "/" + file));
if(fs.statSync(file).isFile() && ["jq", "xq"].indexOf(file.substring(file.length - 2)) !== -1) {
files.push(file);
} else if(fs.statSync(file).isDirectory()) {
files = files.concat(getQueries(file));
}
});
return files;
}
describe("Test JSONiq Expressions", () => {
var base = "tests/queries/zorba/Queries/zorba/jsoniq";
var queries = [
//"version_decl_02.xq"
];
//getQueries("tests/queries/zorba/Queries/zorba/jsoniq")
queries.forEach(file => {
file = base + "/" + file;
it(file, () => {
var query = fs.readFileSync(file, "utf-8");
var e = u.expectSerializedQuery(query, file.substring(file.length - 3) === ".jq");
file = file.replace("/Queries/", "/ExpQueryResults/");
file = file.substring(0, file.length - 3);
file = file + ".xml.res";
e.toEqual(fs.readFileSync(file, "utf-8"));
});
});
});
describe("Test FLWOR Expressions", () => {
var base = "tests/queries/zorba/Queries/zorba/flwor";
var queries = [
"flwor00.xq",
"flwor01.xq",
"flwor02.xq",
//"flwor03.xq",
//"flwor04.xq",
//"flwor05.xq",
"flwor06.xq",
"flwor07.xq",
"flwor08.xq",
//"flwor09.xq",
"flwor10.xq"
];
queries.forEach(file => {
file = base + "/" + file;
it(file, () => {
var query = fs.readFileSync(file, "utf-8");
var e = u.expectSerializedQuery(query, file.substring(file.length - 3) === ".jq");
file = file.replace("/Queries/", "/ExpQueryResults/");
file = file.substring(0, file.length - 3);
file = file + ".xml.res";
e.toEqual(fs.readFileSync(file, "utf-8").trim());
});
});
});
describe("Test Bang Expressions", () => {
var base = "tests/queries/zorba/Queries/zorba/bang";
var queries = [
"1.xq",
"9.xq",
"10.xq"
];
queries.forEach(file => {
file = base + "/" + file;
it(file, () => {
var query = fs.readFileSync(file, "utf-8");
var e = u.expectSerializedQuery(query, file.substring(file.length - 3) === ".jq");
file = file.replace("/Queries/", "/ExpQueryResults/");
file = file.substring(0, file.length - 3);
file = file + ".xml.res";
e.toEqual(fs.readFileSync(file, "utf-8").trim());
});
});
});