42 lines
1.7 KiB
Clojure
42 lines
1.7 KiB
Clojure
(ns parse-test
|
|
(:require [parse]
|
|
[clojure.string :as str]
|
|
[clojure.test :refer [deftest is]]))
|
|
|
|
(deftest test-parse
|
|
(let [transaction (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:FR:Check2721 -206.51 USD
|
|
")
|
|
expected '[{: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:FR:Check2721" :amount -206.51M :currency "USD"})}]]
|
|
(is (= (parse/parse transaction) expected))))
|