diff --git a/test/import_test.clj b/test/import_test.clj index 1cd6670..5999611 100644 --- a/test/import_test.clj +++ b/test/import_test.clj @@ -8,14 +8,54 @@ [clojure.test :as t :refer [deftest is are]])) +;; Run all our functions over two slightly different data examples. 2024 uses +;; "Liability" where 2025 uses "Liability Expense". (def paychex-csv-2024 (->> "example-paychex-pay-item-details-2024.csv" clojure.java.io/resource import/read-csv)) - (def paychex-csv-2025 (->> "example-paychex-pay-item-details-2025.csv" clojure.java.io/resource import/read-csv)) +(deftest render-transaction + (let [transaction '{:date "DATE" + :payee "Paychex" + :desc "Monthly Payroll - PERIOD - Fee" + :meta + {:program "Conservancy:Payroll" + :project "Conservancy" + :receipt "TODO-FEES-RECEIPT" + :invoice "TODO-FEES-INVOICE" + :approval + "Financial/Employment-Records/memo-re-board-approval-of-payroll.txt" + :tax-implication "USA-Corporation"} + :postings + ({:account "Expenses:Payroll:Fees" + :amount 103.26M + :currency "USD" + :meta {:entity "Citizen-Jack"}} + {:account "Expenses:Payroll:Fees" + :amount 103.25M + :currency "USD" + :meta {:entity "Citizen-Jill"}} + {:account "Assets:Citizens:Check1273" :amount -206.51M :currency "USD"})} + actual (import/render-transaction transaction) + expected (str/triml " +DATE txn \"Paychex\" \"Monthly Payroll - PERIOD - Fee\" + program: \"Conservancy:Payroll\" + project: \"Conservancy\" + receipt: \"TODO-FEES-RECEIPT\" + invoice: \"TODO-FEES-INVOICE\" + approval: \"Financial/Employment-Records/memo-re-board-approval-of-payroll.txt\" + tax-implication: \"USA-Corporation\" + Expenses:Payroll:Fees 103.26 USD + entity: \"Citizen-Jack\" + Expenses:Payroll:Fees 103.25 USD + entity: \"Citizen-Jill\" + Assets:Citizens:Check1273 -206.51 USD +")] + (is (= actual expected)))) + (deftest net-pay (let [expected '[{:date "DATE" :desc "Monthly Payroll - PERIOD - Net Pay" @@ -358,44 +398,5 @@ paychex-csv-2024 paychex-csv-2025))) -(deftest render-transaction - (let [transaction '{:date "DATE" - :payee "Paychex" - :desc "Monthly Payroll - PERIOD - Fee" - :meta - {:program "Conservancy:Payroll" - :project "Conservancy" - :receipt "TODO-FEES-RECEIPT" - :invoice "TODO-FEES-INVOICE" - :approval - "Financial/Employment-Records/memo-re-board-approval-of-payroll.txt" - :tax-implication "USA-Corporation"} - :postings - ({:account "Expenses:Payroll:Fees" - :amount 103.26M - :currency "USD" - :meta {:entity "Citizen-Jack"}} - {:account "Expenses:Payroll:Fees" - :amount 103.25M - :currency "USD" - :meta {:entity "Citizen-Jill"}} - {:account "Assets:Citizens:Check1273" :amount -206.51M :currency "USD"})} - actual (import/render-transaction transaction) - expected (str/triml " -DATE txn \"Paychex\" \"Monthly Payroll - PERIOD - Fee\" - program: \"Conservancy:Payroll\" - project: \"Conservancy\" - receipt: \"TODO-FEES-RECEIPT\" - invoice: \"TODO-FEES-INVOICE\" - approval: \"Financial/Employment-Records/memo-re-board-approval-of-payroll.txt\" - tax-implication: \"USA-Corporation\" - Expenses:Payroll:Fees 103.26 USD - entity: \"Citizen-Jack\" - Expenses:Payroll:Fees 103.25 USD - entity: \"Citizen-Jill\" - Assets:Citizens:Check1273 -206.51 USD -")] - (is (= actual expected)))) - (comment (t/run-all-tests))