From 747a86bb94006aaca721cfc0c0ce7061643a9ea6 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期四, 20 八月 2026 12:19:35 +0800
Subject: [PATCH] gx

---
 test/tcp-simulator.test.js |   40 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/test/tcp-simulator.test.js b/test/tcp-simulator.test.js
index 97427e4..7e5278e 100644
--- a/test/tcp-simulator.test.js
+++ b/test/tcp-simulator.test.js
@@ -1,5 +1,12 @@
 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', () => {
@@ -23,4 +30,35 @@
       '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 });
+    }
+  });
 });

--
Gitblit v1.8.0