Ensure results work when no config can be loaded

Why?
====

If no config can be loaded correctly, unused should still function
correctly, albeit with likely more false positives.
This commit is contained in:
Joshua Clayton 2016-06-05 08:09:02 -04:00
parent 54e55c46a2
commit 9bf9499e67
4 changed files with 35 additions and 0 deletions

View File

@ -24,6 +24,7 @@ groupedTermsAndAliases as ms =
aliases = map toAlias as
termsAndAliases :: [TermAlias] -> [String] -> [String]
termsAndAliases [] = id
termsAndAliases as =
nub . map T.unpack . concatMap (allAliases aliases . T.pack)
where

View File

@ -0,0 +1,21 @@
module Unused.AliasesSpec where
import Test.Hspec
import Unused.Aliases
import Unused.ResultsClassifier.Types (TermAlias(..))
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` ["method_1", "method_2"]
it "adds aliases to the list of terms" $ do
let predicateAlias = TermAlias "%s?" "be_%s"
let pluralizeAlias = TermAlias "really_%s" "very_%s"
termsAndAliases [predicateAlias, pluralizeAlias] ["awesome?", "really_cool"]
`shouldBe` ["awesome?", "be_awesome", "really_cool", "very_cool"]

View File

@ -30,6 +30,18 @@ spec = parallel $
result `shouldBe`
Map.fromList [ ("method_name", r1Results), ("other", r2Results) ]
it "parses when no config is provided" $ do
let r1Matches = [ TermMatch "method_name" "app/path/foo.rb" 1
, TermMatch "method_name" "app/path/other.rb" 5
, TermMatch "method_name" "spec/path/foo_spec.rb" 10
]
let r1Results = TermResults "method_name" r1Matches (Occurrences 1 10) (Occurrences 2 6) (Occurrences 3 16) (Removal Low "used frequently")
let result = parseResults [] $ SearchResults r1Matches
result `shouldBe`
Map.fromList [ ("method_name", r1Results) ]
it "handles aliases correctly" $ do
let r1Matches = [ TermMatch "admin?" "app/path/user.rb" 3 ]

View File

@ -95,6 +95,7 @@ test-suite unused-test
, Unused.TermSearch.InternalSpec
, Unused.UtilSpec
, Unused.Cache.FindArgsFromIgnoredPathsSpec
, Unused.AliasesSpec
, Paths_unused
ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall -Werror
default-language: Haskell2010