diff options
Diffstat (limited to 'tests/FundLab.Web.Tests/BoundaryTests.fs')
| -rw-r--r-- | tests/FundLab.Web.Tests/BoundaryTests.fs | 35 |
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>] |
