58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// 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 <version undetectable>')
 | 
						|
    })
 | 
						|
 | 
						|
    it('does not swallow unexpected errors', () => {
 | 
						|
      const getUserAgent = proxyquire('..', {
 | 
						|
        'os-name': () => {
 | 
						|
          throw new Error('oops')
 | 
						|
        }
 | 
						|
      })
 | 
						|
 | 
						|
      expect(getUserAgent).to.throw('oops')
 | 
						|
    })
 | 
						|
  }
 | 
						|
})
 |