(ns auto-ap.import.plaid-test
  (:require [auto-ap.import.plaid :as sut]
            [clojure.test :as t]))

(def base-transaction {:name "This is a bank transaction text"
                       :transaction_id "123"
                       :account {:type "debit"}
                       :amount 123.45
                       :date "2023-01-01"})

(t/deftest plaid->transaction 

  
  (t/testing "Should assign a plaid merchant if a merchant is found"
    (t/is (= "Home Depot" (-> (sut/plaid->transaction (assoc base-transaction
                                                             :merchant_name "Home Depot")
                                                      {})
                              :transaction/plaid-merchant
                              :plaid-merchant/name))))
  (t/testing "Should assign a default vendor if a merchant is found, with a matching vendor lookup"
    (t/is (= 12354 (-> (sut/plaid->transaction (assoc base-transaction
                                                             :merchant_name "Home Depot")
                                                      {"Home Depot" 12354})
                              :transaction/default-vendor)))))
