added tests
This commit is contained in:
parent
57e5b1ad7b
commit
1df19b1df9
|
@ -8,3 +8,4 @@ node_modules
|
|||
package-lock.json
|
||||
*.log
|
||||
.gitignore
|
||||
test
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"name": "TEST",
|
||||
"author": "Luis Blanco <raubtierxxx@gmail.com>",
|
||||
"description": "TEST",
|
||||
"version": "0.0.1",
|
||||
"main": "mocha",
|
||||
"scripts": {
|
||||
"test": "mocha",
|
||||
"start": "mocha"
|
||||
},
|
||||
"keywords": [
|
||||
"node",
|
||||
"addon",
|
||||
"header",
|
||||
"include",
|
||||
"platform",
|
||||
"build",
|
||||
"paths"
|
||||
],
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Luis Blanco",
|
||||
"email": "raubtierxxx@gmail.com",
|
||||
"skype": "rauber666"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/raub/node-addon-tools.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"addon-tools-raub": "https://github.com/raub/node-addon-tools.git",
|
||||
"chai": "^4.1.2",
|
||||
"mocha": "^5.0.0",
|
||||
"sinon": "^4.2.2"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
'use strict';
|
||||
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
const { expect } = require('chai');
|
||||
const { stub, spy } = require('sinon');
|
||||
|
||||
const tools = require('addon-tools-raub');
|
||||
|
||||
|
||||
const toolsDir = path.dirname(require.resolve('addon-tools-raub')).replace(/\\/g, '/')
|
||||
const allMethods = ['paths', 'root', 'include', 'mkdir', 'rm', 'cp'];
|
||||
const ownMethods = allMethods.slice(1);
|
||||
const cmdMethods = allMethods.slice(3);
|
||||
const pathsMethods = ['bin', 'rem', 'include'];
|
||||
|
||||
|
||||
describe('Tools', () => {
|
||||
|
||||
let log;
|
||||
let stubbed;
|
||||
beforeEach(() => {
|
||||
log = spy();
|
||||
stubbed = stub(console, 'log').callsFake(log)
|
||||
});
|
||||
afterEach(() => stubbed.restore());
|
||||
|
||||
|
||||
describe('Own Methods', () => {
|
||||
|
||||
allMethods.forEach(
|
||||
m => it(`#${m}() is available`, () => {
|
||||
expect(tools).to.respondTo(m);
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
ownMethods.forEach(
|
||||
m => it(`#${m}() writes stdout`, () => {
|
||||
tools[m]();
|
||||
expect(log.getCall(0), 'called').to.exist;
|
||||
expect(log.getCall(0).args[0], 'has args').to.exist;
|
||||
expect(log.getCall(0).args[0], 'writes string').to.be.a('string');
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
it(`#root() is correct`, () => {
|
||||
tools.root();
|
||||
expect(log.getCall(0).args[0]).to.equal(toolsDir);
|
||||
});
|
||||
|
||||
|
||||
it(`#include() is correct`, async () => {
|
||||
|
||||
tools.include();
|
||||
const dirs = log.getCall(0).args[0].split(' ');
|
||||
|
||||
const stats = await Promise.all(dirs.map(dir => new Promise(
|
||||
(res, rej) => fs.stat(
|
||||
dir,
|
||||
(err, stat) => err ? res(false) : res(stat.isDirectory())
|
||||
)
|
||||
)));
|
||||
|
||||
dirs.forEach((dir, i) => expect(stats[i], dir).to.be.true);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
describe('Paths', () => {
|
||||
|
||||
it(`#paths() returns an object`, () => {
|
||||
expect(tools.paths(__dirname)).to.be.an('object');
|
||||
});
|
||||
|
||||
|
||||
pathsMethods.forEach(
|
||||
m => it(`#${m}() is available`, () => {
|
||||
const paths = tools.paths(__dirname);
|
||||
expect(paths).to.respondTo(m);
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
pathsMethods.forEach(
|
||||
m => it(`#${m}() writes stdout`, () => {
|
||||
const paths = tools.paths(__dirname);
|
||||
paths[m]();
|
||||
expect(log.getCall(0), 'called').to.exist;
|
||||
expect(log.getCall(0).args[0], 'has args').to.exist;
|
||||
expect(log.getCall(0).args[0], 'writes string').to.be.a('string');
|
||||
})
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
});
|
Loading…
Reference in New Issue