module Test.Chell.HUnit
( hunit
) where
import Data.Text (Text, pack)
import qualified Test.Chell as Chell
import Test.HUnit.Lang (Assertion, performTestCase)
hunit :: Text -> Assertion -> Chell.Suite
hunit name io = Chell.test (Chell.Test name chell_io) where
chell_io _ = do
result <- performTestCase io
return $ case result of
Nothing -> Chell.TestPassed []
Just err -> parseError err
parseError (True, msg) = Chell.TestFailed [] [Chell.Failure Nothing (pack msg)]
parseError (False, msg) = Chell.TestAborted [] (pack msg)