Merge pull request #346 from markwright/master
changes for hspec 1.0, include test/main.hs in yesod-test
This commit is contained in:
commit
fd2efbde35
@ -2,4 +2,4 @@ import Test.Hspec
|
||||
import qualified YesodCoreTest
|
||||
|
||||
main :: IO ()
|
||||
main = hspecX $ descriptions $ YesodCoreTest.specs
|
||||
main = hspecX $ YesodCoreTest.specs
|
||||
|
||||
@ -13,9 +13,9 @@ import qualified YesodCoreTest.WaiSubsite as WaiSubsite
|
||||
import qualified YesodCoreTest.Redirect as Redirect
|
||||
import qualified YesodCoreTest.JsLoader as JsLoader
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
|
||||
specs :: [Specs]
|
||||
specs :: [UnevaluatedSpec]
|
||||
specs =
|
||||
[ cleanPathTest
|
||||
, exceptionsTest
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
module YesodCoreTest.Cache (cacheTest, Widget) where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit()
|
||||
|
||||
import Network.Wai
|
||||
@ -35,7 +36,7 @@ getRootR = do
|
||||
Nothing <- cacheLookup key
|
||||
return ()
|
||||
|
||||
cacheTest :: [Spec]
|
||||
cacheTest :: UnevaluatedSpec
|
||||
cacheTest =
|
||||
describe "Test.Cache"
|
||||
[ it "works" works
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
module YesodCoreTest.CleanPath (cleanPathTest, Widget) where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit()
|
||||
|
||||
import Yesod.Core hiding (Request)
|
||||
@ -62,7 +63,7 @@ getBarR, getPlainR :: Handler RepPlain
|
||||
getBarR = return $ RepPlain "bar"
|
||||
getPlainR = return $ RepPlain "plain"
|
||||
|
||||
cleanPathTest :: [Spec]
|
||||
cleanPathTest :: UnevaluatedSpec
|
||||
cleanPathTest =
|
||||
describe "Test.CleanPath"
|
||||
[ it "remove trailing slash" removeTrailingSlash
|
||||
|
||||
@ -5,6 +5,7 @@ module YesodCoreTest.ErrorHandling
|
||||
) where
|
||||
import Yesod.Core
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit()
|
||||
import Network.Wai
|
||||
import Network.Wai.Test
|
||||
@ -52,7 +53,7 @@ postAfterRunRequestBodyR = do
|
||||
_ <- error $ show x
|
||||
getHomeR
|
||||
|
||||
errorHandlingTest :: [Spec]
|
||||
errorHandlingTest :: UnevaluatedSpec
|
||||
errorHandlingTest = describe "Test.ErrorHandling"
|
||||
[ it "says not found" caseNotFound
|
||||
, it "says 'There was an error' before runRequestBody" caseBefore
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
module YesodCoreTest.Exceptions (exceptionsTest, Widget) where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit ()
|
||||
|
||||
import Yesod.Core hiding (Request)
|
||||
@ -30,7 +31,7 @@ getRedirR = do
|
||||
setHeader "foo" "bar"
|
||||
redirectWith status301 RootR
|
||||
|
||||
exceptionsTest :: [Spec]
|
||||
exceptionsTest :: UnevaluatedSpec
|
||||
exceptionsTest = describe "Test.Exceptions"
|
||||
[ it "500" case500
|
||||
, it "redirect keeps headers" caseRedirect
|
||||
|
||||
@ -9,8 +9,9 @@ import Network.Wai.Test
|
||||
import Yesod.Internal.TestApi (randomString, parseWaiRequest')
|
||||
import Yesod.Request (Request (..))
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
|
||||
randomStringSpecs :: [Spec]
|
||||
randomStringSpecs :: UnevaluatedSpec
|
||||
randomStringSpecs = describe "Yesod.Internal.Request.randomString"
|
||||
[ it "looks reasonably random" looksRandom
|
||||
, it "does not repeat itself" $ noRepeat 10 100
|
||||
@ -30,7 +31,7 @@ g :: StdGen
|
||||
g = error "test/YesodCoreTest/InternalRequest.g"
|
||||
|
||||
|
||||
tokenSpecs :: [Spec]
|
||||
tokenSpecs :: UnevaluatedSpec
|
||||
tokenSpecs = describe "Yesod.Internal.Request.parseWaiRequest (reqToken)"
|
||||
[ it "is Nothing if sessions are disabled" noDisabledToken
|
||||
, it "ignores pre-existing token if sessions are disabled" ignoreDisabledToken
|
||||
@ -55,7 +56,7 @@ generateToken = reqToken r /= Nothing where
|
||||
r = parseWaiRequest' defaultRequest [("_TOKEN", "old")] True g
|
||||
|
||||
|
||||
langSpecs :: [Spec]
|
||||
langSpecs :: UnevaluatedSpec
|
||||
langSpecs = describe "Yesod.Internal.Request.parseWaiRequest (reqLangs)"
|
||||
[ it "respects Accept-Language" respectAcceptLangs
|
||||
, it "respects sessions" respectSessionLang
|
||||
@ -93,8 +94,9 @@ prioritizeLangs = reqLangs r == ["en-QUERY", "en-COOKIE", "en-SESSION", "en", "e
|
||||
} [("_LANG", "en-SESSION")] False g
|
||||
|
||||
|
||||
internalRequestTest :: [Spec]
|
||||
internalRequestTest = descriptions [ randomStringSpecs
|
||||
, tokenSpecs
|
||||
, langSpecs
|
||||
]
|
||||
internalRequestTest :: UnevaluatedSpec
|
||||
internalRequestTest = describe "Test.InternalRequestTest"
|
||||
[ randomStringSpecs
|
||||
, tokenSpecs
|
||||
, langSpecs
|
||||
]
|
||||
|
||||
@ -7,6 +7,7 @@ import YesodCoreTest.JsLoaderSites.HeadAsync (HA(..))
|
||||
import YesodCoreTest.JsLoaderSites.Bottom (B(..))
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit ()
|
||||
|
||||
import Yesod.Core hiding (Request)
|
||||
@ -22,7 +23,7 @@ instance Yesod H where
|
||||
getHeadR :: Handler RepHtml
|
||||
getHeadR = defaultLayout $ addScriptRemote "load.js"
|
||||
|
||||
specs :: [Spec]
|
||||
specs :: UnevaluatedSpec
|
||||
specs = describe "Test.JsLoader" [
|
||||
it "link from head" $ runner H $ do
|
||||
res <- request defaultRequest
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
module YesodCoreTest.Links (linksTest, Widget) where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit ()
|
||||
|
||||
import Yesod.Core hiding (Request)
|
||||
@ -20,7 +21,7 @@ instance Yesod Y
|
||||
getRootR :: Handler RepHtml
|
||||
getRootR = defaultLayout $ toWidget [hamlet|<a href=@{RootR}>|]
|
||||
|
||||
linksTest :: [Spec]
|
||||
linksTest :: UnevaluatedSpec
|
||||
linksTest = describe "Test.Links"
|
||||
[ it "linkToHome" case_linkToHome
|
||||
]
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
module YesodCoreTest.Media (mediaTest, Widget) where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit ()
|
||||
import Yesod.Core hiding (Request)
|
||||
import Network.Wai
|
||||
@ -49,7 +50,7 @@ caseMediaLink = runner $ do
|
||||
assertStatus 200 res
|
||||
flip assertBody res "<!DOCTYPE html>\n<html><head><title></title><link rel=\"stylesheet\" href=\"all.css\"><link rel=\"stylesheet\" media=\"screen\" href=\"screen.css\"></head><body></body></html>"
|
||||
|
||||
mediaTest :: [Spec]
|
||||
mediaTest :: UnevaluatedSpec
|
||||
mediaTest = describe "Test.Media"
|
||||
[ it "media" caseMedia
|
||||
, it "media link" caseMediaLink
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
module YesodCoreTest.NoOverloadedStrings (noOverloadedTest, Widget) where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit ()
|
||||
|
||||
import Yesod.Core hiding (Request)
|
||||
@ -44,7 +45,7 @@ case_sanity = runner $ do
|
||||
res <- request defaultRequest
|
||||
assertBody mempty res
|
||||
|
||||
noOverloadedTest :: [Spec]
|
||||
noOverloadedTest :: UnevaluatedSpec
|
||||
noOverloadedTest = describe "Test.NoOverloadedStrings"
|
||||
[ it "sanity" case_sanity
|
||||
]
|
||||
|
||||
@ -4,6 +4,7 @@ module YesodCoreTest.Redirect (specs, Widget) where
|
||||
import YesodCoreTest.YesodTest
|
||||
import Yesod.Handler (redirectWith)
|
||||
import qualified Network.HTTP.Types as H
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
|
||||
data Y = Y
|
||||
mkYesod "Y" [parseRoutes|
|
||||
@ -26,7 +27,7 @@ getR303 = redirectWith H.status303 RootR
|
||||
getR307 = redirectWith H.status307 RootR
|
||||
getRRegular = redirect RootR
|
||||
|
||||
specs :: [Spec]
|
||||
specs :: UnevaluatedSpec
|
||||
specs = describe "Redirect" [
|
||||
it "301 redirect" $ app $ do
|
||||
res <- request defaultRequest { pathInfo = ["r301"] }
|
||||
|
||||
@ -4,6 +4,7 @@ module YesodCoreTest.WaiSubsite (specs, Widget) where
|
||||
import YesodCoreTest.YesodTest
|
||||
import Yesod.Core
|
||||
import qualified Network.HTTP.Types as H
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
|
||||
myApp :: Application
|
||||
myApp _ = return $ responseLBS H.status200 [("Content-type", "text/plain")] "WAI"
|
||||
@ -25,7 +26,7 @@ app = yesod Y
|
||||
getRootR :: Handler ()
|
||||
getRootR = return ()
|
||||
|
||||
specs :: [Spec]
|
||||
specs :: UnevaluatedSpec
|
||||
specs = describe "WaiSubsite" [
|
||||
it "root" $ app $ do
|
||||
res <- request defaultRequest { pathInfo = [] }
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
module YesodCoreTest.Widget (widgetTest) where
|
||||
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Core (UnevaluatedSpec)
|
||||
import Test.Hspec.HUnit ()
|
||||
|
||||
import Yesod.Core hiding (Request)
|
||||
@ -77,7 +78,7 @@ getAutoR = defaultLayout [whamlet|
|
||||
where
|
||||
someHtml = [shamlet|somehtml|]
|
||||
|
||||
widgetTest :: [Spec]
|
||||
widgetTest :: UnevaluatedSpec
|
||||
widgetTest = describe "Test.Widget"
|
||||
[ it "addJuliusBody" case_addJuliusBody
|
||||
, it "whamlet" case_whamlet
|
||||
|
||||
@ -119,7 +119,7 @@ test-suite tests
|
||||
|
||||
cpp-options: -DTEST
|
||||
build-depends: base
|
||||
,hspec >= 0.8 && < 0.10
|
||||
,hspec >= 1.0 && < 1.1
|
||||
,wai-test
|
||||
,wai
|
||||
,yesod-core
|
||||
|
||||
@ -41,7 +41,7 @@ test-suite runtests
|
||||
, yesod-routes
|
||||
, text >= 0.5 && < 0.12
|
||||
, HUnit >= 1.2 && < 1.3
|
||||
, hspec >= 0.6 && < 0.10
|
||||
, hspec >= 0.6 && < 1.1
|
||||
, containers
|
||||
, template-haskell
|
||||
, path-pieces
|
||||
|
||||
@ -11,7 +11,7 @@ cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: http://www.yesodweb.com
|
||||
description: Behaviour Oriented integration Testing for Yesod Applications
|
||||
extra-source-files: README.md, LICENSE
|
||||
extra-source-files: README.md, LICENSE, test/main.hs
|
||||
|
||||
flag blaze_html_0_5
|
||||
description: use blaze-html 0.5 and blaze-markup 0.5
|
||||
|
||||
Loading…
Reference in New Issue
Block a user