summaryrefslogtreecommitdiff
path: root/Haskell-book/26/Exercises/test/Spec.hs
blob: 92db8e6c67cdc24e8e84b43295f29f06e11f18fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import Control.Monad.Trans.Reader
import Exercises
import Test.Hspec

main :: IO ()
main = hspec $ do
    describe "rDec" $ do
        it "returns a value decremented by one" $ do
            runReader rDec 1 `shouldBe` 0

        it "decrements all elements of a list" $ do
            (fmap (runReader rDec) [1..10]) `shouldBe` [0,1,2,3,4,5,6,7,8,9]

    describe "rShow" $ do
        it "shows a number" $ do
            runReader rShow 1 `shouldBe` "1"

        it "shows a list" $ do
            (fmap (runReader rShow) [1..10]) `shouldBe` ["1","2","3","4","5","6","7","8","9","10"]