diff --git a/src/main/frontend/handler/worker.cljs b/src/main/frontend/handler/worker.cljs index 17fa7048a1..7079e591e9 100644 --- a/src/main/frontend/handler/worker.cljs +++ b/src/main/frontend/handler/worker.cljs @@ -90,7 +90,7 @@ (defn- payload [error] diff --git a/src/test/frontend/handler/worker_test.cljs b/src/test/frontend/handler/worker_test.cljs index 179ad5c070..d7633ecfb7 100644 --- a/src/test/frontend/handler/worker_test.cljs +++ b/src/test/frontend/handler/worker_test.cljs @@ -1,7 +1,8 @@ (ns frontend.handler.worker-test - (:require [cljs.test :refer [deftest is]] + (:require [cljs.test :refer [async deftest is]] [frontend.handler.worker :as worker-handler] - [frontend.state :as state])) + [frontend.state :as state] + [promesa.core :as p])) (deftest handle-message-reports-comlink-worker-throw-with-extra-data-test (let [captured-events (atom []) @@ -42,3 +43,52 @@ (finally (aset js/console "error" orig-console-error) (aset js/console "log" orig-console-log))))) + +(deftest db-worker-ui-request-resolve-passes-request-id-and-result-test + (async done + (let [calls (atom []) + wrapped-worker (fn [qkw & args] + (swap! calls conj [qkw args]) + (p/resolved {:ok true}))] + (with-redefs [frontend.handler.worker/ (worker-handler/handle :db-worker/ui-request + wrapped-worker + {:request-id "req-1" + :action :request-e2ee-password + :payload {:reason :decrypt-user-rsa-private-key}}) + (p/then (fn [_] + (is (= [[:thread-api/resolve-ui-request ["req-1" {:password "pw"}]]] + @calls)) + (done))) + (p/catch (fn [error] + (is nil (str "unexpected error: " error)) + (done)))))))) + +(deftest db-worker-ui-request-reject-passes-request-id-and-error-test + (async done + (let [calls (atom []) + wrapped-worker (fn [qkw & args] + (swap! calls conj [qkw args]) + (p/resolved {:ok true}))] + (with-redefs [frontend.handler.worker/ (worker-handler/handle :db-worker/ui-request + wrapped-worker + {:request-id "req-2" + :action :request-e2ee-password + :payload {:reason :decrypt-user-rsa-private-key}}) + (p/then (fn [_] + (is (= [[:thread-api/reject-ui-request + ["req-2" + {:code :boom + :message "boom" + :data {:code :boom + :x 1}}]]] + @calls)) + (done))) + (p/catch (fn [error] + (is nil (str "unexpected error: " error)) + (done))))))))