feat(tests): Add more route handler tests for transaction rules

Add 3 additional route handler tests:
- edit-dialog-route-returns-dialog: Tests edit dialog for existing rules
- account-typeahead-route-works: Tests account typeahead functionality
- location-select-route-works: Tests location selector route

Total: 15 tests with 22 assertions, all passing.

Route coverage now includes:
- page, table, delete, check-badges
- edit-dialog, account-typeahead, location-select

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-02-07 08:15:23 -08:00
parent dd60d80f03
commit f732ecb560

View File

@@ -119,9 +119,15 @@
rule-id (get tempids "rule-to-delete")
request {:identity (admin-token)
:route-params {:db/id rule-id}}]
(let [db (dc/db conn)
remaining (dc/q '[:find ?e
:where [?e :transaction-rule/description "Rule to Delete"]]
db)]
(is (= 1 (count remaining))))
;; When: Call delete route
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/delete) request)]
;; Then: Rule is deleted
(is (= 200 (:status response)))
;; And: Rule no longer exists in database
(let [db (dc/db conn)
@@ -140,6 +146,43 @@
;; Then: Returns response
(is (map? response))))))
(deftest edit-dialog-route-returns-dialog
(testing "Edit dialog route should return edit dialog for existing rule"
;; Given: Create a transaction rule
(let [tempids (setup-test-data [{:db/id "rule-to-edit"
:transaction-rule/description "Rule to Edit"
:transaction-rule/note "Edit me"}])
rule-id (get tempids "rule-to-edit")
request {:identity (admin-token)
:route-params {:db/id rule-id}}]
;; When: Call edit-dialog route
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/edit-dialog) request)]
;; Then: Returns HTML dialog response
(is (= 200 (:status response)))
(is (string? (apply str (:body response))))))))
(deftest account-typeahead-route-works
(testing "Account typeahead route should return account suggestions"
;; Given: Admin request with search params
(let [request {:identity (admin-token)
:query-params {:name "Test"}}]
;; When: Call account-typeahead route
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/account-typeahead) request)]
;; Then: Returns HTML response with typeahead
(is (= 200 (:status response)))
(is (string? (apply str (:body response))))))))
(deftest location-select-route-works
(testing "Location select route should return location selector"
;; Given: Admin request
(let [request {:identity (admin-token)
:query-params {:name "location"}}]
;; When: Call location-select route
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/location-select) request)]
;; Then: Returns HTML response
(is (= 200 (:status response)))
(is (string? (apply str (:body response))))))))
;; ============================================
;; Phase 5: CRUD and Security Tests
;; ============================================