_ = require('lodash') expect = require('chai').expect device = require('./device') DEVICES = require('./device-data.json') describe 'Device:', -> describe '#getDisplayName()', -> it 'should return Raspberry Pi for that device', -> possibleNames = [ 'raspberry-pi' 'raspberrypi' 'rpi' ] for name in possibleNames expect(device.getDisplayName(name)).to.equal('Raspberry Pi') it 'should return unknown if no matches', -> unknownNames = [ 'hello' 'foobar' {} 123 ] for name in unknownNames expect(device.getDisplayName(name)).to.equal('Unknown') it 'should return the name itself if passing the display name', -> for supportedDevice in device.getSupportedDevices() displayName = device.getDisplayName(supportedDevice) expect(displayName).to.equal(supportedDevice) describe '#getDeviceSlug()', -> it 'should return valid slugs', -> for key, value in DEVICES expect(device.getDeviceSlug(key)).to.equal(value.slug) it 'should return unknown if not valid device', -> result = device.getDeviceSlug('Foo Bar') expect(result).to.equal('unknown') it 'should return a valid slug if using an alternative name', -> for key, value in DEVICES name = _.first(value.names) expect(device.getDeviceSlug(name)).to.equal(value.slug) describe '#getSupportedDevices()', -> it 'should return an array', -> expect(device.getSupportedDevices()).to.be.an.instanceof(Array) it 'should have every supported device', -> supportedDevices = device.getSupportedDevices() for key, value in DEVICES expect(supportedDevices.indexOf(key)).to.not.equal(-1)