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:
@@ -119,9 +119,15 @@
|
|||||||
rule-id (get tempids "rule-to-delete")
|
rule-id (get tempids "rule-to-delete")
|
||||||
request {:identity (admin-token)
|
request {:identity (admin-token)
|
||||||
:route-params {:db/id rule-id}}]
|
: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
|
;; When: Call delete route
|
||||||
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/delete) request)]
|
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/delete) request)]
|
||||||
;; Then: Rule is deleted
|
;; Then: Rule is deleted
|
||||||
|
|
||||||
(is (= 200 (:status response)))
|
(is (= 200 (:status response)))
|
||||||
;; And: Rule no longer exists in database
|
;; And: Rule no longer exists in database
|
||||||
(let [db (dc/db conn)
|
(let [db (dc/db conn)
|
||||||
@@ -140,6 +146,43 @@
|
|||||||
;; Then: Returns response
|
;; Then: Returns response
|
||||||
(is (map? 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
|
;; Phase 5: CRUD and Security Tests
|
||||||
;; ============================================
|
;; ============================================
|
||||||
|
|||||||
Reference in New Issue
Block a user