failing test case for a space under nesting
This commit is contained in:
parent
ef80ab00df
commit
f88c927875
@ -10,7 +10,7 @@ module Hierarchy
|
|||||||
( hierarchy
|
( hierarchy
|
||||||
, Dispatcher (..)
|
, Dispatcher (..)
|
||||||
, runHandler
|
, runHandler
|
||||||
, Handler
|
, Handler2
|
||||||
, App
|
, App
|
||||||
, toText
|
, toText
|
||||||
, Env (..)
|
, Env (..)
|
||||||
@ -34,7 +34,9 @@ class ToText a where
|
|||||||
instance ToText Text where toText = id
|
instance ToText Text where toText = id
|
||||||
instance ToText String where toText = pack
|
instance ToText String where toText = pack
|
||||||
|
|
||||||
type Handler sub master a = a
|
type Handler2 sub master a = a
|
||||||
|
type Handler site a = Handler2 site site a
|
||||||
|
|
||||||
type Request = ([Text], ByteString) -- path info, method
|
type Request = ([Text], ByteString) -- path info, method
|
||||||
type App sub master = Request -> (Text, Maybe (YRC.Route master))
|
type App sub master = Request -> (Text, Maybe (YRC.Route master))
|
||||||
data Env sub master = Env
|
data Env sub master = Env
|
||||||
@ -45,7 +47,7 @@ data Env sub master = Env
|
|||||||
|
|
||||||
subDispatch
|
subDispatch
|
||||||
:: (Env sub master -> App sub master)
|
:: (Env sub master -> App sub master)
|
||||||
-> (Handler sub master Text -> Env sub master -> Maybe (YRC.Route sub) -> App sub master)
|
-> (Handler2 sub master Text -> Env sub master -> Maybe (YRC.Route sub) -> App sub master)
|
||||||
-> (master -> sub)
|
-> (master -> sub)
|
||||||
-> (YRC.Route sub -> YRC.Route master)
|
-> (YRC.Route sub -> YRC.Route master)
|
||||||
-> Env master master
|
-> Env master master
|
||||||
@ -63,7 +65,7 @@ class Dispatcher sub master where
|
|||||||
|
|
||||||
runHandler
|
runHandler
|
||||||
:: ToText a
|
:: ToText a
|
||||||
=> Handler sub master a
|
=> Handler2 sub master a
|
||||||
-> Env sub master
|
-> Env sub master
|
||||||
-> Maybe (Route sub)
|
-> Maybe (Route sub)
|
||||||
-> App sub master
|
-> App sub master
|
||||||
@ -75,11 +77,17 @@ data Hierarchy = Hierarchy
|
|||||||
do
|
do
|
||||||
let resources = [parseRoutes|
|
let resources = [parseRoutes|
|
||||||
/ HomeR GET
|
/ HomeR GET
|
||||||
|
|
||||||
/admin/#Int AdminR:
|
/admin/#Int AdminR:
|
||||||
/ AdminRootR GET
|
/ AdminRootR GET
|
||||||
/login LoginR GET POST
|
/login LoginR GET POST
|
||||||
/table/#Text TableR GET
|
/table/#Text TableR GET
|
||||||
|
|
||||||
|
/nest/ NestR:
|
||||||
|
|
||||||
|
/spaces SpacedR GET
|
||||||
|]
|
|]
|
||||||
|
|
||||||
rrinst <- mkRenderRouteInstance (ConT ''Hierarchy) $ map (fmap parseType) resources
|
rrinst <- mkRenderRouteInstance (ConT ''Hierarchy) $ map (fmap parseType) resources
|
||||||
prinst <- mkParseRouteInstance (ConT ''Hierarchy) $ map (fmap parseType) resources
|
prinst <- mkParseRouteInstance (ConT ''Hierarchy) $ map (fmap parseType) resources
|
||||||
dispatch <- mkDispatchClause MkDispatchSettings
|
dispatch <- mkDispatchClause MkDispatchSettings
|
||||||
@ -102,23 +110,28 @@ do
|
|||||||
: prinst
|
: prinst
|
||||||
: rrinst
|
: rrinst
|
||||||
|
|
||||||
getHomeR :: Handler sub master String
|
getSpacedR :: Handler site String
|
||||||
|
getSpacedR = "root-leaf"
|
||||||
|
|
||||||
|
getHomeR :: Handler site String
|
||||||
getHomeR = "home"
|
getHomeR = "home"
|
||||||
|
|
||||||
getAdminRootR :: Int -> Handler sub master Text
|
getAdminRootR :: Int -> Handler site Text
|
||||||
getAdminRootR i = pack $ "admin root: " ++ show i
|
getAdminRootR i = pack $ "admin root: " ++ show i
|
||||||
|
|
||||||
getLoginR :: Int -> Handler sub master Text
|
getLoginR :: Int -> Handler site Text
|
||||||
getLoginR i = pack $ "login: " ++ show i
|
getLoginR i = pack $ "login: " ++ show i
|
||||||
|
|
||||||
postLoginR :: Int -> Handler sub master Text
|
postLoginR :: Int -> Handler site Text
|
||||||
postLoginR i = pack $ "post login: " ++ show i
|
postLoginR i = pack $ "post login: " ++ show i
|
||||||
|
|
||||||
getTableR :: Int -> Text -> Handler sub master Text
|
getTableR :: Int -> Text -> Handler site Text
|
||||||
getTableR _ t = append "TableR " t
|
getTableR _ = append "TableR "
|
||||||
|
|
||||||
hierarchy :: Spec
|
hierarchy :: Spec
|
||||||
hierarchy = describe "hierarchy" $ do
|
hierarchy = describe "hierarchy" $ do
|
||||||
|
it "nested with spacing" $
|
||||||
|
renderRoute (NestR SpacedR) @?= (["nest", "spaces"], [])
|
||||||
it "renders root correctly" $
|
it "renders root correctly" $
|
||||||
renderRoute (AdminR 5 AdminRootR) @?= (["admin", "5"], [])
|
renderRoute (AdminR 5 AdminRootR) @?= (["admin", "5"], [])
|
||||||
it "renders table correctly" $
|
it "renders table correctly" $
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user