summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Kernel.Tests/DailyTaskTests.fs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-28 22:38:52 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-28 22:38:52 +0800
commitaa3baa953ea5c4f99f5f23cb3eef9400338b61ec (patch)
tree641759916bcf736ea91af48f798a0f7a3a406c99 /src/LivingVillage.Kernel.Tests/DailyTaskTests.fs
parent3aa7221453afec24757b0c7e4d352f69af8b395b (diff)
downloadliving-village-aa3baa953ea5c4f99f5f23cb3eef9400338b61ec.tar.gz
p51: 职业系统实现首切片——开局钱/体力/背包侧车 + 当日任务/跨日刷新 + StartNewGameWith 读回(design §2.4-1)
Diffstat (limited to 'src/LivingVillage.Kernel.Tests/DailyTaskTests.fs')
-rw-r--r--src/LivingVillage.Kernel.Tests/DailyTaskTests.fs8
1 files changed, 6 insertions, 2 deletions
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<string>("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<string>("3", Array.last tokens)
match WorldSave.loadFromFileWith path with
| Ok (restored, Some restoredState) ->
Assert.AreEqual<Occupation.State>(state, restoredState)
@@ -253,7 +256,7 @@ type DailyTaskTests () =
| Error message -> Assert.Fail($"v3 task round trip failed: {message}"))
[<TestMethod>]
- 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<Occupation.DailyTask option>(None, restoredState.Today)