packages feed

unused-0.5.0.2: test/Unused/Grouping/InternalSpec.hs

module Unused.Grouping.InternalSpec
    ( main
    , spec
    ) where

import Test.Hspec
import Unused.Types
import Unused.Grouping.Internal
import Unused.Grouping.Types

main :: IO ()
main = hspec spec

spec :: Spec
spec = parallel $
    describe "groupFilter" $ do
        it "groups by directory" $ do
            let termMatch = TermMatch "AwesomeClass" "foo/bar/baz/buzz.rb" 10

            groupFilter GroupByDirectory termMatch `shouldBe` ByDirectory "foo/bar"

        it "groups by term" $ do
            let termMatch = TermMatch "AwesomeClass" "foo/bar/baz/buzz.rb" 10

            groupFilter GroupByTerm termMatch `shouldBe` ByTerm "AwesomeClass"

        it "groups by file" $ do
            let termMatch = TermMatch "AwesomeClass" "foo/bar/baz/buzz.rb" 10

            groupFilter GroupByFile termMatch `shouldBe` ByFile "foo/bar/baz/buzz.rb"

        it "groups by nothing" $ do
            let termMatch = TermMatch "AwesomeClass" "foo/bar/baz/buzz.rb" 10

            groupFilter NoGroup termMatch `shouldBe` NoGrouping