| | |
| | | const assert = require('assert'); |
| | | const { buildBloodPressureFrame, parseBloodPressureTimeText } = require('../tcp-simulator'); |
| | | const fs = require('fs'); |
| | | const os = require('os'); |
| | | const path = require('path'); |
| | | const { |
| | | buildBloodPressureFrame, |
| | | parseBloodPressureTimeText, |
| | | prepareSimulation, |
| | | } = require('../tcp-simulator'); |
| | | |
| | | describe('tcp-simulator', () => { |
| | | it('parses blood pressure time text', () => { |
| | |
| | | 'AA 55 0E BA 00 78 50 59 1A 04 0F 09 1E 3C', |
| | | ); |
| | | }); |
| | | |
| | | it('can append a blood pressure frame to file mode simulation', () => { |
| | | const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tcp-simulator-')); |
| | | const framesFile = path.join(tempDir, 'frames.txt'); |
| | | fs.writeFileSync(framesFile, 'EE 55 01 00 00 01 72 74\n', 'utf8'); |
| | | |
| | | try { |
| | | const prepared = prepareSimulation({ |
| | | mode: 'file', |
| | | framesFile, |
| | | scenarioConfig: null, |
| | | includeBloodPressure: true, |
| | | bpSystolic: 120, |
| | | bpDiastolic: 80, |
| | | bpPulse: 89, |
| | | bpTime: '2026-04-15 09:30', |
| | | bpIncludeTime: true, |
| | | }); |
| | | |
| | | assert.strictEqual(prepared.frames.length, 2); |
| | | assert.strictEqual(prepared.frames[1].raw, 'AA 55 0E BA 00 78 50 59 1A 04 0F 09 1E 3C'); |
| | | assert.deepStrictEqual(prepared.analysis.snapshot, { |
| | | F: 37, |
| | | N: 120, |
| | | O: 80, |
| | | P: 89, |
| | | }); |
| | | } finally { |
| | | fs.rmSync(tempDir, { recursive: true, force: true }); |
| | | } |
| | | }); |
| | | }); |