diff --git a/hledger-lib/Hledger/Reports.hs b/hledger-lib/Hledger/Reports.hs index d2faa1195..b53c3acdc 100644 --- a/hledger-lib/Hledger/Reports.hs +++ b/hledger-lib/Hledger/Reports.hs @@ -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 + ] diff --git a/hledger-lib/Hledger/Reports/ReportOptions.hs b/hledger-lib/Hledger/Reports/ReportOptions.hs index 7e502846a..d6c319dbb 100644 --- a/hledger-lib/Hledger/Reports/ReportOptions.hs +++ b/hledger-lib/Hledger/Reports/ReportOptions.hs @@ -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