packages feed

ghc-imported-from-0.2.0.2: test/ImportedFromSpec.hs

{-# LANGUAGE RankNTypes #-}

module ImportedFromSpec where

import Data.List (isSuffixOf, isInfixOf, isPrefixOf)
import Language.Haskell.GhcImportedFrom
import System.FilePath()
import Test.Hspec

import Dir

isRight :: forall a b. Either a b -> Bool
isRight = either (const False) (const True)

spec :: Spec
spec = do
    describe "checkImportedFrom" $ do
        it "can look up Maybe" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "Maybe"         11 11 (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up Just" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "Just"          12 7  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up Just" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "Just"          16 10 (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up String" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "String"        20 14 (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up Int" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "Int"           22 23 (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up DL.length" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "DL.length"     23 5  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up print" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "print"         25 8  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up DM.fromList" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "DM.fromList"   27 5  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up Safe.headMay" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Muddle.hs" "Muddle" "Safe.headMay"  29 6  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up map" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Hiding.hs" "Hiding" "map"           12 5  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up head" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "Hiding.hs" "Hiding" "head"          12 5  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight

        it "can look up when" $ do
            withDirectory_ "test/data" $ do
                res <- guessHaddockUrl "When.hs"   "When"   "when"          15 5  (GhcOptions []) (GhcPkgOptions [])
                res `shouldSatisfy` isRight