;web: begin work on a forecasting test (#1390)
This commit is contained in:
parent
290428f9d4
commit
c7e267e314
@ -4,7 +4,7 @@ cabal-version: 1.12
|
||||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
--
|
||||
-- hash: 929ce1d9b5d6a14f13fa77dd3a21d8772a58c1e13310e4940510878718fa4d96
|
||||
-- hash: 80d248f9e183a9f4f099aab192fd5041fe081ed554baa8ba48b8a3fc4ed777c3
|
||||
|
||||
name: hledger-web
|
||||
version: 1.19.99
|
||||
@ -232,6 +232,8 @@ test-suite test
|
||||
cpp-options: -DVERSION="1.19.99"
|
||||
build-depends:
|
||||
base
|
||||
, hledger
|
||||
, hledger-lib
|
||||
, hledger-web
|
||||
, hspec
|
||||
, yesod
|
||||
|
||||
@ -166,6 +166,8 @@ tests:
|
||||
cpp-options: -DVERSION="1.19.99"
|
||||
dependencies:
|
||||
- base
|
||||
- hledger-lib
|
||||
- hledger
|
||||
- hledger-web
|
||||
- hspec
|
||||
- yesod
|
||||
|
||||
@ -10,18 +10,34 @@ module Main where
|
||||
import Test.Hspec (hspec)
|
||||
import Yesod.Default.Config
|
||||
import Yesod.Test
|
||||
|
||||
import Hledger.Web.Application (makeFoundation)
|
||||
import Hledger.Web.Foundation
|
||||
import Hledger.Web.Settings (parseExtra)
|
||||
import Hledger.Web.WebOptions (defwebopts)
|
||||
import Hledger.Web.WebOptions -- (defwebopts, cliopts_)
|
||||
-- import Hledger.Cli.CliOptions -- (defcliopts, reportspec_)
|
||||
-- import Hledger -- .Reports.ReportOptions (defreportopts, forecast_)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
conf <- Yesod.Default.Config.loadConfig $
|
||||
(configSettings Testing){ csParseExtra = parseExtra }
|
||||
|
||||
foundation <- makeFoundation conf defwebopts
|
||||
hspec $ yesodSpec foundation specs
|
||||
|
||||
-- run hledger-web with some forecasted transactions
|
||||
-- XXX problem: these tests use makeFoundation, bypassing the journal setup in Hledger.Web.Main
|
||||
-- d <- getCurrentDay
|
||||
-- let
|
||||
-- ropts = defreportopts{forecast_=Just nulldatespan}
|
||||
-- rspec = case reportOptsToSpec d ropts of
|
||||
-- Left e -> error $ "failed to set up report options for tests, shouldn't happen: " ++ show e
|
||||
-- Right rs -> rs
|
||||
-- foundationForecast <- makeFoundation conf
|
||||
-- defwebopts{cliopts_=defcliopts{file_=["hledger-web/tests/forecast.j"], reportspec_=rspec}}
|
||||
-- hspec $ yesodSpec foundationForecast specsForecast
|
||||
|
||||
-- https://hackage.haskell.org/package/yesod-test/docs/Yesod-Test.html
|
||||
|
||||
specs :: YesodSpec App
|
||||
@ -38,13 +54,22 @@ specs = do
|
||||
statusIs 200
|
||||
bodyContains "accounts"
|
||||
|
||||
-- post "/" $ do
|
||||
-- addNonce
|
||||
-- fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference
|
||||
-- byLabel "What's on the file?" "Some Content"
|
||||
-- specsForecast :: YesodSpec App
|
||||
-- specsForecast = do
|
||||
-- ydescribe "hledger-web --forecast" $ do
|
||||
-- yit "serves a reasonable-looking journal page" $ do
|
||||
-- get JournalR
|
||||
-- statusIs 200
|
||||
-- bodyContains "Add a transaction"
|
||||
|
||||
-- statusIs 200
|
||||
-- htmlCount ".message" 1
|
||||
-- htmlAllContain ".message" "Some Content"
|
||||
-- htmlAllContain ".message" "text/plain"
|
||||
|
||||
|
||||
|
||||
-- post "/" $ do
|
||||
-- addNonce
|
||||
-- fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference
|
||||
-- byLabel "What's on the file?" "Some Content"
|
||||
-- statusIs 200
|
||||
-- htmlCount ".message" 1
|
||||
-- htmlAllContain ".message" "Some Content"
|
||||
-- htmlAllContain ".message" "text/plain"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user