;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