diff --git a/clj-e2e/dev/user.clj b/clj-e2e/dev/user.clj index 1308e48ac1..8c530b2d00 100644 --- a/clj-e2e/dev/user.clj +++ b/clj-e2e/dev/user.clj @@ -1,13 +1,13 @@ (ns user "fns used on repl" (:require [clojure.test :refer [run-tests run-test]] + [logseq.e2e.config :as config] [logseq.e2e.editor-test] [logseq.e2e.fixtures :as fixtures] + [logseq.e2e.multi-tabs-test] [logseq.e2e.outliner-test] [logseq.e2e.rtc-basic-test] - [logseq.e2e.multi-tabs-test] [logseq.e2e.util :as util] - [logseq.e2e.config :as config] [wally.main :as w] [wally.repl :as repl])) @@ -16,21 +16,32 @@ ;; show ui (reset! config/*headless false) +(def *futures (atom {})) + +(defn cancel + [test-name] + (some-> (get @*futures test-name) future-cancel) + (swap! *futures dissoc test-name)) + (defn run-editor-test [] - (future (run-tests 'logseq.e2e.editor-test))) + (->> (future (run-tests 'logseq.e2e.editor-test)) + (swap! *futures assoc :editor-test))) (defn run-outliner-test [] - (future (run-tests 'logseq.e2e.outliner-test))) + (->> (future (run-tests 'logseq.e2e.outliner-test)) + (swap! *futures assoc :outliner-test))) (defn run-rtc-basic-test [] - (future (run-tests 'logseq.e2e.rtc-basic-test))) + (->> (future (run-tests 'logseq.e2e.rtc-basic-test)) + (swap! *futures assoc :rtc-basic-test))) (defn run-multi-tabs-test [] - (future (run-tests 'logseq.e2e.multi-tabs-test))) + (->> (future (run-tests 'logseq.e2e.multi-tabs-test)) + (swap! *futures assoc :multi-tabs-test))) (comment diff --git a/clj-e2e/src/logseq/e2e/config.clj b/clj-e2e/src/logseq/e2e/config.clj index bdf4a4ac3a..70987e172c 100644 --- a/clj-e2e/src/logseq/e2e/config.clj +++ b/clj-e2e/src/logseq/e2e/config.clj @@ -2,3 +2,4 @@ (defonce *port (atom 3002)) (defonce *headless (atom true)) +(defonce *slow-mo 100) ; Set `slow-mo` lower to find more flaky tests diff --git a/clj-e2e/test/logseq/e2e/fixtures.clj b/clj-e2e/test/logseq/e2e/fixtures.clj index 053581634b..b06ff802e7 100644 --- a/clj-e2e/test/logseq/e2e/fixtures.clj +++ b/clj-e2e/test/logseq/e2e/fixtures.clj @@ -10,9 +10,7 @@ (w/with-page-open (w/make-page {:headless (or headless @config/*headless) :persistent false - :slow-mo 100 - ;; Set `slow-mo` lower to find more flaky tests - ;; :slow-mo 30 + :slow-mo @config/*slow-mo }) (w/navigate (str "http://localhost:" (or port @config/*port))) (f))) @@ -26,7 +24,7 @@ (let [headless (or headless @config/*headless) page-opts {:headless headless :persistent false - :slow-mo 100} + :slow-mo @config/*slow-mo} p1 (w/make-page page-opts) p2 (w/make-page page-opts) port' (or port @config/*port)] @@ -46,9 +44,9 @@ (defn open-new-context "create a new playwright-context in `*pw-ctx*`" [f] - (let [page-opts {:headless false + (let [page-opts {:headless @config/*headless :persistent false - :slow-mo 100} + :slow-mo @config/*slow-mo} p @(w/make-page page-opts) ctx (.newContext (.browser (.context p)))] ;; context for p is no longer needed diff --git a/clj-e2e/test/logseq/e2e/multi_tabs_test.clj b/clj-e2e/test/logseq/e2e/multi_tabs_test.clj index 0db8c9baae..ea0b5f646f 100644 --- a/clj-e2e/test/logseq/e2e/multi_tabs_test.clj +++ b/clj-e2e/test/logseq/e2e/multi_tabs_test.clj @@ -2,18 +2,18 @@ (:require [clojure.test :refer [deftest testing is use-fixtures]] [logseq.e2e.fixtures :as fixtures] + [logseq.e2e.playwright-page :as pw-page] [logseq.e2e.util :as util] [wally.main :as w] - [wally.repl :as repl] - [logseq.e2e.playwright-page :as pw-page])) + [wally.repl :as repl])) (use-fixtures :once fixtures/open-new-context) (deftest multi-tabs-test (testing "create 3 local graphs" (pw-page/open-pages fixtures/*pw-ctx* 3) - (is (= 3 (count (pw-page/get-pages fixtures/*pw-ctx*)))) - ;; (util/new-graph "graph1" false) - ;; (util/new-graph "graph2" false) - ;; (util/new-graph "graph3" false) - )) + (let [pages (pw-page/get-pages fixtures/*pw-ctx*) + p1 (first pages)] + (is (= 3 (count pages))) + (w/with-page p1 + (repl/pause)))))