packages feed

unused-0.9.0.0: test/Unused/AliasesSpec.hs

module Unused.AliasesSpec where

import Data.Monoid ((<>))
import Test.Hspec
import Unused.Aliases
import Unused.ResultsClassifier.Types (TermAlias(..))
import Unused.Types (SearchTerm(..))

main :: IO ()
main = hspec spec

spec :: Spec
spec =
    parallel $
    describe "termsAndAliases" $ do
        it "returns the terms if no aliases are provided" $
            termsAndAliases [] ["method_1", "method_2"] `shouldBe`
            [OriginalTerm "method_1", OriginalTerm "method_2"]
        it "adds aliases to the list of terms" $ do
            let predicateAlias = TermAlias "*?" "be_{}" ("be_" <>)
            let pluralizeAlias = TermAlias "really_*" "very_{}" ("very_" <>)
            termsAndAliases [predicateAlias, pluralizeAlias] ["awesome?", "really_cool"] `shouldBe`
                [ OriginalTerm "awesome?"
                , AliasTerm "awesome?" "be_awesome"
                , OriginalTerm "really_cool"
                , AliasTerm "really_cool" "very_cool"
                ]