From e881214463bc7604473e855a45e8c3b218b8cc44 Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Sun, 6 Mar 2016 23:34:18 +0100 Subject: [PATCH] add tests for usage and listing devices --- test/cli.tests.js | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 test/cli.tests.js diff --git a/test/cli.tests.js b/test/cli.tests.js new file mode 100644 index 0000000..6b55674 --- /dev/null +++ b/test/cli.tests.js @@ -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'); + }); +}); +