module Signet.Unstable.Extra.Tasty where import qualified Control.Monad.Trans.Writer as Writer import qualified Test.Tasty as Tasty import qualified Test.Tasty.HUnit as Tasty type Spec = Writer.Writer [Tasty.TestTree] () describe :: Tasty.TestName -> Spec -> Spec describe :: TestName -> Spec -> Spec describe TestName testName = [TestTree] -> Spec forall (m :: * -> *) w. Monad m => w -> WriterT w m () Writer.tell ([TestTree] -> Spec) -> (Spec -> [TestTree]) -> Spec -> Spec forall b c a. (b -> c) -> (a -> b) -> a -> c . TestTree -> [TestTree] forall a. a -> [a] forall (f :: * -> *) a. Applicative f => a -> f a pure (TestTree -> [TestTree]) -> (Spec -> TestTree) -> Spec -> [TestTree] forall b c a. (b -> c) -> (a -> b) -> a -> c . TestName -> [TestTree] -> TestTree Tasty.testGroup TestName testName ([TestTree] -> TestTree) -> (Spec -> [TestTree]) -> Spec -> TestTree forall b c a. (b -> c) -> (a -> b) -> a -> c . Spec -> [TestTree] forall w a. Writer w a -> w Writer.execWriter it :: Tasty.TestName -> Tasty.Assertion -> Spec it :: TestName -> Assertion -> Spec it TestName testName = [TestTree] -> Spec forall (m :: * -> *) w. Monad m => w -> WriterT w m () Writer.tell ([TestTree] -> Spec) -> (Assertion -> [TestTree]) -> Assertion -> Spec forall b c a. (b -> c) -> (a -> b) -> a -> c . TestTree -> [TestTree] forall a. a -> [a] forall (f :: * -> *) a. Applicative f => a -> f a pure (TestTree -> [TestTree]) -> (Assertion -> TestTree) -> Assertion -> [TestTree] forall b c a. (b -> c) -> (a -> b) -> a -> c . TestName -> Assertion -> TestTree Tasty.testCase TestName testName