packages feed

hhp-0.0.0: test/BrowseSpec.hs

module BrowseSpec where

import Test.Hspec

import Dir

import Hhp
import Hhp.Cradle

spec :: Spec
spec = do
    describe "browseModule" $ do
        it "lists up symbols in the module" $ do
            cradle <- findCradle
            syms <- lines <$> browseModule defaultOptions cradle "Data.Map"
            syms `shouldContain` ["differenceWithKey"]

    describe "browseModule -d" $ do
        it "lists up symbols with type info in the module" $ do
            cradle <- findCradle
            syms <- lines <$> browseModule defaultOptions { detailed = True } cradle "Data.Either"
            syms `shouldContain` ["either :: (a -> c) -> (b -> c) -> Either a b -> c"]

        it "lists up data constructors with type info in the module" $ do
            cradle <- findCradle
            syms <- lines <$> browseModule defaultOptions { detailed = True} cradle "Data.Either"
            syms `shouldContain` ["Left :: a -> Either a b"]

    describe "browseModule local" $ do
        it "lists symbols in a local module" $ do
            withDirectory_ "test/data" $ do
                cradle <- findCradleWithoutSandbox
                syms <- lines <$> browseModule defaultOptions cradle "Baz"
                syms `shouldContain` ["baz"]