diff options
Diffstat (limited to 'tests/FundLab.Web.Tests')
| -rw-r--r-- | tests/FundLab.Web.Tests/BoundaryTests.fs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/FundLab.Web.Tests/BoundaryTests.fs b/tests/FundLab.Web.Tests/BoundaryTests.fs index 3001273..4714632 100644 --- a/tests/FundLab.Web.Tests/BoundaryTests.fs +++ b/tests/FundLab.Web.Tests/BoundaryTests.fs @@ -522,6 +522,39 @@ module ConfirmationBoundaryTests = Assert.Contains("无效代码", updated.stockQuoteMessage |> Option.defaultValue "") [<Fact>] + let ``stock daily completion stores ascending rows`` () = + let model = init () + + let raw : RawStockDaily = + { + code = "600519" + observations = + [| + { date = "2026-09-17"; close = "1266.98"; volume = null; amount = null } + { date = "2026-09-18"; close = "1257.12"; volume = null; amount = null } + { date = "2026-09-21"; close = "1252.57"; volume = null; amount = null } + |] + } + + let updated, _ = update (StockDailyCompleted(model.stockDailySeq, raw)) model + + Assert.Equal(3, updated.stockDaily.Length) + Assert.Equal("2026-09-17", updated.stockDaily[0].date) + Assert.Equal("1252.57", updated.stockDaily[2].close) + Assert.Equal(None, updated.stockDailyMessage) + + [<Fact>] + let ``stock daily failure shows an unavailable message without rows`` () = + let model = { init () with stockDailyInFlight = true } + + let updated, _ = + update (StockDailyFailed(model.stockDailySeq, "AKShare collector failed: no valid daily history for 999999")) model + + Assert.Empty updated.stockDaily + Assert.Contains("股票日线不可用", updated.stockDailyMessage |> Option.defaultValue "") + Assert.False(updated.stockDailyInFlight) + + [<Fact>] let ``order decode keeps decimal strings and decodes option fields`` () = let confirmed = Api.decodeOrder (sampleConfirmedRaw ()) let pending = Api.decodeOrder (samplePendingRaw ()) |
