summaryrefslogtreecommitdiff
path: root/tests/FundLab.Web.Tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/FundLab.Web.Tests')
-rw-r--r--tests/FundLab.Web.Tests/BoundaryTests.fs35
1 files changed, 32 insertions, 3 deletions
diff --git a/tests/FundLab.Web.Tests/BoundaryTests.fs b/tests/FundLab.Web.Tests/BoundaryTests.fs
index 4714632..2892633 100644
--- a/tests/FundLab.Web.Tests/BoundaryTests.fs
+++ b/tests/FundLab.Web.Tests/BoundaryTests.fs
@@ -463,7 +463,15 @@ module ConfirmationBoundaryTests =
let model = init ()
let raw : RawBondQuote =
- { code = "110075"; name = box "南航转债"; price = box "106.368"; maturityDate = null }
+ {
+ code = "110075"
+ name = box "南航转债"
+ price = box "106.368"
+ cleanPrice = null
+ accruedInterest = null
+ date = null
+ maturityDate = null
+ }
let updated, _ = update (BondQuoteCompleted(model.bondQuoteSeq, raw)) model
@@ -474,17 +482,38 @@ module ConfirmationBoundaryTests =
Assert.False(updated.bondQuoteInFlight)
[<Fact>]
+ let ``bond quote completion keeps clean price, accrued interest and quote date`` () =
+ let model = init ()
+
+ let raw : RawBondQuote =
+ {
+ code = "019547"
+ name = null
+ price = box "119.858"
+ cleanPrice = box "119.858"
+ accruedInterest = box "0.5000"
+ date = box "2026-09-21"
+ maturityDate = null
+ }
+
+ let updated, _ = update (BondQuoteCompleted(model.bondQuoteSeq, raw)) model
+
+ Assert.Equal(Some "119.858", updated.bondQuote |> Option.bind (fun quote -> quote.cleanPrice))
+ Assert.Equal(Some "0.5000", updated.bondQuote |> Option.bind (fun quote -> quote.accruedInterest))
+ Assert.Equal(Some "2026-09-21", updated.bondQuote |> Option.bind (fun quote -> quote.quoteDate))
+
+ [<Fact>]
let ``bond quote failure shows an unavailable message without a quote`` () =
let model = { init () with bondQuoteInFlight = true }
let updated, _ =
- update (BondQuoteFailed(model.bondQuoteSeq, "AKShare collector failed: no valid quote for 019547")) model
+ update (BondQuoteFailed(model.bondQuoteSeq, "AKShare collector failed: no valid bond quote for 019547")) model
Assert.Equal(None, updated.bondQuote)
let message = updated.bondQuoteMessage |> Option.defaultValue ""
Assert.Contains("不可用", message)
- Assert.Contains("no valid quote for 019547", message)
+ Assert.Contains("no valid bond quote for 019547", message)
Assert.False(updated.bondQuoteInFlight)
[<Fact>]