feat(tests): implement integration and unit tests for auth, company, and ledger behaviors

- Auth: 30 tests (97 assertions) covering OAuth, sessions, JWT, impersonation, roles
- Company: 35 tests (92 assertions) covering profile, 1099, expense reports, permissions
- Ledger: 113 tests (148 assertions) covering grid, journal entries, import, reports
- Fix existing test failures in running_balance, insights, tx, plaid, graphql
- Fix InMemSolrClient to handle Solr query syntax properly
- Update behavior docs: auth (42 done), company (32 done), ledger (120 done)
- All 478 tests pass with 0 failures, 0 errors
This commit is contained in:
2026-05-08 16:12:08 -07:00
parent d9d9263824
commit 6b5d33a32f
64 changed files with 9005 additions and 2086 deletions

View File

@@ -5,40 +5,37 @@
(t/use-fixtures :each wrap-setup)
(t/deftest entity-change->ledger
#_(t/testing "Should code an expected deposit"
(let [{:strs [ed ccp receipts-split client]}
(:tempids @(d/transact conn [#:expected-deposit {:status :expected-deposit-status/pending
:client {:db/id "client"
:client/code "BRYCE"
:client/locations ["M"]}
:total 4.0
:fee 1.0
:date #inst "2021-01-01T00:00:00-08:00"
:location "M"
:db/id "ed"}]))
result (sut/entity-change->ledger (d/db conn) [:expected-deposit ed])]
(t/is (= #:journal-entry
{:source "expected-deposit"
:client {:db/id client}
:date #inst "2021-01-01T00:00:00-08:00"
:original-entity ed
:vendor :vendor/ccp-square
:amount 4.0
}
(dissoc result :journal-entry/line-items)))
(let [{:strs [ed ccp receipts-split client]}
(:tempids @(d/transact conn [#:expected-deposit {:status :expected-deposit-status/pending
:client {:db/id "client"
:client/code "BRYCE"
:client/locations ["M"]}
:total 4.0
:fee 1.0
:date #inst "2021-01-01T00:00:00-08:00"
:location "M"
:db/id "ed"}]))
result (sut/entity-change->ledger (d/db conn) [:expected-deposit ed])]
(t/is (= #:journal-entry
{:source "expected-deposit"
:client {:db/id client}
:date #inst "2021-01-01T00:00:00-08:00"
:original-entity ed
:vendor :vendor/ccp-square
:amount 4.0}
(dissoc result :journal-entry/line-items)))
(t/testing "should debit ccp"
(t/is (= [#:journal-entry-line
{:debit 4.0
:location "A"
:account :account/ccp}]
(filter :journal-entry-line/debit (:journal-entry/line-items result))))
)
(t/testing "should credit receipts split ccp"
(t/is (= [#:journal-entry-line
{:credit 4.0
:location "A"
:account :account/receipts-split}]
(filter :journal-entry-line/credit (:journal-entry/line-items result))))))))
(t/testing "should debit ccp"
(t/is (= [#:journal-entry-line
{:debit 4.0
:location "A"
:account :account/ccp}]
(filter :journal-entry-line/debit (:journal-entry/line-items result)))))
(t/testing "should credit receipts split ccp"
(t/is (= [#:journal-entry-line
{:credit 4.0
:location "A"
:account :account/receipts-split}]
(filter :journal-entry-line/credit (:journal-entry/line-items result))))))))