print checks tests.

This commit is contained in:
2023-03-25 15:34:26 -07:00
parent 7562213e97
commit e6a2626312
2 changed files with 116 additions and 122 deletions

View File

@@ -4,18 +4,12 @@
[clojure.tools.logging :as log] [clojure.tools.logging :as log]
[clojure.edn :as edn] [clojure.edn :as edn]
[config.core :refer [env]] [config.core :refer [env]]
<<<<<<< HEAD
[datomic.client.api :as dc] [datomic.client.api :as dc]
[com.brunobonacci.mulog :as mu] [com.brunobonacci.mulog :as mu]
[mount.core :as mount] [mount.core :as mount]
[clojure.java.io :as io]) [clojure.java.io :as io])
(:import (:import
(java.util UUID))) (java.util UUID)))
=======
[datomic.api :as d]
[mount.core :as mount]
[com.brunobonacci.mulog :as mu]))
>>>>>>> master
(def uri (:datomic-url env)) (def uri (:datomic-url env))

View File

@@ -6,7 +6,7 @@
[auto-ap.integration.util :refer [admin-token user-token wrap-setup]] [auto-ap.integration.util :refer [admin-token user-token wrap-setup]]
[clojure.test :as t :refer [deftest is testing use-fixtures]] [clojure.test :as t :refer [deftest is testing use-fixtures]]
[com.brunobonacci.mulog :as mu] [com.brunobonacci.mulog :as mu]
[datomic.api :as d])) [datomic.client.api :as d]))
(use-fixtures :each wrap-setup) (use-fixtures :each wrap-setup)
@@ -26,7 +26,7 @@
(deftest get-payment-page (deftest get-payment-page
(testing "Should list payments" (testing "Should list payments"
(let [{{:strs [bank-id check-id client-id]} :tempids} @(d/transact conn [{:bank-account/code "bank" (let [{{:strs [bank-id check-id client-id]} :tempids} (d/transact conn {:tx-data [{:bank-account/code "bank"
:db/id "bank-id"} :db/id "bank-id"}
{:client/code "client" {:client/code "client"
:db/id "client-id"} :db/id "client-id"}
@@ -38,7 +38,7 @@
:payment/amount 123.50 :payment/amount 123.50
:payment/paid-to "Someone" :payment/paid-to "Someone"
:payment/status :payment-status/pending :payment/status :payment-status/pending
:payment/date #inst "2022-01-01"}])] :payment/date #inst "2022-01-01"}]})]
(is (= [ {:amount 123.5, (is (= [ {:amount 123.5,
:type :check, :type :check,
:bank_account {:id bank-id, :code "bank"}, :bank_account {:id bank-id, :code "bank"},
@@ -81,84 +81,84 @@
(deftest void-payment (deftest void-payment
(testing "Should void payments" (testing "Should void payments"
(let [{{:strs [bank-id check-id client-id]} :tempids} @(d/transact conn [{:bank-account/code "bank" (let [{{:strs [bank-id check-id client-id]} :tempids} (d/transact conn {:tx-data [{:bank-account/code "bank"
:db/id "bank-id"} :db/id "bank-id"}
{:client/code "client" {:client/code "client"
:db/id "client-id"} :db/id "client-id"}
(sample-payment :db/id "check-id")])] (sample-payment :db/id "check-id")]})]
(sut/void-payment {:id (admin-token)} {:payment_id check-id} nil) (sut/void-payment {:id (admin-token)} {:payment_id check-id} nil)
(is (= :payment-status/voided (-> (d/pull (d/db conn) [{:payment/status [:db/ident ]}] check-id) (is (= :payment-status/voided (-> (d/pull (d/db conn) [{:payment/status [:db/ident ]}] check-id)
:payment/status :payment/status
:db/ident))))) :db/ident)))))
(testing "Should not void payments if account is locked" (testing "Should not void payments if account is locked"
(let [{{:strs [check-id]} :tempids} @(d/transact conn [{:bank-account/code "bank" (let [{{:strs [check-id]} :tempids} (d/transact conn {:tx-data [{:bank-account/code "bank"
:db/id "bank-id"} :db/id "bank-id"}
{:client/code "client" {:client/code "client"
:db/id "client-id" :db/id "client-id"
:client/locked-until #inst "2030-01-01"} :client/locked-until #inst "2030-01-01"}
(sample-payment :payment/client "client-id" (sample-payment :payment/client "client-id"
:db/id "check-id" :db/id "check-id"
:payment/date #inst "2020-01-01")])] :payment/date #inst "2020-01-01")]})]
(is (thrown? Exception (sut/void-payment {:id (admin-token)} {:payment_id check-id} nil)))))) (is (thrown? Exception (sut/void-payment {:id (admin-token)} {:payment_id check-id} nil))))))
(deftest void-payments (deftest void-payments
(testing "bulk void" (testing "bulk void"
(testing "Should bulk void payments if account is not locked" (testing "Should bulk void payments if account is not locked"
(let [{{:strs [check-id]} :tempids} @(d/transact conn [{:bank-account/code "bank" (let [{{:strs [check-id]} :tempids} (d/transact conn {:tx-data [{:bank-account/code "bank"
:db/id "bank-id"} :db/id "bank-id"}
{:client/code "client-new" {:client/code "client-new"
:db/id "client-id"} :db/id "client-id"}
(sample-payment :payment/client "client-id" (sample-payment :payment/client "client-id"
:db/id "check-id" :db/id "check-id"
:payment/date #inst "2020-01-01")])] :payment/date #inst "2020-01-01")]})]
(sut/void-payments {:id (admin-token)} {:filters {:date_range {:start #inst "2000-01-01"}}} nil) (sut/void-payments {:id (admin-token)} {:filters {:date_range {:start #inst "2000-01-01"}}} nil)
(is (= :payment-status/voided (-> (d/pull (d/db conn) '[{:payment/status [:db/ident]}] check-id) (is (= :payment-status/voided (-> (d/pull (d/db conn) '[{:payment/status [:db/ident]}] check-id)
:payment/status :payment/status
:db/ident))))) :db/ident)))))
(testing "Should only void a payment if it matches filter criteria" (testing "Should only void a payment if it matches filter criteria"
(let [{{:strs [check-id]} :tempids} @(d/transact conn [{:bank-account/code "bank" (let [{{:strs [check-id]} :tempids} (d/transact conn {:tx-data [{:bank-account/code "bank"
:db/id "bank-id"} :db/id "bank-id"}
{:client/code "client-new" {:client/code "client-new"
:db/id "client-id"} :db/id "client-id"}
(sample-payment :payment/client "client-id" (sample-payment :payment/client "client-id"
:db/id "check-id" :db/id "check-id"
:payment/date #inst "2020-01-01")])] :payment/date #inst "2020-01-01")]})]
(sut/void-payments {:id (admin-token)} {:filters {:date_range {:start #inst "2022-01-01"}}} nil) (sut/void-payments {:id (admin-token)} {:filters {:date_range {:start #inst "2022-01-01"}}} nil)
(is (= :payment-status/pending (-> (d/pull (d/db conn) '[{:payment/status [:db/ident]}] check-id) (is (= :payment-status/pending (-> (d/pull (d/db conn) '[{:payment/status [:db/ident]}] check-id)
:payment/status :payment/status
:db/ident))))) :db/ident)))))
(testing "Should not bulk void payments if account is locked" (testing "Should not bulk void payments if account is locked"
(let [{{:strs [check-id]} :tempids} @(d/transact conn [{:bank-account/code "bank" (let [{{:strs [check-id]} :tempids} (d/transact conn {:tx-data [{:bank-account/code "bank"
:db/id "bank-id"} :db/id "bank-id"}
{:client/code "client" {:client/code "client"
:db/id "client-id" :db/id "client-id"
:client/locked-until #inst "2030-01-01"} :client/locked-until #inst "2030-01-01"}
(sample-payment :payment/client "client-id" (sample-payment :payment/client "client-id"
:db/id "check-id" :db/id "check-id"
:payment/date #inst "2020-01-01")])] :payment/date #inst "2020-01-01")]})]
(sut/void-payments {:id (admin-token)} {:filters {:date_range {:start #inst "2000-01-01"}}} nil) (sut/void-payments {:id (admin-token)} {:filters {:date_range {:start #inst "2000-01-01"}}} nil)
(is (= :payment-status/pending (-> (d/pull (d/db conn) '[{:payment/status [:db/ident]}] check-id) (is (= :payment-status/pending (-> (d/pull (d/db conn) '[{:payment/status [:db/ident]}] check-id)
:payment/status :payment/status
:db/ident))))) :db/ident)))))
(testing "Only admins should be able to bulk void" (testing "Only admins should be able to bulk void"
(let [{{:strs [check-id]} :tempids} @(d/transact conn [{:bank-account/code "bank" (let [{{:strs [check-id]} :tempids} (d/transact conn {:tx-data [{:bank-account/code "bank"
:db/id "bank-id"} :db/id "bank-id"}
{:client/code "client" {:client/code "client"
:db/id "client-id"} :db/id "client-id"}
(sample-payment :payment/client "client-id" (sample-payment :payment/client "client-id"
:db/id "check-id" :db/id "check-id"
:payment/date #inst "2020-01-01")])] :payment/date #inst "2020-01-01")]})]
(is (thrown? Exception (sut/void-payments {:id (user-token)} {:filters {:date_range {:start #inst "2000-01-01"}}} nil))))))) (is (thrown? Exception (sut/void-payments {:id (user-token)} {:filters {:date_range {:start #inst "2000-01-01"}}} nil)))))))
(deftest print-checks (deftest print-checks
(testing "Print checks" (testing "Print checks"
(testing "Should allow 'printing' cash checks" (testing "Should allow 'printing' cash checks"
(let [{{:strs [invoice-id client-id bank-id]} :tempids} @(d/transact conn [{:client/code "client" (let [{{:strs [invoice-id client-id bank-id]} :tempids} (d/transact conn {:tx-data [{:client/code "client"
:db/id "client-id" :db/id "client-id"
:client/locked-until #inst "2030-01-01" :client/locked-until #inst "2030-01-01"
:client/bank-accounts [{:bank-account/code "bank" :client/bank-accounts [{:bank-account/code "bank"
@@ -177,7 +177,7 @@
:invoice/outstanding-balance 30.0 :invoice/outstanding-balance 30.0
:invoice/expense-accounts [{:db/id "invoice-expense-account" :invoice/expense-accounts [{:db/id "invoice-expense-account"
:invoice-expense-account/account "account-id" :invoice-expense-account/account "account-id"
:invoice-expense-account/amount 30.0}]}])] :invoice-expense-account/amount 30.0}]}]})]
(let [paid-invoice (-> (sut/print-checks {:id (admin-token)} {:invoice_payments [{:invoice_id invoice-id (let [paid-invoice (-> (sut/print-checks {:id (admin-token)} {:invoice_payments [{:invoice_id invoice-id
:amount 30.0}] :amount 30.0}]
:client_id client-id :client_id client-id
@@ -206,7 +206,7 @@
:id)))))))) :id))))))))
(testing "Should allow 'printing' debit checks" (testing "Should allow 'printing' debit checks"
(let [{{:strs [invoice-id client-id bank-id]} :tempids} @(d/transact conn [{:client/code "client" (let [{{:strs [invoice-id client-id bank-id]} :tempids} (d/transact conn {:tx-data [{:client/code "client"
:db/id "client-id" :db/id "client-id"
:client/bank-accounts [{:bank-account/code "bank" :client/bank-accounts [{:bank-account/code "bank"
:db/id "bank-id"}]} :db/id "bank-id"}]}
@@ -224,7 +224,7 @@
:invoice/outstanding-balance 50.0 :invoice/outstanding-balance 50.0
:invoice/expense-accounts [{:db/id "invoice-expense-account" :invoice/expense-accounts [{:db/id "invoice-expense-account"
:invoice-expense-account/account "account-id" :invoice-expense-account/account "account-id"
:invoice-expense-account/amount 50.0}]}])] :invoice-expense-account/amount 50.0}]}]})]
(let [paid-invoice (-> (sut/print-checks {:id (admin-token)} {:invoice_payments [{:invoice_id invoice-id (let [paid-invoice (-> (sut/print-checks {:id (admin-token)} {:invoice_payments [{:invoice_id invoice-id
:amount 50.0}] :amount 50.0}]
:client_id client-id :client_id client-id
@@ -253,7 +253,7 @@
:id))))))))) :id)))))))))
(testing "Should allow printing checks" (testing "Should allow printing checks"
(let [{{:strs [invoice-id client-id bank-id]} :tempids} @(d/transact conn [{:client/code "client" (let [{{:strs [invoice-id client-id bank-id]} :tempids} (d/transact conn {:tx-data [{:client/code "client"
:db/id "client-id" :db/id "client-id"
:client/bank-accounts [{:bank-account/code "bank" :client/bank-accounts [{:bank-account/code "bank"
:bank-account/type :bank-account-type/check :bank-account/type :bank-account-type/check
@@ -274,7 +274,7 @@
:invoice/outstanding-balance 150.0 :invoice/outstanding-balance 150.0
:invoice/expense-accounts [{:db/id "invoice-expense-account" :invoice/expense-accounts [{:db/id "invoice-expense-account"
:invoice-expense-account/account "account-id" :invoice-expense-account/account "account-id"
:invoice-expense-account/amount 150.0}]}])] :invoice-expense-account/amount 150.0}]}]})]
(let [result (-> (sut/print-checks {:id (admin-token)} {:invoice_payments [{:invoice_id invoice-id (let [result (-> (sut/print-checks {:id (admin-token)} {:invoice_payments [{:invoice_id invoice-id
:amount 150.0}] :amount 150.0}]
:client_id client-id :client_id client-id