From aa3baa953ea5c4f99f5f23cb3eef9400338b61ec Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 28 Sep 2026 22:38:52 +0800 Subject: p51: 职业系统实现首切片——开局钱/体力/背包侧车 + 当日任务/跨日刷新 + StartNewGameWith 读回(design §2.4-1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/LivingVillage.Kernel.Tests/DailyTaskTests.fs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/LivingVillage.Kernel.Tests') diff --git a/src/LivingVillage.Kernel.Tests/DailyTaskTests.fs b/src/LivingVillage.Kernel.Tests/DailyTaskTests.fs index 0800ff8..95a0dd1 100644 --- a/src/LivingVillage.Kernel.Tests/DailyTaskTests.fs +++ b/src/LivingVillage.Kernel.Tests/DailyTaskTests.fs @@ -239,11 +239,14 @@ type DailyTaskTests () = Assert.IsTrue(text.StartsWith("LV_WORLD_SAVE_V3"), "v3 header expected") let tokens = text.Split('|') Assert.IsTrue(tokens |> Array.exists (fun token -> token = "task-today"), "task tail marker expected") - Assert.AreEqual("tile-none", Array.last tokens) + Assert.IsTrue(tokens |> Array.exists (fun token -> token = "backpack"), "backpack tail marker expected") let markerIndex = tokens |> Array.findIndex (fun token -> token = "task-today") + let backpackIndex = tokens |> Array.findIndex (fun token -> token = "backpack") let lastAnnalKindIndex = tokens |> Array.findIndexBack (fun token -> token = "trade") Assert.IsTrue(markerIndex > lastAnnalKindIndex, "task tail must follow the annals segment") + Assert.IsTrue(backpackIndex > markerIndex, "backpack tail must follow the task tail") + Assert.AreEqual("3", Array.last tokens) match WorldSave.loadFromFileWith path with | Ok (restored, Some restoredState) -> Assert.AreEqual(state, restoredState) @@ -253,7 +256,7 @@ type DailyTaskTests () = | Error message -> Assert.Fail($"v3 task round trip failed: {message}")) [] - member _.SaveV3WithoutTaskKeepsOldTailFreeLayout () = + member _.SaveV3WithoutTaskCarriesOnlyBackpackTail () = let world = DailyTaskHarness.worldWithAnnal () let state = Occupation.stateOf Occupation.Peddler DailyTaskHarness.withTempSave (fun path -> @@ -261,6 +264,7 @@ type DailyTaskTests () = let text = File.ReadAllText path Assert.IsTrue(text.StartsWith("LV_WORLD_SAVE_V3"), "v3 header expected") Assert.IsFalse(text.Contains("task-today"), "no-task v3 must not carry a task tail") + Assert.IsTrue(text.Contains("backpack"), "v3 must carry the backpack tail") match WorldSave.loadFromFileWith path with | Ok (restored, Some restoredState) -> Assert.AreEqual(None, restoredState.Today) -- cgit v1.2.3