yesod/yesod-core/test/Test/Exceptions.hs
2011-08-28 11:02:32 +03:00

38 lines
909 B
Haskell

{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleInstances #-}
module Test.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 :: IO [IO 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