chuchu-0.1.3: tests/multiple_scenarios.hs
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
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_scenarios.feature"] $
chuchuMain defs (`evalStateT` Open)