node-hid-stream
Version:
Stream data from HID device in Node.js
71 lines (61 loc) • 2.07 kB
JavaScript
;
const proxyquire = require('proxyquire');
const FakeStream = require('./helpers/fake-stream');
class Hidstream extends FakeStream {}
const Keyboard = proxyquire('../lib/keyboard', {
'./hidstream': Hidstream,
'./keyboard-parser': (data) => data,
});
describe('Keyboard', () => {
describe('.close', () => {
it('closes the device', () => {
const keyboard = new Keyboard();
spyOn(keyboard.device, 'close');
keyboard.close();
expect(keyboard.device.close).toHaveBeenCalled();
});
it('emits close event', () => {
const onClose = jasmine.createSpy('On Close');
const keyboard = new Keyboard();
keyboard.on('close', onClose);
keyboard.close();
expect(onClose).toHaveBeenCalled();
});
});
describe('.on("error")', () => {
it('forwards from device.on("error")', () => {
const onError = jasmine.createSpy('On Error');
const keyboard = new Keyboard();
keyboard.on('error', onError);
keyboard.device.emit('error', 'data');
expect(onError).toHaveBeenCalledWith('data');
});
});
describe('.on("end")', () => {
it('forwards from device.on("end")', () => {
const onEnd = jasmine.createSpy('On End');
const keyboard = new Keyboard();
keyboard.on('error', onEnd);
keyboard.device.emit('error', 'data');
expect(onEnd).toHaveBeenCalledWith('data');
});
});
describe('.on("data")', () => {
it('forwards from device.on("data")', () => {
const onData = jasmine.createSpy('On Data');
const keyboard = new Keyboard();
keyboard.on('data', onData);
keyboard.device.emit('data', 'data');
expect(onData).toHaveBeenCalledWith('data');
});
});
describe('.on("close")', () => {
it('forwards from device.on("close")', () => {
const onClose = jasmine.createSpy('On Close');
const keyboard = new Keyboard();
keyboard.on('close', onClose);
keyboard.device.emit('close', 'data');
expect(onClose).toHaveBeenCalledWith('data');
});
});
});