tests: ReportOptions -> easytest

This commit is contained in:
Simon Michael 2018-09-04 11:54:40 -07:00
parent 3b63c2ff2f
commit 241d0dbebd
2 changed files with 36 additions and 35 deletions

View File

@ -1,4 +1,4 @@
{-# LANGUAGE RecordWildCards, DeriveDataTypeable, FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings, RecordWildCards, DeriveDataTypeable, FlexibleInstances #-}
{-|
Generate several common kinds of report from a journal, as \"*Report\" -
@ -18,9 +18,9 @@ module Hledger.Reports (
module Hledger.Reports.MultiBalanceReports,
module Hledger.Reports.BudgetReport,
-- module Hledger.Reports.BalanceHistoryReport,
-- * Tests
tests_Hledger_Reports
tests_Hledger_Reports,
easytests_Reports
)
where
@ -36,11 +36,13 @@ import Hledger.Reports.BudgetReport
import Hledger.Utils.Test
tests_Hledger_Reports = TestList $
-- ++ tests_isInterestingIndented
[
tests_Hledger_Reports_ReportOptions,
tests_Hledger_Reports_EntriesReport,
tests_Hledger_Reports_PostingsReport,
tests_Hledger_Reports_BalanceReport,
tests_Hledger_Reports_MultiBalanceReport
]
easytests_Reports = tests "Reports" [
easytests_ReportOptions
]

View File

@ -1,10 +1,11 @@
{-# LANGUAGE RecordWildCards, DeriveDataTypeable #-}
{-|
Options common to most hledger reports.
-}
{-# LANGUAGE OverloadedStrings, RecordWildCards, DeriveDataTypeable #-}
module Hledger.Reports.ReportOptions (
ReportOpts(..),
BalanceType(..),
@ -32,7 +33,7 @@ module Hledger.Reports.ReportOptions (
specifiedStartDate,
specifiedEndDate,
tests_Hledger_Reports_ReportOptions
easytests_ReportOptions
)
where
@ -51,7 +52,7 @@ import Text.Megaparsec.Error
import Hledger.Data
import Hledger.Query
import Hledger.Utils
import Hledger.Utils hiding (is)
type FormatStr = String
@ -371,21 +372,6 @@ queryFromOptsOnly _d ReportOpts{..} = simplifyQuery flagsq
++ [Or $ map StatusQ statuses_]
++ (maybe [] ((:[]) . Depth) depth_)
tests_queryFromOpts = [
"queryFromOpts" ~: do
assertEqual "" Any (queryFromOpts nulldate defreportopts)
assertEqual "" (Acct "a") (queryFromOpts nulldate defreportopts{query_="a"})
assertEqual "" (Desc "a a") (queryFromOpts nulldate defreportopts{query_="desc:'a a'"})
assertEqual "" (Date $ mkdatespan "2012/01/01" "2013/01/01")
(queryFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01")
,query_="date:'to 2013'"
})
assertEqual "" (Date2 $ mkdatespan "2012/01/01" "2013/01/01")
(queryFromOpts nulldate defreportopts{query_="date2:'in 2012'"})
assertEqual "" (Or [Acct "a a", Acct "'b"])
(queryFromOpts nulldate defreportopts{query_="'a a' 'b"})
]
-- | Convert report options and arguments to query options.
queryOptsFromOpts :: Day -> ReportOpts -> [QueryOpt]
queryOptsFromOpts d ReportOpts{..} = flagsqopts ++ argsqopts
@ -393,15 +379,6 @@ queryOptsFromOpts d ReportOpts{..} = flagsqopts ++ argsqopts
flagsqopts = []
argsqopts = snd $ parseQuery d (T.pack query_)
tests_queryOptsFromOpts = [
"queryOptsFromOpts" ~: do
assertEqual "" [] (queryOptsFromOpts nulldate defreportopts)
assertEqual "" [] (queryOptsFromOpts nulldate defreportopts{query_="a"})
assertEqual "" [] (queryOptsFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01")
,query_="date:'to 2013'"
})
]
-- | The effective report span is the start and end dates specified by
-- options or queries, or otherwise the earliest and latest transaction or
-- posting dates in the journal. If no dates are specified by options/queries
@ -441,7 +418,29 @@ specifiedStartDate ropts = fst <$> specifiedStartEndDates ropts
specifiedEndDate :: ReportOpts -> IO (Maybe Day)
specifiedEndDate ropts = snd <$> specifiedStartEndDates ropts
-- tests
is :: (Eq a, Show a, HasCallStack) => a -> a -> Test ()
is = flip expectEq'
easytests_ReportOptions = tests "ReportOptions" [
tests "queryFromOpts" [
(queryFromOpts nulldate defreportopts) `is` Any
,(queryFromOpts nulldate defreportopts{query_="a"}) `is` (Acct "a")
,(queryFromOpts nulldate defreportopts{query_="desc:'a a'"}) `is` (Desc "a a")
,(queryFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01"),query_="date:'to 2013'" })
`is` (Date $ mkdatespan "2012/01/01" "2013/01/01")
,(queryFromOpts nulldate defreportopts{query_="date2:'in 2012'"}) `is` (Date2 $ mkdatespan "2012/01/01" "2013/01/01")
,(queryFromOpts nulldate defreportopts{query_="'a a' 'b"}) `is` (Or [Acct "a a", Acct "'b"])
]
,tests "queryOptsFromOpts" [
(queryOptsFromOpts nulldate defreportopts) `is` []
,(queryOptsFromOpts nulldate defreportopts{query_="a"}) `is` []
,(queryOptsFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01")
,query_="date:'to 2013'"
})
`is` []
]
]
tests_Hledger_Reports_ReportOptions = TestList $
tests_queryFromOpts
++ tests_queryOptsFromOpts