const assert = require('assert'); const { StateCache } = require('../state-cache'); describe('StateCache', () => { it('merges realtime and blood pressure metrics into one complete payload', () => { const cache = new StateCache(); const device = { deviceId: 'JH-001', ip: '127.0.0.1' }; const realtimePayload = cache.update(device, { F: 36.8, A: 2000, }, { messageType: 'realtime' }); assert.deepStrictEqual(realtimePayload, { n: 'JH-001', F: 36.8, A: 2000, }); const bloodPressurePayload = cache.update(device, { N: 120, O: 80, P: 76, M: '2026-05-12 10:20:30', }, { messageType: 'blood-pressure' }); assert.deepStrictEqual(bloodPressurePayload, { n: 'JH-001', F: 36.8, A: 2000, N: 120, O: 80, P: 76, M: '2026-05-12 10:20:30', }); }); it('keeps devices isolated', () => { const cache = new StateCache(); cache.update({ deviceId: 'JH-001' }, { F: 36.8 }, { messageType: 'realtime' }); cache.update({ deviceId: 'JH-002' }, { F: 37.1 }, { messageType: 'realtime' }); assert.deepStrictEqual(cache.getPayload('JH-001'), { n: 'JH-001', F: 36.8, }); assert.deepStrictEqual(cache.getPayload('JH-002'), { n: 'JH-002', F: 37.1, }); }); });