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