Added test case for global metadata
This commit is contained in:
parent
712ffa39b5
commit
46b6f78da8
7 changed files with 85 additions and 1 deletions
|
@ -151,7 +151,7 @@ loadGlobalMetadata p fp = liftM M.fromList $ loadgm fp where
|
|||
-- TODO: It might be better to print warning and continue
|
||||
in either (error.show) (findMetadata dir) . P.parse namedMetadata path <$> readFile path
|
||||
findMetadata dir =
|
||||
concatMap snd . filter (flip matches fp . fromGlob . combine dir . fst)
|
||||
concatMap snd . filter (flip matches fp . fromGlob . normalise . combine dir . fst)
|
||||
|
||||
namedMetadata :: Parser [(String, [(String, String)])]
|
||||
namedMetadata = P.many namedMetadataBlock
|
||||
|
|
31
tests/Hakyll/Core/Provider/GlobalMetadata/Tests.hs
Normal file
31
tests/Hakyll/Core/Provider/GlobalMetadata/Tests.hs
Normal file
|
@ -0,0 +1,31 @@
|
|||
--------------------------------------------------------------------------------
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
module Hakyll.Core.Provider.GlobalMetadata.Tests
|
||||
( tests
|
||||
) where
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
import qualified Data.Map as M
|
||||
import Control.Monad (forM_)
|
||||
import Test.Framework (Test, testGroup)
|
||||
import Test.HUnit (Assertion, (@=?))
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
import Hakyll.Core.Provider (resourceMetadata)
|
||||
import TestSuite.Util
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
tests :: Test
|
||||
tests = testGroup "Hakyll.Core.Provider.GlobalMetadata.Tests" $
|
||||
fromAssertions "page" [testPage]
|
||||
|
||||
testPage :: Assertion
|
||||
testPage = do
|
||||
store <- newTestStore
|
||||
provider <- newTestProvider store
|
||||
|
||||
metadata <- resourceMetadata provider "posts/2013-10-18-metadata-test.md"
|
||||
forM_ ["1", "2", "3", "4", "5", "6", "7", "8"] $ \a ->
|
||||
Just a @=? M.lookup ('a':a) metadata
|
||||
|
|
@ -12,6 +12,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.GlobalMetadata.Tests
|
||||
import qualified Hakyll.Core.Provider.Tests
|
||||
import qualified Hakyll.Core.Routes.Tests
|
||||
import qualified Hakyll.Core.Rules.Tests
|
||||
|
@ -32,6 +33,7 @@ main = defaultMain
|
|||
[ Hakyll.Core.Dependencies.Tests.tests
|
||||
, Hakyll.Core.Identifier.Tests.tests
|
||||
, Hakyll.Core.Provider.Metadata.Tests.tests
|
||||
, Hakyll.Core.Provider.GlobalMetadata.Tests.tests
|
||||
, Hakyll.Core.Provider.Tests.tests
|
||||
, Hakyll.Core.Routes.Tests.tests
|
||||
, Hakyll.Core.Rules.Tests.tests
|
||||
|
|
27
tests/data/metadata
Normal file
27
tests/data/metadata
Normal file
|
@ -0,0 +1,27 @@
|
|||
--- posts/2013-10-18-metadata-test.md
|
||||
a1: 8
|
||||
a2: 8
|
||||
a3: 8
|
||||
a4: 8
|
||||
a5: 8
|
||||
a6: 8
|
||||
a7: 8
|
||||
a8: 8
|
||||
|
||||
--- posts/*
|
||||
a1: 7
|
||||
a2: 7
|
||||
a3: 7
|
||||
a4: 7
|
||||
a5: 7
|
||||
a6: 7
|
||||
a7: 7
|
||||
|
||||
--- **
|
||||
a1: 6
|
||||
a2: 6
|
||||
a3: 6
|
||||
a4: 6
|
||||
a5: 6
|
||||
a6: 6
|
||||
|
4
tests/data/posts/2013-10-18-metadata-test.md
Normal file
4
tests/data/posts/2013-10-18-metadata-test.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
a1: 1
|
||||
---
|
||||
Nothing interesting here.
|
2
tests/data/posts/2013-10-18-metadata-test.md.metadata
Normal file
2
tests/data/posts/2013-10-18-metadata-test.md.metadata
Normal file
|
@ -0,0 +1,2 @@
|
|||
a1: 2
|
||||
a2: 2
|
18
tests/data/posts/metadata
Normal file
18
tests/data/posts/metadata
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- **
|
||||
a1: 5
|
||||
a2: 5
|
||||
a3: 5
|
||||
a4: 5
|
||||
a5: 5
|
||||
|
||||
--- *
|
||||
a1: 4
|
||||
a2: 4
|
||||
a3: 4
|
||||
a4: 4
|
||||
|
||||
--- 2013-10-18-metadata-test.md
|
||||
a1: 3
|
||||
a2: 3
|
||||
a3: 3
|
||||
|
Loading…
Reference in a new issue