ghc-mod/test/BrowseSpec.hs

35 lines
1.3 KiB
Haskell
Raw Normal View History

2013-02-12 05:18:19 +00:00
module BrowseSpec where
import Control.Applicative
import GhcMod
2013-05-20 02:29:44 +00:00
import Test.Hspec
2015-08-31 06:01:20 +00:00
import Prelude
2013-02-12 05:18:19 +00:00
2014-05-10 13:10:34 +00:00
import TestUtils
import Dir
2013-02-12 05:18:19 +00:00
spec :: Spec
spec = do
describe "browse Data.Map" $ do
it "contains at least `differenceWithKey'" $ do
syms <- runD $ lines <$> browse defaultBrowseOpts "Data.Map"
syms `shouldContain` ["differenceWithKey"]
2013-03-01 00:46:17 +00:00
describe "browse -d Data.Either" $ do
it "contains functions (e.g. `either') including their type signature" $ do
syms <- runD
$ lines <$> browse defaultBrowseOpts{ optBrowseDetailed = True } "Data.Either"
syms `shouldContain` ["either :: (a -> c) -> (b -> c) -> Either a b -> c"]
it "contains type constructors (e.g. `Left') including their type signature" $ do
syms <- runD
$ lines <$> browse defaultBrowseOpts{ optBrowseDetailed = True } "Data.Either"
syms `shouldContain` ["Left :: a -> Either a b"]
describe "`browse' in a project directory" $ do
2015-03-04 20:48:21 +00:00
it "can list symbols defined in a a local module" $ do
2015-09-14 08:11:33 +00:00
withDirectory_ "test/data/ghc-mod-check/" $ do
syms <- runD $ lines <$> browse defaultBrowseOpts "Data.Foo"
2015-03-04 20:48:21 +00:00
syms `shouldContain` ["foo"]
syms `shouldContain` ["fibonacci"]