packages feed

hspec-webdriver 0.3.1 → 0.3.2

raw patch · 2 files changed

+12/−30 lines, 2 filesdep ~HUnitdep ~hspecPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: HUnit, hspec

API changes (from Hackage documentation)

Files

Test/Hspec/WebDriver/Internal.hs view
@@ -20,33 +20,16 @@  import qualified Control.Exception as E --- | Force a spec tree to not contain any BuildSpecs-forceSpecTree :: SpecTree -> IO [SpecTree]-forceSpecTree s@(SpecItem _ _) = return [s]-forceSpecTree (SpecGroup msg ss) = do-    ss' <- concat <$> mapM forceSpecTree ss-    return [SpecGroup msg ss']-forceSpecTree (BuildSpecs m) = do-    trees <- m-    concat <$> mapM forceSpecTree trees---- | Force a spec to not contain any BuildSpecs-forceSpec :: Spec -> IO [SpecTree]-forceSpec s = do-    trees <- runSpecM s-    concat <$> mapM forceSpecTree trees- -- | Traverse a spec, but only if forceSpec has already been called traverseTree :: Applicative f => (Item -> f Item) -> SpecTree -> f SpecTree-traverseTree f (SpecItem msg i) = SpecItem msg <$> f i+traverseTree f (SpecItem i) = SpecItem <$> f i traverseTree f (SpecGroup msg ss) = SpecGroup msg <$> traverse (traverseTree f) ss-traverseTree _ (BuildSpecs _) = error "No BuildSpecs should be left"+traverseTree f (SpecWithCleanup c ss) = SpecWithCleanup c <$> traverse (traverseTree f) ss  -- | Traverse a list of specs, but only if forceSpecs has already been called traverseSpec :: Applicative f => (Item -> f Item) -> [SpecTree] -> f [SpecTree] traverseSpec f = traverse (traverseTree f) - -- | Process the items in a depth-first walk, passing in the item counter value. mapWithCounter :: (Int -> Item -> Item) -> [SpecTree] -> [SpecTree] mapWithCounter f s = flip evalState 0 $ traverseSpec go s@@ -157,14 +140,13 @@                       -> (s -> IO ()) -- ^ cleanup the state                       -> Spec -- ^ spec tree to process                       -> Spec-session create close s = fromSpecList [build]-    where-        build = BuildSpecs $ do-            trees <- forceSpec s-            let cnt = countItems trees-            mvars <- replicateM cnt newEmptyMVar-            let sess = Session cnt mvars create close-            return (mapWithCounter (sessionItem sess) trees)+session create close s = do+    (sess, trees) <- runIO $ do+        trees <- runSpecM s+        let cnt = countItems trees+        mvars <- replicateM cnt newEmptyMVar+        return (Session cnt mvars create close, trees)+    fromSpecList (mapWithCounter (sessionItem sess) trees)  -- | Create an example to pass to 'it' which accesses and modifies the state using the state monad. -- For example,
hspec-webdriver.cabal view
@@ -1,5 +1,5 @@ name:              hspec-webdriver-version:           0.3.1+version:           0.3.2 cabal-version:     >= 1.8 build-type:        Simple synopsis:          Write end2end web application tests using webdriver and hspec@@ -30,9 +30,9 @@      build-depends: base                 >= 4          && < 5 -                 , HUnit                >= 1.2 && < 1.3+                 , HUnit                >= 1.2                  , hashable             >= 1.2-                 , hspec                >= 1.11+                 , hspec                >= 1.12 && < 1.13                  , data-default         >= 0.5                  , lifted-base          >= 0.2                  , stm                  >= 2.4