diff options
author | Jasper Van der Jeugt <m@jaspervdj.be> | 2013-02-26 19:20:55 +0100 |
---|---|---|
committer | Jasper Van der Jeugt <m@jaspervdj.be> | 2013-02-26 19:20:55 +0100 |
commit | d993ebce58acee1e53ee5693743463c5c402919e (patch) | |
tree | 3e8108bf28edd8903cb3ad5c7ebefcb8df748a71 | |
parent | ac527bd91e7f5a053f78a3bfa08525a290d82450 (diff) | |
download | hakyll-d993ebce58acee1e53ee5693743463c5c402919e.tar.gz |
Add testcase for #115
-rw-r--r-- | src/Hakyll/Core/Provider/Metadata.hs | 2 | ||||
-rw-r--r-- | src/Hakyll/Core/Provider/MetadataCache.hs | 4 | ||||
-rw-r--r-- | tests/Hakyll/Core/Provider/Metadata/Tests.hs | 53 | ||||
-rw-r--r-- | tests/TestSuite.hs | 2 |
4 files changed, 59 insertions, 2 deletions
diff --git a/src/Hakyll/Core/Provider/Metadata.hs b/src/Hakyll/Core/Provider/Metadata.hs index ee07e9f..74e16d4 100644 --- a/src/Hakyll/Core/Provider/Metadata.hs +++ b/src/Hakyll/Core/Provider/Metadata.hs @@ -2,6 +2,8 @@ -- | Internal module to parse metadata module Hakyll.Core.Provider.Metadata ( loadMetadata + , metadata + , page ) where diff --git a/src/Hakyll/Core/Provider/MetadataCache.hs b/src/Hakyll/Core/Provider/MetadataCache.hs index 2c97baa..077bad2 100644 --- a/src/Hakyll/Core/Provider/MetadataCache.hs +++ b/src/Hakyll/Core/Provider/MetadataCache.hs @@ -55,8 +55,8 @@ load p r = do Store.Found _ -> return () -- Not yet loaded _ -> do - (metadata, body) <- loadMetadata p r - Store.set store mdk metadata + (md, body) <- loadMetadata p r + Store.set store mdk md Store.set store bk body where store = providerStore p diff --git a/tests/Hakyll/Core/Provider/Metadata/Tests.hs b/tests/Hakyll/Core/Provider/Metadata/Tests.hs new file mode 100644 index 0000000..1217180 --- /dev/null +++ b/tests/Hakyll/Core/Provider/Metadata/Tests.hs @@ -0,0 +1,53 @@ +-------------------------------------------------------------------------------- +module Hakyll.Core.Provider.Metadata.Tests + ( tests + ) where + + +-------------------------------------------------------------------------------- +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 + + +-------------------------------------------------------------------------------- +tests :: Test +tests = testGroup "Hakyll.Core.Provider.Metadata.Tests" $ + fromAssertions "page" [testPage01, testPage02] + + +-------------------------------------------------------------------------------- +testPage01 :: Assertion +testPage01 = testParse page ([("foo", "bar")], "qux\n") + "---\n\ + \foo: bar\n\ + \---\n\ + \qux\n" + + +-------------------------------------------------------------------------------- +testPage02 :: Assertion +testPage02 = testParse page + ([("description", descr)], "Hello I am dog\n") + "---\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 = + "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 diff --git a/tests/TestSuite.hs b/tests/TestSuite.hs index 7c913dd..3622301 100644 --- a/tests/TestSuite.hs +++ b/tests/TestSuite.hs @@ -11,6 +11,7 @@ import Test.Framework (defaultMain) -------------------------------------------------------------------------------- import qualified Hakyll.Core.Dependencies.Tests import qualified Hakyll.Core.Identifier.Tests +import qualified Hakyll.Core.Provider.Metadata.Tests import qualified Hakyll.Core.Provider.Tests import qualified Hakyll.Core.Routes.Tests import qualified Hakyll.Core.Rules.Tests @@ -30,6 +31,7 @@ main :: IO () main = defaultMain [ Hakyll.Core.Dependencies.Tests.tests , Hakyll.Core.Identifier.Tests.tests + , Hakyll.Core.Provider.Metadata.Tests.tests , Hakyll.Core.Provider.Tests.tests , Hakyll.Core.Routes.Tests.tests , Hakyll.Core.Rules.Tests.tests |