From 997af825e260e88553ee98a08762e8e041520a9b Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期二, 01 九月 2026 22:28:32 +0800
Subject: [PATCH] 修复模拟器开机未重置夹具生命周期

---
 ruoyi-device/src/test/java/com/ruoyi/device/bts/BtsDevelopmentSimulatorRecordStepCycleTest.java |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/ruoyi-device/src/test/java/com/ruoyi/device/bts/BtsDevelopmentSimulatorRecordStepCycleTest.java b/ruoyi-device/src/test/java/com/ruoyi/device/bts/BtsDevelopmentSimulatorRecordStepCycleTest.java
index be948f4..ea03041 100644
--- a/ruoyi-device/src/test/java/com/ruoyi/device/bts/BtsDevelopmentSimulatorRecordStepCycleTest.java
+++ b/ruoyi-device/src/test/java/com/ruoyi/device/bts/BtsDevelopmentSimulatorRecordStepCycleTest.java
@@ -151,6 +151,30 @@
     }
 
     @Test
+    void powerCycleResetsBtsFixtureLifecycleAndClearsHistory() throws Exception
+    {
+        InMemoryBtsSimulatorStateStore store = new InMemoryBtsSimulatorStateStore();
+        try (BtsDevelopmentSimulator simulator = new BtsDevelopmentSimulator(0, store))
+        {
+            simulator.updateChannel(1, 1, true, DeviceWorkStatus.WORKING);
+            simulator.nextBtsCycle(1, 1);
+            assertEquals(2, simulator.btsPlayback(1, 1).playback().cycleNo());
+
+            simulator.advanceBts(Instant.now().plusSeconds(60));
+            int historyCount = simulator.btsRecords(1, 1).size();
+            simulator.setAllDevicesPoweredOn(false);
+            simulator.setAllDevicesPoweredOn(true);
+
+            BtsDevelopmentSimulator.PlaybackSnapshot playback = simulator.btsPlayback(1, 1);
+            assertEquals(1, playback.playback().cycleNo());
+            assertEquals(1, playback.playback().stepNo());
+            assertFalse(playback.playback().naturallyFinished());
+            assertTrue(historyCount > 0);
+            assertEquals(0, playback.records().size());
+        }
+    }
+
+    @Test
     void playbackFollowsExcelFixtureThroughAllCyclesAndRecords() throws Exception
     {
         Instant start = Instant.parse("2026-08-31T00:00:00Z");

--
Gitblit v1.7.1