diff options
Diffstat (limited to 'tests/Hakyll/Core/Provider')
| -rw-r--r-- | tests/Hakyll/Core/Provider/Metadata/Tests.hs | 27 | ||||
| -rw-r--r-- | tests/Hakyll/Core/Provider/Tests.hs | 13 |
2 files changed, 19 insertions, 21 deletions
diff --git a/tests/Hakyll/Core/Provider/Metadata/Tests.hs b/tests/Hakyll/Core/Provider/Metadata/Tests.hs index 1217180..fc609f2 100644 --- a/tests/Hakyll/Core/Provider/Metadata/Tests.hs +++ b/tests/Hakyll/Core/Provider/Metadata/Tests.hs @@ -5,14 +5,13 @@ module Hakyll.Core.Provider.Metadata.Tests -------------------------------------------------------------------------------- +import qualified Data.HashMap.Strict as HMS +import qualified Data.Text as T +import qualified Data.Yaml as Yaml +import Hakyll.Core.Metadata +import Hakyll.Core.Provider.Metadata import Test.Framework (Test, testGroup) import Test.HUnit (Assertion, (@=?)) -import Text.Parsec as P -import Text.Parsec.String (Parser) - - --------------------------------------------------------------------------------- -import Hakyll.Core.Provider.Metadata import TestSuite.Util @@ -22,9 +21,11 @@ tests = testGroup "Hakyll.Core.Provider.Metadata.Tests" $ fromAssertions "page" [testPage01, testPage02] + -------------------------------------------------------------------------------- testPage01 :: Assertion -testPage01 = testParse page ([("foo", "bar")], "qux\n") +testPage01 = + Right (meta [("foo", "bar")], "qux\n") @=? parsePage "---\n\ \foo: bar\n\ \---\n\ @@ -33,21 +34,21 @@ testPage01 = testParse page ([("foo", "bar")], "qux\n") -------------------------------------------------------------------------------- testPage02 :: Assertion -testPage02 = testParse page - ([("description", descr)], "Hello I am dog\n") +testPage02 = + Right (meta [("description", descr)], "Hello I am dog\n") @=? + parsePage "---\n\ \description: A long description that would look better if it\n\ \ spanned multiple lines and was indented\n\ \---\n\ \Hello I am dog\n" where + descr :: String descr = "A long description that would look better if it \ \spanned multiple lines and was indented" -------------------------------------------------------------------------------- -testParse :: (Eq a, Show a) => Parser a -> a -> String -> Assertion -testParse parser expected input = case P.parse parser "<inline>" input of - Left err -> error $ show err - Right x -> expected @=? x +meta :: Yaml.ToJSON a => [(String, a)] -> Metadata +meta pairs = HMS.fromList [(T.pack k, Yaml.toJSON v) | (k, v) <- pairs] diff --git a/tests/Hakyll/Core/Provider/Tests.hs b/tests/Hakyll/Core/Provider/Tests.hs index abe5c1d..8a505d2 100644 --- a/tests/Hakyll/Core/Provider/Tests.hs +++ b/tests/Hakyll/Core/Provider/Tests.hs @@ -6,14 +6,11 @@ module Hakyll.Core.Provider.Tests -------------------------------------------------------------------------------- -import qualified Data.Map as M +import Hakyll.Core.Metadata +import Hakyll.Core.Provider import Test.Framework (Test, testGroup) import Test.Framework.Providers.HUnit (testCase) import Test.HUnit (Assertion, assert, (@=?)) - - --------------------------------------------------------------------------------- -import Hakyll.Core.Provider import TestSuite.Util @@ -32,9 +29,9 @@ case01 = do assert $ resourceExists provider "example.md" metadata <- resourceMetadata provider "example.md" - Just "An example" @=? M.lookup "title" metadata - Just "External data" @=? M.lookup "external" metadata + Just "An example" @=? lookupString "title" metadata + Just "External data" @=? lookupString "external" metadata doesntExist <- resourceMetadata provider "doesntexist.md" - M.empty @=? doesntExist + mempty @=? doesntExist cleanTestEnv |
