// make tests run in both Node & Express if (!global.cy) { const chai = require('chai') const sinon = require('sinon') const sinonChai = require('sinon-chai') chai.use(sinonChai) global.expect = chai.expect let sandbox beforeEach(() => { sandbox = sinon.createSandbox() global.cy = { stub: function () { return sandbox.stub.apply(sandbox, arguments) }, log () { console.log.apply(console, arguments) } } }) afterEach(() => { sandbox.restore() }) } const getUserAgent = require('..') describe('smoke', () => { it('works', () => { expect(getUserAgent()).to.be.a('string') expect(getUserAgent().length).to.be.above(10) }) if (!process.browser) { // test on node only const proxyquire = require('proxyquire').noCallThru() it('works around wmic error on Windows (#5)', () => { const getUserAgent = proxyquire('..', { 'os-name': () => { throw new Error('Command failed: wmic os get Caption') } }) expect(getUserAgent()).to.equal('Windows ') }) it('does not swallow unexpected errors', () => { const getUserAgent = proxyquire('..', { 'os-name': () => { throw new Error('oops') } }) expect(getUserAgent).to.throw('oops') }) } })