add tests for usage and listing devices

This commit is contained in:
Thomas Ruoff
2016-03-06 23:34:18 +01:00
parent f6f0de0e04
commit e881214463

56
test/cli.tests.js Normal file
View File

@@ -0,0 +1,56 @@
'use strict';
const sinon = require('sinon');
const assert = require('assert');
const proxyquire = require('proxyquire');
describe('cli', () => {
let sandbox;
let consoleLogSpy;
beforeEach(() => {
sandbox = sinon.sandbox.create();
consoleLogSpy = sandbox.spy(console, 'log');
});
afterEach(function() {
sandbox.restore();
});
it('shows help', function() {
const minimistStub = sandbox.stub();
minimistStub.returns({h: true});
const cli = proxyquire('../cli.js', {
'minimist': minimistStub,
'./usage.js': '[usage]'
});
assert.equal(consoleLogSpy.callCount, 1);
assert.equal(consoleLogSpy.args[0][0], '[usage]');
});
it('lists devices', function() {
const minimistStub = sandbox.stub();
minimistStub.returns({l: true});
const getDevicesStub = sandbox.stub();
getDevicesStub.returns({
then: cb => cb({
LVDS1: {connected: true},
HDMI2: {connected: false}
})
});
const cli = proxyquire('../cli.js', {
'minimist': minimistStub,
'./swm.js': {
getDevices: getDevicesStub
}
});
assert.equal(getDevicesStub.callCount, 1);
assert.equal(consoleLogSpy.callCount, 3);
assert.equal(consoleLogSpy.args[0][0], 'Detected devices:\n');
assert.equal(consoleLogSpy.args[1].join(' '), 'LVDS1: Connected');
assert.equal(consoleLogSpy.args[2].join(' '), 'HDMI2: Disconnected');
});
});