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
|
-- TODO: It might be better to print warning and continue
|
||||||
in either (error.show) (findMetadata dir) . P.parse namedMetadata path <$> readFile path
|
in either (error.show) (findMetadata dir) . P.parse namedMetadata path <$> readFile path
|
||||||
findMetadata dir =
|
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 :: Parser [(String, [(String, String)])]
|
||||||
namedMetadata = P.many namedMetadataBlock
|
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.Dependencies.Tests
|
||||||
import qualified Hakyll.Core.Identifier.Tests
|
import qualified Hakyll.Core.Identifier.Tests
|
||||||
import qualified Hakyll.Core.Provider.Metadata.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.Provider.Tests
|
||||||
import qualified Hakyll.Core.Routes.Tests
|
import qualified Hakyll.Core.Routes.Tests
|
||||||
import qualified Hakyll.Core.Rules.Tests
|
import qualified Hakyll.Core.Rules.Tests
|
||||||
|
@ -32,6 +33,7 @@ main = defaultMain
|
||||||
[ Hakyll.Core.Dependencies.Tests.tests
|
[ Hakyll.Core.Dependencies.Tests.tests
|
||||||
, Hakyll.Core.Identifier.Tests.tests
|
, Hakyll.Core.Identifier.Tests.tests
|
||||||
, Hakyll.Core.Provider.Metadata.Tests.tests
|
, Hakyll.Core.Provider.Metadata.Tests.tests
|
||||||
|
, Hakyll.Core.Provider.GlobalMetadata.Tests.tests
|
||||||
, Hakyll.Core.Provider.Tests.tests
|
, Hakyll.Core.Provider.Tests.tests
|
||||||
, Hakyll.Core.Routes.Tests.tests
|
, Hakyll.Core.Routes.Tests.tests
|
||||||
, Hakyll.Core.Rules.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