mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-26 02:11:53 +00:00
base test setup
This commit is contained in:
20
test/Handler/AppSpec.hs
Normal file
20
test/Handler/AppSpec.hs
Normal file
@@ -0,0 +1,20 @@
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
|
||||
module Handler.AppSpec (spec) where
|
||||
|
||||
import Startlude
|
||||
import TestImport
|
||||
|
||||
spec :: Spec
|
||||
spec = do
|
||||
describe "GET /apps" $ do
|
||||
withApp $ it "returns list of apps" $ do
|
||||
request $ do
|
||||
setMethod "GET"
|
||||
setUrl ("/apps" :: Text)
|
||||
printBody
|
||||
bodyContains ""
|
||||
statusIs 200
|
||||
|
||||
|
||||
|
||||
11
test/Main.hs
Normal file
11
test/Main.hs
Normal file
@@ -0,0 +1,11 @@
|
||||
module Main where
|
||||
|
||||
import Test.Hspec.Runner
|
||||
import qualified Spec
|
||||
import Test.Hspec.Formatters
|
||||
import qualified Handler.AppSpec as A
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
_ <- A.spec
|
||||
hspecWith defaultConfig { configFormatter = Just progress } Spec.spec
|
||||
29
test/TestImport.hs
Normal file
29
test/TestImport.hs
Normal file
@@ -0,0 +1,29 @@
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
|
||||
module TestImport
|
||||
( module TestImport
|
||||
, module X
|
||||
) where
|
||||
|
||||
import Startlude
|
||||
import Application (makeFoundation, makeLogWare)
|
||||
import Foundation as X
|
||||
import Test.Hspec as X
|
||||
import Yesod.Default.Config2 (useEnv, loadYamlSettings)
|
||||
import Yesod.Test as X
|
||||
import Yesod.Core.Unsafe (fakeHandlerGetLogger)
|
||||
|
||||
runHandler :: Handler a -> YesodExample AgentCtx a
|
||||
runHandler handler = do
|
||||
app <- getTestYesod
|
||||
fakeHandlerGetLogger appLogger app handler
|
||||
|
||||
withApp :: SpecWith (TestApp AgentCtx) -> Spec
|
||||
withApp = before $ do
|
||||
settings <- loadYamlSettings
|
||||
["config/settings.yml"]
|
||||
[]
|
||||
useEnv
|
||||
foundation <- makeFoundation settings
|
||||
logWare <- liftIO $ makeLogWare foundation
|
||||
return (foundation, logWare)
|
||||
Reference in New Issue
Block a user