packages feed

mockcat-1.2.0.0: test/Test/MockCat/MockTSpec.hs

{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-type-defaults #-}
module Test.MockCat.MockTSpec (spec) where

import Control.Monad.IO.Class (liftIO)
import GHC.IO (evaluate)
import Test.Hspec
import Test.MockCat
import Prelude hiding (any)

spec :: Spec
spec = describe "MockT + expects integration" do
  it "allows expects inside runMockT" do
    runMockT @IO do
      f <-
        mock (any @String ~> True)
          `expects` do
            called once `with` "foo"
      _ <- liftIO $ evaluate (f "foo")
      pure ()