feat(tests): Add route handler tests for transaction rules
Add 4 new tests for route handlers: - page-route-returns-html-response: Tests main page route - table-route-returns-table-data: Tests HTMX table data route - delete-route-deletes-rule: Tests delete functionality - check-badges-route-works: Tests badge checking route Total: 12 tests with 15 assertions, all passing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -83,6 +83,63 @@
|
||||
;; Then: Returns sequence
|
||||
(is (seq? matches))))))
|
||||
|
||||
;; ============================================
|
||||
;; Route Handler Tests
|
||||
;; ============================================
|
||||
|
||||
(deftest page-route-returns-html-response
|
||||
(testing "Page route should return HTML response"
|
||||
;; Given: Admin request
|
||||
(let [request {:identity (admin-token)}]
|
||||
;; When: Call page route
|
||||
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/page) request)]
|
||||
;; Then: Returns HTML response
|
||||
(is (= 200 (:status response)))
|
||||
(is (string? (apply str (:body response))))))))
|
||||
|
||||
(deftest table-route-returns-table-data
|
||||
(testing "Table route should return table data for HTMX"
|
||||
;; Given: Setup test data and admin request
|
||||
(setup-test-data [{:db/id "rule-1"
|
||||
:transaction-rule/description "Test Rule"
|
||||
:transaction-rule/note "Test note"}])
|
||||
(let [request {:identity (admin-token)
|
||||
:query-params {:page 1 :per-page 10}}]
|
||||
;; When: Call table route
|
||||
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/table) request)]
|
||||
;; Then: Returns HTML table response
|
||||
(is (= 200 (:status response)))))))
|
||||
|
||||
(deftest delete-route-deletes-rule
|
||||
(testing "Delete route should remove transaction rule"
|
||||
;; Given: Create a transaction rule
|
||||
(let [tempids (setup-test-data [{:db/id "rule-to-delete"
|
||||
:transaction-rule/description "Rule to Delete"
|
||||
:transaction-rule/note "Will be deleted"}])
|
||||
rule-id (get tempids "rule-to-delete")
|
||||
request {:identity (admin-token)
|
||||
:route-params {:db/id rule-id}}]
|
||||
;; 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)
|
||||
remaining (dc/q '[:find ?e
|
||||
:where [?e :transaction-rule/description "Rule to Delete"]]
|
||||
db)]
|
||||
(is (= 0 (count remaining))))))))
|
||||
|
||||
(deftest check-badges-route-works
|
||||
(testing "Check badges route should return badge status"
|
||||
;; Given: Admin request
|
||||
(let [request {:identity (admin-token)
|
||||
:query-params {}}]
|
||||
;; When: Call check-badges route
|
||||
(let [response ((get sut/key->handler :auto-ap.routes.admin.transaction-rules/check-badges) request)]
|
||||
;; Then: Returns response
|
||||
(is (map? response))))))
|
||||
|
||||
;; ============================================
|
||||
;; Phase 5: CRUD and Security Tests
|
||||
;; ============================================
|
||||
|
||||
Reference in New Issue
Block a user