From 440b207b9cd76218dbce61fd2283153e4bbd416c Mon Sep 17 00:00:00 2001 From: Bronson Bata Date: Sun, 13 Oct 2024 15:18:35 -0500 Subject: [PATCH] Added testParamAsync and testParamTask (#512) --- Expecto.Tests/Tests.fs | 20 ++++++++++++++++++++ Expecto/Expecto.fs | 11 +++++++++++ 2 files changed, 31 insertions(+) diff --git a/Expecto.Tests/Tests.fs b/Expecto.Tests/Tests.fs index 7fc608ac..48ea2336 100644 --- a/Expecto.Tests/Tests.fs +++ b/Expecto.Tests/Tests.fs @@ -289,6 +289,26 @@ let expecto = Expect.isLessThan value 1444 "Should be less than" ] |> List.ofSeq) + testList "testParamAsync" ( + testParamAsync 1 [ + "First sample", + fun value -> async { + Expect.equal value 1 "Should be expected value" + } + ] + |> List.ofSeq + ) + + testList "testParamTask" ( + testParamTask 1 [ + "First sample", + fun value () -> task { + Expect.equal value 1 "Should be expected value" + } + ] + |> List.ofSeq + ) + testList "shuffle" [ testAsync "array sort same" { let a = [|1;2;3;4;5;6;7|] diff --git a/Expecto/Expecto.fs b/Expecto/Expecto.fs index 524748f4..e8d6be2d 100644 --- a/Expecto/Expecto.fs +++ b/Expecto/Expecto.fs @@ -146,11 +146,22 @@ module Tests = ptestCase (stringify case) <| fun () -> test case |> ignore ptestList name (cases |> Seq.map caseToTest |> List.ofSeq) + /// Applies a value to a list of partial tests let inline testParam param = Seq.map (fun (name, partialTest) -> testCase name (partialTest param)) + /// Applies a value to a list of partial async tests + let inline testParamAsync param = + Seq.map (fun (name, partialTest) -> + testCaseAsync name (partialTest param)) + + /// Applies a value to a list of partial task tests + let inline testParamTask param = + Seq.map (fun (name, partialTest) -> + testCaseTask name (partialTest param)) + /// Test case computation expression builder type TestCaseBuilder(name, focusState) = member __.TryFinally(f, compensation) =