Bulk coding works on multiple clients

This commit is contained in:
2023-09-14 21:48:00 -07:00
parent 2454695124
commit 12c676629d
6 changed files with 145 additions and 43 deletions

View File

@@ -123,6 +123,7 @@
(let [transaction-result (sut/transaction->txs (assoc base-transaction
:transaction/description-original "CHECK 10001"
:transaction/check-number 10001
:transaction/amount -30.0)
(dc/pull (dc/db conn ) sut/bank-account-pull bank-account-id)
noop-rule)]

View File

@@ -48,7 +48,8 @@
:transaction/approval-status :transaction-approval-status/approved
:transaction/bank-account "test-bank-account-id")])]
(is (= "Succesfully changed 1 transactions to be unapproved."
(:message (sut/bulk-change-status {:id (admin-token)} {:filters {:client_id test-client-id}
(:message (sut/bulk-change-status {:id (admin-token)
:clients [{:db/id test-client-id}]} {:filters {}
:status :unapproved} nil))))
(is (= :transaction-approval-status/unapproved
(:db/ident (:transaction/approval-status (dc/pull (dc/db conn) '[{:transaction/approval-status [:db/ident]}] transaction-id)))))
@@ -68,9 +69,9 @@
:transaction/bank-account "test-bank-account-id"
:transaction/amount 40.0)])]
(is (= "Successfully coded 1 transactions."
(:message (sut/bulk-code-transactions {:id (admin-token)}
(:message (sut/bulk-code-transactions {:id (admin-token)
:clients [{:db/id test-client-id}]}
{:filters {:client_id test-client-id}
:client_id test-client-id
:vendor test-vendor-id
:approval_status :unapproved
:accounts [{:account_id test-account-id
@@ -87,16 +88,111 @@
:transaction/accounts [:transaction-account/account
:transaction-account/location
:transaction-account/amount]}]
transaction-id))))))
transaction-id)))
(testing "for more than one client"
(let [{:strs [transaction-id-1
transaction-id-2
test-client-id-2
test-client-id]} (setup-test-data [
(test-transaction :db/id "transaction-id-1"
:transaction/client "test-client-id"
:transaction/bank-account "test-bank-account-id"
:transaction/amount 40.0)
(test-transaction :db/id "transaction-id-2"
:transaction/client "test-client-id-2"
:transaction/bank-account "test-bank-account-id-2"
:transaction/amount 40.0)
(test-client :db/id "test-client-id-2"
:client/locations ["GR"])
(test-bank-account :db/id "test-bank-account-id-2")])]
(is (= "Successfully coded 2 transactions."
(:message (sut/bulk-code-transactions {:id (admin-token)
:clients [{:db/id test-client-id}
{:db/id test-client-id-2}]}
{:filters {}
:vendor test-vendor-id
:approval_status :unapproved
:accounts [{:account_id test-account-id
:location "Shared"
:percentage 1.0}]} nil))))
(is (= #:transaction{:vendor {:db/id test-vendor-id}
:approval-status {:db/ident :transaction-approval-status/unapproved}
:accounts [#:transaction-account{:account {:db/id test-account-id}
:location "DT"
:amount 40.0}]}
(dc/pull (dc/db conn) '[:transaction/vendor
{:transaction/approval-status [:db/ident]
:transaction/accounts [:transaction-account/account
:transaction-account/location
:transaction-account/amount]}]
transaction-id-1)))
(is (= #:transaction{:vendor {:db/id test-vendor-id}
:approval-status {:db/ident :transaction-approval-status/unapproved}
:accounts [#:transaction-account{:account {:db/id test-account-id}
:location "GR"
:amount 40.0}]}
(dc/pull (dc/db conn) '[:transaction/vendor
{:transaction/approval-status [:db/ident]
:transaction/accounts [:transaction-account/account
:transaction-account/location
:transaction-account/amount]}]
transaction-id-2))))
(testing "should reject a location that doesnt exist"
(let [{:strs [test-client-id-1
test-client-id-2]} (setup-test-data [
(test-transaction :db/id "transaction-id-1"
:transaction/client "test-client-id-1"
:transaction/bank-account "test-bank-account-id"
:transaction/amount 40.0)
(test-transaction :db/id "transaction-id-2"
:transaction/client "test-client-id-2"
:transaction/bank-account "test-bank-account-id-2"
:transaction/amount 40.0)
(test-client :db/id "test-client-id-1"
:client/locations ["DT" "BOTH"])
(test-client :db/id "test-client-id-2"
:client/locations ["GR" "BOTH"])
(test-bank-account :db/id "test-bank-account-id-2")])]
(is (thrown? Exception (sut/bulk-code-transactions {:id (admin-token)
:clients [{:db/id test-client-id}
{:db/id test-client-id-2}]}
{:filters {}
:vendor test-vendor-id
:approval_status :unapproved
:accounts [{:account_id test-account-id
:location "OG"
:percentage 1.0}]} nil)))
(is (thrown? Exception (sut/bulk-code-transactions {:id (admin-token)
:clients [{:db/id test-client-id}
{:db/id test-client-id-2}]}
{:filters {}
:vendor test-vendor-id
:approval_status :unapproved
:accounts [{:account_id test-account-id
:location "DT"
:percentage 1.0}]} nil)))
(is (sut/bulk-code-transactions {:id (admin-token)
:clients [{:db/id test-client-id-1}
{:db/id test-client-id-2}]}
{:filters {}
:vendor test-vendor-id
:approval_status :unapproved
:accounts [{:account_id test-account-id
:location "BOTH"
:percentage 1.0}]} nil))))))))
(deftest edit-transactions
(testing "Should edit transactions"
(let [{:strs [transaction-id
test-account-id
test-vendor-id]} (setup-test-data [(test-transaction :db/id "transaction-id"
:transaction/client "test-client-id"
:transaction/bank-account "test-bank-account-id"
:transaction/amount 40.0)])]
:transaction/client "test-client-id"
:transaction/bank-account "test-bank-account-id"
:transaction/amount 40.0)])]
(sut/edit-transaction {:id (admin-token)}
{:transaction {:id transaction-id
:vendor_id test-vendor-id