diff options
Diffstat (limited to 'tests/FundLab.Api.Tests/StockQuoteProbeTests.fs')
| -rw-r--r-- | tests/FundLab.Api.Tests/StockQuoteProbeTests.fs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/FundLab.Api.Tests/StockQuoteProbeTests.fs b/tests/FundLab.Api.Tests/StockQuoteProbeTests.fs index 2cad557..b869f17 100644 --- a/tests/FundLab.Api.Tests/StockQuoteProbeTests.fs +++ b/tests/FundLab.Api.Tests/StockQuoteProbeTests.fs @@ -58,6 +58,21 @@ type StockQuoteProbeTests(fixture: PostgresFixture) = | Error failure -> failwithf "expected a stock quote, got %A" failure [<Fact>] + member _.``probe parses market, adjust and suspension flags``() = + let json = + "{\"schema_version\":\"fund-lab.akshare.v1\",\"operation\":\"stock-quote\",\"source\":\"akshare\",\"source_revision\":\"akshare-test/eastmoney\",\"collected_at\":\"2026-09-21T08:00:00Z\",\"instrument\":{\"code\":\"000001\"},\"quote\":{\"name\":\"平安银行\",\"price\":\"11.2300\",\"currency\":\"CNY\",\"market\":\"sz\",\"adjust\":\"none\",\"suspended\":true}}" + + let probe = + AkshareStockQuoteProbe(StockQuoteProbeSupport.collectorReturning (fun () -> Ok json)) :> IStockQuoteProbe + + match probe.GetQuote("000001", CancellationToken.None) with + | Ok quote -> + Assert.Equal<string option>(Some "sz", quote.Market) + Assert.Equal<string option>(Some "none", quote.Adjust) + Assert.Equal<bool option>(Some true, quote.Suspended) + | Error failure -> failwithf "expected a stock quote, got %A" failure + + [<Fact>] member _.``probe keeps a missing name missing instead of fabricating data``() = let json = StockQuoteProbeSupport.payload "600519" None (Some "1252.57") @@ -139,6 +154,9 @@ type StockQuoteProbeTests(fixture: PostgresFixture) = Name = Some "贵州茅台" Price = Some 1252.57m Currency = "CNY" + Market = Some "sh" + Adjust = Some "none" + Suspended = Some false }) let status, body = |
