packages feed

chuchu-0.4.1: tests/multiple_features.hs

import Control.Applicative
import Control.Monad.Trans.State
import System.Environment
import Test.Chuchu


type Bathroom = StateT Door IO


data Door = Open | Locked


defs :: Chuchu Bathroom
defs = do

  Given ("that " *> text <* " has entered the bathroom and locked the door") $ \_ -> do
    door <- get
    case door of
      Open -> put Locked
      Locked -> fail "Door was already locked."


main :: IO ()
main = withArgs [ "tests/data/multiple_features1.feature"
                , "tests/data/multiple_features2.feature" ] $
       chuchuMain defs (`evalStateT` Open)