WC Tests all pass again after fiddling around with the live system.

This commit is contained in:
Robert C. Martin 2023-05-23 08:53:53 -05:00
parent a0ead65e21
commit 139ca2459c
2 changed files with 54 additions and 50 deletions

View File

@ -1,5 +1,7 @@
(ns more-speech.nostr.event-handlers-spec
(:require [speclj.core :refer :all]
(:require
[more-speech.nostr.util :as util]
[speclj.core :refer :all]
[more-speech.nostr.event-dispatcher :as handlers]
[more-speech.db.gateway :as gateway]
[more-speech.db.in-memory :as in-memory]
@ -52,7 +54,7 @@
(with-redefs
[handlers/handle-text-event (stub :handle-text-event)
handlers/process-event (stub :process-event)
handlers/translate-event (stub :translate-event {:return event})
util/translate-event (stub :translate-event {:return event})
handlers/decrypt-dm-event (stub :decrypt-dm-event {:return event})
handlers/compute-id (stub :compute-id {:return 1})]
(set-mem [:processed-event-ids] {})
@ -68,7 +70,7 @@
(with-redefs
[handlers/handle-text-event (stub :handle-text-event)
handlers/process-event (stub :process-event)
handlers/translate-event (stub :translate-event {:return event})
util/translate-event (stub :translate-event {:return event})
handlers/decrypt-dm-event (stub :decrypt-dm-event {:return event})
handlers/compute-id (stub :compute-id {:return 1})]
(set-mem [:processed-event-ids] {1 #{:first-url}})

View File

@ -1,5 +1,6 @@
(ns more-speech.nostr.zaps-spec
(:require
[clojure.core.async :as async]
[more-speech.bech32 :as bech32]
[more-speech.config :as config]
[more-speech.db.gateway :as gateway]
@ -12,7 +13,6 @@
[more-speech.relay :as relay]
[more-speech.util.fortune-messages :as fortune]
[more-speech.websocket-relay :as ws-relay]
[org.bovinegenius.exploding-fish :as uri]
[speclj.core :refer :all])
(:import (ecdhJava SECP256K1)))
@ -111,6 +111,7 @@
my-pubkey (util/bytes->num (es/get-pub-key (util/num->bytes 32 my-privkey)))
_ (set-mem :pubkey my-pubkey)
_ (set-mem [:keys :private-key] (util/hexify my-privkey))
_ (set-mem [:keys :public-key] (util/hexify my-pubkey))
_ (reset! relays {"relay-r1" {:read :read-all}
"relay-nr" {:read :read-none}
"relay-r2" {:read :read-all}})
@ -231,18 +232,20 @@
(context "wallet-connect"
(it "executes wallet-connect payment"
(set-mem [:keys :wallet-connect] "nostrwalletconnect://info-id?relay=wc-relay-url")
(let [event-index (atom -1)
events [{:content "pay_invoice"} {:kind 23195 :content "{\"result_type\": \"pay_invoice\"}"}]]
(set-mem [:keys :wallet-connect] "nostrwalletconnect://beef?relay=wc-relay-url&secret=dead")
(with-redefs [ws-relay/make (stub :relay-make {:return "some-relay"})
relay/open (stub :relay-open {:return "open-relay"})
relay/send (stub :relay-send)
relay/close (stub :relay-close)
zaps/get-wc-request-event (stub :request-event {:return "request-event"})]
(let [info-promise (promise)]
(deliver info-promise "pay_invoice")
(zaps/zap-by-wallet-connect "event-to-zap" info-promise)
zaps/get-wc-request-event (stub :request-event {:return "request-event"})
async/<!! (stub :read-chan {:invoke (fn [_x] (get events (swap! event-index inc)))})]
(let [event-chan :some-channel]
(zaps/zap-by-wallet-connect "event-to-zap" event-chan)
(should-have-invoked :relay-make {:with ["wc-relay-url" :*]})
(should-have-invoked :relay-open {:with ["some-relay"]})
(should-have-invoked :relay-send {:with ["open-relay" ["REQ" "ms-info" {"kinds" [13194], "authors" ["info-id"]}]]})
(should-have-invoked :relay-send {:with ["open-relay" ["REQ" "ms-info" {"kinds" [13194], "authors" ["beef"]}]]})
(should-have-invoked :request-event {:with ["event-to-zap" :*]})
(should-have-invoked :relay-send {:with ["open-relay" "request-event"]})
(should-have-invoked :relay-close {:with ["open-relay"]})
@ -274,7 +277,6 @@
[_ event] (zaps/compose-wc-request-event recipient-public-key-hex sender-private-key-hex request)]
(should= 23194 (:kind event))
(should= [[:p recipient-public-key-hex]] (filter #(= :p (first %)) (:tags event)))
(should= request (SECP256K1/decrypt inbound-shared-secret (:content event)))
)))
(should= request (SECP256K1/decrypt inbound-shared-secret (:content event)))))))
)
)