@@ -6,6 +6,8 @@ module Hakyll.Core.Rules.Tests
66
77
88--------------------------------------------------------------------------------
9+import Data.IORef (IORef, newIORef, readIORef,
10+ writeIORef)
911import qualified Data.Set as S
1012import Test.Framework (Test, testGroup)
1113import Test.Framework.Providers.HUnit (testCase)
@@ -34,9 +36,10 @@ tests = testGroup "Hakyll.Core.Rules.Tests"
3436--------------------------------------------------------------------------------
3537rulesTest :: Assertion
3638rulesTest = do
39+ ioref <- newIORef False
3740 store <- newTestStore
3841 provider <- newTestProvider store
39− ruleSet <- runRules rules provider
42+ ruleSet <- runRules (rules ioref) provider
4043 let identifiers = S.fromList $ map fst $ rulesCompilers ruleSet
4144 routes = rulesRoutes ruleSet
4245
@@ -47,6 +50,7 @@ rulesTest = do
4750 Just "example.md" @=? runRoutes routes (sv "nav" "example.md")
4851 Just "example.mv1" @=? runRoutes routes (sv "mv1" "example.md")
4952 Just "example.mv2" @=? runRoutes routes (sv "mv2" "example.md")
53+ readIORef ioref >>= assert
5054 where
5155 sv g = setVersion (Just g)
5256 expected =
@@ -59,13 +63,16 @@ rulesTest = do
5963
6064
6165--------------------------------------------------------------------------------
62−rules :: Rules ()
63−rules = do
66+rules :: IORef Bool -> Rules ()
67+rules ioref = do
6468 -- Compile some posts
6569 match "*.md" $ do
6670 route $ setExtension "html"
6771 compile pandocCompiler
6872
73+ -- Yeah. I don't know how else to test this stuff?
74+ preprocess $ writeIORef ioref True
75+
6976 -- Compile them, raw
7077 match "*.md" $ version "raw" $ do
7178 route idRoute