content: 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"]
  