Files
integreat/test/clj/auto_ap/graphql.clj
2019-05-07 18:18:57 -07:00

35 lines
1.6 KiB
Clojure

(ns test.auto-ap.graphql
(:require [auto-ap.graphql :as sut]
[venia.core :as v]
[clojure.test :as t :refer [deftest is testing]]))
(deftest query
(testing "ledger"
(testing "it should find ledger entries"
(let [result (:ledger-page (:data (sut/query nil "{ ledger_page(client_id: null) { count, start, journal_entries { id } }}")))]
(is (int? (:count result)))
(is (int? (:start result)))
(is (seqable? (:journal-entries result))))))
(testing "transaction-rules"
(testing "it should find rules"
(let [result (-> (sut/query nil "{ transaction_rule_page(client_id: null) { count, start, transaction_rules { id } }}")
:data
:transaction-rule-page)]
(is (int? (:count result)))
(is (int? (:start result)))
(is (seqable? (:transaction-rules result)))))
(testing "it should add rules"
(let [q (v/graphql-query {:venia/operation {:operation/type :mutation
:operation/name "UpsertTransactionRule"}
:venia/queries [{:query/data (sut/->graphql [:upsert-transaction-rule
{:transaction-rule {:description "123"}}
[:id :description]])}]})
result (-> (sut/query nil q)
:data
:upsert-transaction-rule)]
(is (= "123" (:description result)))
(is (:id result))))))