/ test / HyperSpec.hs
HyperSpec.hs
 1  module HyperSpec where
 2  
 3  import Test.Hspec(Spec, describe, it, shouldBe)
 4  import Hyper (progC, gen, runCont)
 5  import Control.Monad.Writer (execWriterT)
 6  
 7  spec :: Spec
 8  spec =
 9    describe "Coroutines" $ do
10      it "can run sample program" $ do
11        runCont (execWriterT $ progC gen) id `shouldBe`
12          ["in prog", "received 1", "sent 10, received 2", "sent 20, received 3", "sent 30, received 1"]