(ns auto-ap.integration.graphql.vendors (:require [auto-ap.graphql.vendors :as sut2] [auto-ap.datomic :refer [uri conn]] [auto-ap.datomic.migrate :as m] [clojure.test :as t :refer [deftest is testing use-fixtures]] [datomic.api :as d] [clj-time.core :as time])) (defn wrap-setup [f] (with-redefs [auto-ap.datomic/uri "datomic:mem://datomic-transactor:4334/invoice"] (d/create-database uri) (with-redefs [auto-ap.datomic/conn (d/connect uri)] (m/migrate conn) (f) (d/release conn) (d/delete-database uri)))) (defn admin-token [] {:user "TEST ADMIN" :exp (time/plus (time/now) (time/days 1)) :user/role "admin" :user/name "TEST ADMIN"}) #_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]} (defn user-token [client-id] {:user "TEST USER" :exp (time/plus (time/now) (time/days 1)) :user/role "user" :user/name "TEST USER" :user/clients [{:db/id client-id}]}) (use-fixtures :each wrap-setup) (deftest vendors (testing "vendors" (let [{:strs [vendor]} (:tempids @(d/transact (d/connect uri) [{:vendor/name "Test" :db/id "vendor"} {:db/id "client" :client/code "DEF"}]))] (testing "it should find vendors" (let [result (sut2/get-graphql {:id (admin-token)} {} {})] (is ((into #{} (map :id (:vendors result))) vendor )))) )))