import { assert } from 'chai'; import 'mocha'; import { ACMeterPacket } from './packet-meter-ac'; import { DCMeterPacket } from './packet-meter-dc'; import { USBMeterPacket } from './packet-meter-usb'; import { ReplyPacket } from './packet-reply'; import { readPacket } from './utils'; describe('Parser', () => { it('readPacket: Wrong block', () => { const packet = readPacket(Buffer.alloc(10)); assert.isUndefined(packet); }); const packets: Record<string, NewableFunction> = { FF55010100090400000E0000040000000000006401F40085002F00000A093C0000000039: ACMeterPacket, FF55010200011A0000000004D40000002000006400000000002A00590E343C000000003F: DCMeterPacket, FF5501030001F3000000000638000003110007000A000000122E333C000000000000004E: USBMeterPacket, FF55020000000046: ReplyPacket, }; for (const [packet, Type] of Object.entries(packets)) { it(`readPacket: ${Type.name}`, () => { const parsed = readPacket(Buffer.from(packet, 'hex')); assert.instanceOf(parsed, Type); }); } });