yesod/yesod-core/test/YesodCoreTest/Exceptions.hs
2011-11-26 10:44:56 -06:00

38 lines
912 B
Haskell

{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleInstances #-}
module YesodCoreTest.Exceptions (exceptionsTest, Widget) where
import Test.Hspec
import Test.Hspec.HUnit ()
import Yesod.Core hiding (Request)
import Network.Wai.Test
data Y = Y
mkYesod "Y" [parseRoutes|
/ RootR GET
|]
instance Yesod Y where
approot _ = "http://test"
errorHandler (InternalError e) = return $ chooseRep $ RepPlain $ toContent e
errorHandler x = defaultErrorHandler x
getRootR :: Handler ()
getRootR = error "FOOBAR" >> return ()
exceptionsTest :: [Spec]
exceptionsTest = describe "Test.Exceptions"
[ it "500" case500
]
runner :: Session () -> IO ()
runner f = toWaiApp Y >>= runSession f
case500 :: IO ()
case500 = runner $ do
res <- request defaultRequest
assertStatus 500 res
assertBody "FOOBAR" res