UNPKG

epha-robot

Version:

Fetching, cleaning, transforming of pharmaceutical data from public resources

127 lines (106 loc) 3.43 kB
"use strict"; var rewire = require("rewire"); var chai = require("chai"); var expect = chai.expect; describe("disk", function () { var disk, mkdirpMock, mkdirpMockCB, fsMock, writeFileCB, data; before(function () { mkdirpMock = function (dir, callback) { mkdirpMockCB = callback; }; fsMock = { writeFile: function (filename, data, callback) { writeFileCB = callback; } }; disk = rewire("../../../../lib/common/disk"); data = [{"a": "A"}, {"b": "B"}, {"c": "C"}, {"d": "D"}]; }); describe(".ensureDir()", function () { before(function () { disk.__set__({"fs": fsMock, "mkdirp": mkdirpMock}); }); describe("Promise", function () { it("should return a Promise", function () { expect(disk.ensureDir("tmp")).to.be.an.instanceof(Promise); }); }); describe(".resolve()", function () { it("should resolve if given dir is ensured", function (done) { disk.ensureDir("tmp").then(function () { done(); }); mkdirpMockCB(); }); }); describe(".reject()", function () { it("should reject if an error has occurred", function (done) { var ensureDirErr = new Error("Could not ensure dir"); disk.ensureDir("tmp").catch(function (err) { expect(ensureDirErr).to.equal(err); done(); }); mkdirpMockCB(ensureDirErr); }); }); }); describe(".unzip()", function () { //@TODO }); describe(".read", function () { describe(".file", function () { //@TODO }); describe(".csv", function () { //@TODO }); }); describe(".write", function () { describe(".json()", function () { it("should return a Promise", function () { expect(disk.write.json("file.json", data)).to.be.an.instanceof(Promise); }); describe(".resolve()", function () { it("should resolve if json-file is written", function (done) { disk.write.json("file.json", data).then(function () { done(); }); writeFileCB(); }); }); describe(".reject()", function () { it("should reject if an error has occurred while file writing", function (done) { var jsonFileErr = new Error("Could not write json"); disk.write.json("file.json", data).catch(function (err) { expect(jsonFileErr).to.equal(err); done(); }); writeFileCB(jsonFileErr); }); }); }); describe(".jsonMin()", function () { it("should return a Promise", function () { expect(disk.write.jsonMin("file.json", data)).to.be.an.instanceof(Promise); }); describe(".resolve()", function () { it("should resolve if json-file is written", function (done) { disk.write.jsonMin("file.json", data).then(function () { done(); }); writeFileCB(); }); }); describe(".reject()", function () { it("should reject if an error has occurred while file writing", function (done) { var jsonMinFileErr = new Error("Could not write min-json"); disk.write.jsonMin("file.json", data).catch(function (err) { expect(jsonMinFileErr).to.equal(err); done(); }); writeFileCB(jsonMinFileErr); }); }); }); }); });