Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (def base-tx [
- {:db/id (d/tempid :db.part/user)
- :party/user {:user/email "s@sample.com"}
- :party/document "111.111.111-87"
- :party/documentType :documentType/cpf
- :party/firstName "Pedro"
- :party/lastName "Donati"
- :party/status :partyStatus/active
- :party/type :pf}
- {:db/id (d/tempid :db.part/user)
- :party/user {:user/email "s2@sample.com"}
- :party/document "14.787.266/0001-30"
- :party/documentType :documentType/cnpj
- :party/name "Netflix"
- :party/status :partyStatus/active
- :party/type :pj}
- {:db/id (d/tempid :db.part/tx)
- :audit/channel :main-api}])
- (fact "Test get change history"
- (let [change-mailt (model/update-party-emailq "s@sample.com" "s@google.copi" :main-api)
- change-name (fn [n]
- [[:db/add [:party/document "111.111.111-87"]
- :party/lastName n]])
- dba (-> db (virtual-db base-tx)
- (virtual-db (change-name "Donati2"))
- (virtual-db (change-name "Bimbo2"))
- (virtual-db (change-name "Mathias")))
- name-history-tx (q '[:find ?tx ?customer
- :in $ ?email
- :where [?user :user/email ?email]
- [?customer :party/user ?user]
- [?customer :party/lastName ?lastName ?tx]]
- (d/history dba) "s@sample.com")
- lastNames (map (fn [[tx party]]
- (let [tx-db (d/as-of dba tx)]
- {:inst (-> (d/pull tx-db "[:db/txInstant]" tx) :db/txInstant)
- :tx tx
- :t (d/tx->t tx)
- :lastName (-> (d/pull tx-db "[:party/lastName]" party)
- :party/lastName)}))
- name-history-tx)
- sorted (sort-by :t lastNames)]
- (pprint sorted)
- (first sorted) => (contains {:lastName "Donati"})
- (last sorted) => (contains {:lastName "Mathias"})))
- ;; should assert and print
- ;({:inst #inst "2016-08-26T20:43:20.815-00:00",
- ; :tx 13194139534328,
- ; :t 1016,
- ; :lastName "Donati"}
- ; {:inst #inst "2016-08-26T20:43:20.822-00:00",
- ; :tx 13194139534333,
- ; :t 1021,
- ; :lastName "Donati2"}
- ; {:inst #inst "2016-08-26T20:43:20.823-00:00",
- ; :tx 13194139534334,
- ; :t 1022,
- ; :lastName "Bimbo2"}
- ; {:inst #inst "2016-08-26T20:43:20.823-00:00",
- ; :tx 13194139534335,
- ; :t 1023,
- ; :lastName "Mathias"})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement