packages feed

hspec-effectful 1.0.0 → 1.0.1

raw patch · 3 files changed

+25/−11 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Effectful.Hspec: parallel :: forall (es :: [Effect]) a. (HasCallStack, Hspec :> es) => Eff es a -> Eff es a
+ Effectful.Hspec: sequential :: forall (es :: [Effect]) a. (HasCallStack, Hspec :> es) => Eff es a -> Eff es a

Files

CHANGELOG.md view
@@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## [1.0.1] - 2026-07-13++### Added++- `parallel` and `sequential` combinators+ ## [1.0.0] - 2026-07-10  ### Added
hspec-effectful.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: hspec-effectful-version: 1.0.0+version: 1.0.1 synopsis: Effectful driver for Hspec category: Test description:
src/Effectful/Hspec.hs view
@@ -86,6 +86,8 @@     , fspecify     , fdescribe     , fcontext+    , parallel+    , sequential        -- * Setup / Teardown     , before_@@ -172,15 +174,18 @@     Hspec{unlift} <- getStaticRep     unsafeEff_ . unlift . inject $ action --- | Lifted 'Hspec.describe'-describe :: (HasCallStack, Hspec :> es) => String -> Eff es a -> Eff es a-describe label action =+mapSpec :: (HasCallStack, Hspec :> es) => (Hspec.Spec -> Hspec.Spec) -> Eff es a -> Eff es a+mapSpec f action =     stateStaticRepM \before -> do         putStaticRep before{spec = pure ()}         result <- action         after <- getStaticRep-        pure (result, before{spec = spec before >> Hspec.describe label (spec after)})+        pure (result, before{spec = spec before >> f (spec after)}) +-- | Lifted 'Hspec.describe'+describe :: (HasCallStack, Hspec :> es) => String -> Eff es a -> Eff es a+describe = mapSpec . Hspec.describe+ -- | Lifted 'Hspec.it' it :: (HasCallStack, Hspec :> es) => String -> Eff es () -> Eff es () it label action = do@@ -226,12 +231,7 @@  -- | Lifted 'Hspec.focus' focus :: (HasCallStack, Hspec :> es) => Eff es a -> Eff es a-focus action =-    stateStaticRepM \before -> do-        putStaticRep before{spec = pure ()}-        result <- action-        after <- getStaticRep-        pure (result, before{spec = spec before >> Hspec.focus (spec after)})+focus = mapSpec Hspec.focus  -- | Lifted 'Hspec.fit' fit :: (HasCallStack, Hspec :> es) => String -> Eff es () -> Eff es ()@@ -248,6 +248,14 @@ -- | Lifted 'Hspec.fcontext' fcontext :: (HasCallStack, Hspec :> es) => String -> Eff es a -> Eff es a fcontext = fdescribe++-- | Lifted 'Hspec.parallel'+parallel :: (HasCallStack, Hspec :> es) => Eff es a -> Eff es a+parallel = mapSpec Hspec.parallel++-- | Lifted 'Hspec.sequential'+sequential :: (HasCallStack, Hspec :> es) => Eff es a -> Eff es a+sequential = mapSpec Hspec.sequential  -- | Lifted 'Hspec.before_' before_ :: (HasCallStack, Hspec :> es) => Eff es () -> Eff es a -> Eff es a