diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-21 23:03:16 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-21 23:03:16 +0800 |
| commit | 6ce29c5e87d32e49dfe92b398fe45ef0b9de6cdf (patch) | |
| tree | 859a902d27e069e0e087579b6ea38dec76dc4bf3 /src/LivingVillage.Desktop.Tests/M6bTests.fs | |
| parent | 11a2a1d8786a660d0f370a46f5ee0c69c108f823 (diff) | |
| parent | 50875bb65cc4cdba92f6745d2430a92d85474872 (diff) | |
| download | living-village-6ce29c5e87d32e49dfe92b398fe45ef0b9de6cdf.tar.gz | |
merge: P15 职业玩法收口——开局职业选择/货郎书生模板/CJK补字/全链路回归(独立复验全绿)
Diffstat (limited to 'src/LivingVillage.Desktop.Tests/M6bTests.fs')
| -rw-r--r-- | src/LivingVillage.Desktop.Tests/M6bTests.fs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/LivingVillage.Desktop.Tests/M6bTests.fs b/src/LivingVillage.Desktop.Tests/M6bTests.fs index 6ae0634..5aea9bd 100644 --- a/src/LivingVillage.Desktop.Tests/M6bTests.fs +++ b/src/LivingVillage.Desktop.Tests/M6bTests.fs @@ -80,3 +80,33 @@ type M6bMenuTests () = Assert.AreEqual<string option>(Some "missing save", failed.Error) Assert.AreEqual<MenuPage>(MainMenu, returned.Page) Assert.AreEqual<MenuCommand>(NoCommand, command) + + // ---- P15 开局职业选择页 ---- + + [<TestMethod>] + member _.OccupationSelectOffersFourKindsThenNoneAndDefaultsToNone () = + let page = MenuState.openOccupationSelect (MenuState.create SimulationControl.initial false) + + Assert.AreEqual<MenuPage>(OccupationSelect, page.Page) + Assert.AreEqual<Occupation.Kind option list>( + [ Some Occupation.Farmer; Some Occupation.Fisher; Some Occupation.Peddler; Some Occupation.Scholar; None ], + MenuState.occupationOptions) + Assert.AreEqual<Occupation.Kind option>(None, MenuState.selectedOccupation page) + Assert.AreEqual<string>("暂不选择", MenuState.occupationLabel None) + Assert.AreEqual<string>("农夫", MenuState.occupationLabel (Some Occupation.Farmer)) + Assert.AreEqual<string>("书生", MenuState.occupationLabel (Some Occupation.Scholar)) + + [<TestMethod>] + member _.OccupationSelectConfirmEmitsChosenKindAndBackReturnsToMenu () = + let page = MenuState.openOccupationSelect (MenuState.create SimulationControl.initial false) + let _, defaultCommand = MenuState.update Confirm page + Assert.AreEqual<MenuCommand>(StartNewGameWith None, defaultCommand) + + let picked = MenuState.move Up (MenuState.move Up page) + Assert.AreEqual<Occupation.Kind option>(Some Occupation.Peddler, MenuState.selectedOccupation picked) + let _, command = MenuState.update Confirm picked + Assert.AreEqual<MenuCommand>(StartNewGameWith (Some Occupation.Peddler), command) + + let back, backCommand = MenuState.update Back page + Assert.AreEqual<MenuPage>(MainMenu, back.Page) + Assert.AreEqual<MenuCommand>(NoCommand, backCommand) |
