diff --git a/test/clj/auto_ap/ssr/admin/transaction_rules_test.clj b/test/clj/auto_ap/ssr/admin/transaction_rules_test.clj index 0b37c6fb..f5e66eb3 100644 --- a/test/clj/auto_ap/ssr/admin/transaction_rules_test.clj +++ b/test/clj/auto_ap/ssr/admin/transaction_rules_test.clj @@ -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 ;; ============================================