import { BootloaderVersion, CommandResponse, Commands, KBoot, Peripheral, Properties, ResponseCodes, ResponseTags } from '../src'; import { TestPeripheral } from './test-peripheral'; describe('kboot', () => { let kboot: KBoot; let testPeripheral: Peripheral; beforeEach(() => { testPeripheral = new TestPeripheral(); kboot = new KBoot(testPeripheral); }); describe('getBootloaderVersion', () => { it('should works', async () => { const sendCommandResponse: CommandResponse = { code: ResponseCodes.Success, tag: ResponseTags.Property, // tslint:disable-next-line:max-line-length raw: Buffer.from([0x03, 0x00, 0x0c, 0x00, 0xa7, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) }; spyOn(testPeripheral, 'sendCommand').and.returnValue(Promise.resolve(sendCommandResponse)); const version = await kboot.getBootloaderVersion(); const expectedVersion: BootloaderVersion = { protocolName: 'K', major: 2, minor: 0, bugfix: 0 }; expect(version).toEqual(expectedVersion); expect(testPeripheral.sendCommand).toHaveBeenCalledWith({ command: Commands.GetProperty, params: [1, 0, 0, 0, 0, 0, 0, 0] }); }); }); });