const path = require("path");
|
|
const fs = require("fs");
|
|
const cmd=require("node-cmd");
|
|
const util = require("util");
|
|
const assert = require("assert");
|
|
|
|
const claimUtils = require("../src/claimUtils.js");
|
|
|
|
cmd.get[util.promisify.custom] = (c) => {
|
|
return new Promise((resolve, reject) => {
|
|
cmd.get(c, (err, data, stderr) => {
|
|
if (err) {
|
|
reject(err);
|
|
} else {
|
|
resolve([data, stderr]);
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
const getAsync = util.promisify(cmd.get);
|
|
const mkdir = util.promisify(fs.mkdir);
|
|
const writeFile = util.promisify(fs.writeFile);
|
|
|
|
describe("command line", () => {
|
|
|
|
let tmpPath;
|
|
before(async () => {
|
|
tmpPath = path.join(__dirname, "..", "tmp");
|
|
if (!fs.existsSync(tmpPath)) {
|
|
await mkdir(tmpPath, 0o744);
|
|
}
|
|
process.chdir(tmpPath);
|
|
});
|
|
|
|
it("Should create a tree from a claim files", async () => {
|
|
|
|
let i;
|
|
let claims = [];
|
|
for (i=0; i<100; i++) {
|
|
const b = Buffer.from([ i / 256, i % 256 ]);
|
|
claims[i] = claimUtils.buildClaim("0x01", "0x02", "0x03", b).toString("hex");
|
|
}
|
|
|
|
claims = claims.sort();
|
|
const claimsFile = path.join(tmpPath, "claims100.hex");
|
|
const dbFile = path.join(tmpPath, "claims100.db");
|
|
await writeFile(claimsFile, claims.join("\n"), "utf8");
|
|
|
|
await getAsync(`${path.join("..", "cli.js")} -d ${dbFile} add ${claimsFile} `);
|
|
|
|
const data = await getAsync(`${path.join("..", "cli.js")} -d ${dbFile} export`);
|
|
let claims2 = data[0].split("\n");
|
|
|
|
claims2 = claims2.filter(function(n){ return n.length>0; });
|
|
claims2 = claims2.sort();
|
|
|
|
assert.equal(claims2.join("\n"), claims.join("\n"));
|
|
|
|
}).timeout(20000);
|
|
});
|