packages feed

checked-exceptions-0.2.0.0: test/Main.hs

{-# OPTIONS_GHC
    -fno-warn-orphans
#-}

{-# LANGUAGE
    MagicHash
  , TemplateHaskell
  , TypeApplications
  , DataKinds
  , StandaloneDeriving
  , DerivingVia
  , QualifiedDo
#-}

module Main where

import Test.Tasty
import Test.Tasty.HUnit
import CompTest
import Control.Exception (try, SomeException(..))
import Control.Monad.CheckedExcept
import Data.Either (isRight)

main :: IO ()
main = defaultMain tests

tests :: TestTree
tests = testGroup "Tests" [unitTests]

unitTests :: TestTree
unitTests = testGroup "Unit tests"
  [ testCase "testCE" $ do
      testCERes <- try @SomeException $ runCheckedExceptT $ runCheckedExceptStack testCE
      assertBool "testCE does not throw SomeException" (isRight testCERes)
  ]

unwrap :: Either a b -> b
unwrap = either (error "unwrap") id