import { parseHeartRateMeasurement } from '../src/ble/heartRateParser'; describe('parseHeartRateMeasurement', () => { it('parses 8-bit BPM payloads', () => { expect(parseHeartRateMeasurement([0x00, 154])).toMatchObject({ bpm: 154, contactSupported: false, contactDetected: null, energyExpended: null, rrIntervalsMs: [], }); }); it('parses 16-bit BPM payloads', () => { expect(parseHeartRateMeasurement([0x01, 0x2c, 0x01]).bpm).toBe(300); }); it('parses contact, energy and RR interval data', () => { const parsed = parseHeartRateMeasurement([ 0x1e, 160, 0x10, 0x00, 0x00, 0x04, ]); expect(parsed.bpm).toBe(160); expect(parsed.contactSupported).toBe(true); expect(parsed.contactDetected).toBe(true); expect(parsed.energyExpended).toBe(16); expect(parsed.rrIntervalsMs).toEqual([1000]); }); });