hw-polysemy-0.2.5.0: Opinionated polysemy library
Safe HaskellSafe-Inferred
LanguageGHC2021

HaskellWorks.Polysemy.Hedgehog

Synopsis

Documentation

data Hedgehog m rv Source #

leftFail :: Member Hedgehog r => Show e => HasCallStack => Either e a -> Sem r a Source #

Fail when the result is Left.

leftFailM :: forall e r a. Member Hedgehog r => Show e => HasCallStack => Sem r (Either e a) -> Sem r a Source #

catchFail :: forall e r a. Member Hedgehog r => HasCallStack => Show e => Sem (Error e ': r) a -> Sem r a Source #

Deprecated: Use trapFail instead

nothingFailM :: forall r a. Member Hedgehog r => HasCallStack => Sem r (Maybe a) -> Sem r a Source #

trapFail :: forall e r a. Member Hedgehog r => HasCallStack => Show e => Sem (Error e ': r) a -> Sem r a Source #

(===) :: Member Hedgehog r => Eq a => Show a => HasCallStack => a -> a -> Sem r () Source #

eval :: forall r a. (Member Hedgehog r, HasCallStack) => a -> Sem r a Source #

evalM :: forall r a. (Member Hedgehog r, HasCallStack) => Sem r a -> Sem r a Source #

evalIO :: forall r a. (Member Hedgehog r, HasCallStack) => IO a -> Sem r a Source #

writeLog :: forall r. Member Hedgehog r => Log -> Sem r () Source #

failWith :: forall r a. (Member Hedgehog r, HasCallStack) => Maybe Diff -> String -> Sem r a Source #

failWithCustom :: forall r a. Member Hedgehog r => CallStack -> Maybe Diff -> String -> Sem r a Source #

evalM_ :: Member Hedgehog r => HasCallStack => Sem r a -> Sem r () Source #

jotShow :: Member Hedgehog r => HasCallStack => Show a => a -> Sem r a Source #

Annotate the given value.

jotShow_ :: Member Hedgehog r => HasCallStack => Show a => a -> Sem r () Source #

Annotate the given value returning unit.

jotWithCallstack :: Member Hedgehog r => CallStack -> String -> Sem r () Source #

Annotate the given string at the context supplied by the callstack.

jot :: Member Hedgehog r => HasCallStack => String -> Sem r String Source #

Annotate with the given string.

jot_ :: Member Hedgehog r => HasCallStack => ToString s => s -> Sem r () Source #

Annotate the given string returning unit.

jotText_ :: Member Hedgehog r => HasCallStack => Text -> Sem r () Source #

Annotate the given text returning unit.

jotM :: ToString s => Member Hedgehog r => HasCallStack => Sem r s -> Sem r s Source #

Annotate the given string in a monadic context.

jotM_ :: Member Hedgehog r => HasCallStack => Sem r String -> Sem r () Source #

Annotate the given string in a monadic context returning unit.

jotIO :: Member Hedgehog r => HasCallStack => IO String -> Sem r String Source #

Annotate the given string in IO.

jotIO_ :: Member Hedgehog r => HasCallStack => IO String -> Sem r () Source #

Annotate the given string in IO returning unit.

jotShowM :: Member Hedgehog r => HasCallStack => Show a => Sem r a -> Sem r a Source #

Annotate the given value in a monadic context.

jotShowM_ :: Member Hedgehog r => HasCallStack => Show a => Sem r a -> Sem r () Source #

Annotate the given value in a monadic context returning unit.

jotShowIO :: Member Hedgehog r => HasCallStack => Show a => IO a -> Sem r a Source #

Annotate the given value in IO.

jotShowIO_ :: Member Hedgehog r => HasCallStack => Show a => IO a -> Sem r () Source #

Annotate the given value in IO returning unit.

jotEach :: Member Hedgehog r => HasCallStack => Show a => Traversable f => f a -> Sem r (f a) Source #

Annotate the each value in the given traversable.

jotEach_ :: Member Hedgehog r => HasCallStack => Show a => Traversable f => f a -> Sem r () Source #

Annotate the each value in the given traversable returning unit.

jotEachM :: Member Hedgehog r => HasCallStack => Show a => Traversable f => Sem r (f a) -> Sem r (f a) Source #

Annotate the each value in the given traversable in a monadic context.

jotEachM_ :: Member Hedgehog r => HasCallStack => Show a => Traversable f => Sem r (f a) -> Sem r () Source #

Annotate the each value in the given traversable in a monadic context returning unit.

jotEachIO :: Member Hedgehog r => HasCallStack => Show a => Traversable f => IO (f a) -> Sem r (f a) Source #

Annotate the each value in the given traversable in IO.

jotEachIO_ :: Member Hedgehog r => HasCallStack => Show a => Traversable f => IO (f a) -> Sem r () Source #

Annotate the each value in the given traversable in IO returning unit.

jotPkgInputFile :: HasCallStack => Member Hedgehog r => Member (Reader PackagePath) r => FilePath -> Sem r FilePath Source #

Return the input file path after annotating it relative to the package directory

jotPkgGoldenFile :: HasCallStack => Member Hedgehog r => Member (Reader PackagePath) r => FilePath -> Sem r FilePath Source #

Return the golden file path after annotating it relative to the package directory

jotTempFile :: HasCallStack => Member Hedgehog r => Member (Reader Workspace) r => FilePath -> Sem r FilePath Source #

Return the test file path after annotating it relative to the project root directory

data Property #

A property test, along with some configurable limits like how many times to run the test.

newtype Workspace Source #

Constructors

Workspace 

Fields

Instances

Instances details
Generic Workspace Source # 
Instance details

Defined in HaskellWorks.Polysemy.Hedgehog.Workspace.Types

Associated Types

type Rep Workspace :: Type -> Type #

Show Workspace Source # 
Instance details

Defined in HaskellWorks.Polysemy.Hedgehog.Workspace.Types

Eq Workspace Source # 
Instance details

Defined in HaskellWorks.Polysemy.Hedgehog.Workspace.Types

type Rep Workspace Source # 
Instance details

Defined in HaskellWorks.Polysemy.Hedgehog.Workspace.Types

type Rep Workspace = D1 ('MetaData "Workspace" "HaskellWorks.Polysemy.Hedgehog.Workspace.Types" "hw-polysemy-0.2.5.0-J9kaaFav8QWG5oNAyOWYmb-hedgehog" 'True) (C1 ('MetaCons "Workspace" 'PrefixI 'True) (S1 ('MetaSel ('Just "filePath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath)))

workspace :: Member Hedgehog r => Member Log r => Member (Embed IO) r => HasCallStack => FilePath -> Sem (Reader Workspace : r) () -> Sem r () Source #

Create a workspace directory which will exist for at least the duration of the supplied block.

The directory will have the supplied prefix but contain a generated random suffix to prevent interference between tests

The directory will be deleted if the block succeeds, but left behind if the block fails.

moduleWorkspace :: Member Hedgehog r => Member Log r => Member (Embed IO) r => String -> Sem (Reader Workspace : r) () -> Sem r () Source #

Create a workspace directory which will exist for at least the duration of the supplied block.

The directory will have the prefix as "$prefixPath/$moduleName" but contain a generated random suffix to prevent interference between tests

The directory will be deleted if the block succeeds, but left behind if the block fails.

The prefix argument should not contain directory delimeters.

findCabalProjectDir :: Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r FilePath Source #

Compute the project base. This will be the first parent directory that contains the `cabal.project` file. This should should point to the root directory of the Github project checkout.