getopt-generics-0.11: test/System/Console/GetOpt/Generics/ModifierSpec.hs
{-# LANGUAGE DeriveGeneric #-}
module System.Console.GetOpt.Generics.ModifierSpec where
import qualified GHC.Generics
import Generics.SOP
import Test.Hspec
import System.Console.GetOpt.Generics.Modifier
import Util
spec :: Spec
spec = do
describe "insertWith" $ do
it "combines existing values with the given function" $ do
insertWith (++) (1 :: Integer) "bar" [(1, "foo")]
`shouldBe` [(1, "foobar")]
describe "getVersion" $ do
it "returns the version" $ do
let modifiers = unsafeModifiers [AddVersionFlag "1.0.0"]
getVersion modifiers `shouldBe` Just "1.0.0"
data Foo
= Foo {
bar :: String
}
deriving (GHC.Generics.Generic)
instance Generic Foo
instance HasDatatypeInfo Foo
data Overlap
= Overlap {
foo :: String,
fooo :: String
}
deriving (GHC.Generics.Generic)
instance Generic Overlap
instance HasDatatypeInfo Overlap