{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-} module SpecHelper ( module SpecHelper , module X ) where import Test.Hspec as X import Yesod.Core import Yesod.Paginator as X import Yesod.Paginator.Prelude as X import Yesod.Test as X data App = App mkYesod "App" [parseRoutes| /simple/#ItemsCount/#PerPage/#Natural SimpleR GET /ellipsed/#ItemsCount/#PerPage/#Natural EllipsedR GET |] instance Yesod App getSimpleR :: ItemsCount -> PerPage -> Natural -> Handler Html getSimpleR total per elements = do pages <- paginate per $ genericReplicate total () defaultLayout [whamlet|^{simple elements pages}|] getEllipsedR :: ItemsCount -> PerPage -> Natural -> Handler Html getEllipsedR total per elements = do pages <- paginate per $ genericReplicate total () defaultLayout [whamlet|^{ellipsed elements pages}|] withApp :: SpecWith (TestApp App) -> Spec withApp = before $ pure (App, id)