packages feed

greskell-2.0.3.5: test/ExamplesSpec.hs

module ExamplesSpec
    ( main
    , spec
    ) where

import qualified Data.Greskell.Extra      as Extra
import qualified Data.Greskell.Graph      as Graph
import qualified Data.Greskell.Gremlin    as Gremlin
import qualified Data.Greskell.GTraversal as GTraversal

import           Control.Monad            (forM_)
import           Test.Hspec

main :: IO ()
main = hspec spec

spec :: Spec
spec = describe "examples" $ do
  makeSpec "Graph" Graph.examples
  makeSpec "Gremlin" Gremlin.examples
  makeSpec "GTraversal" GTraversal.examples
  makeSpec "Extra" Extra.examples

makeSpec :: (Show a) => String -> [(a, a)] -> Spec
makeSpec label exs = describe label $ forM_ exs $ \(got, expected) -> specify (show expected) $ show got `shouldBe` show expected