diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-22 03:48:12 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-22 03:48:12 +0800 |
| commit | b5a80f69cb2e2793e5134e23a0eb3e72cdbdbe0b (patch) | |
| tree | eeb22106ceb0d1eb0fe07b7bff18450af11e0d50 /tests/FundLab.Web.Tests/BoundaryTests.fs | |
| parent | 7dd0e3f42105569b6e6ec02aeeec9b5a8bbd9dd3 (diff) | |
| download | fund-lab-b5a80f69cb2e2793e5134e23a0eb3e72cdbdbe0b.tar.gz | |
Add multi-source bond quote probe fields and daily fallback (3d-20)
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>] |
