浏览代码

test(e2e): update multi-tabs-test

rcmerci 6 月之前
父节点
当前提交
75f42f7d36

+ 1 - 1
clj-e2e/src/logseq/e2e/config.clj

@@ -2,4 +2,4 @@
 
 (defonce *port (atom 3002))
 (defonce *headless (atom true))
-(defonce *slow-mo 100)                  ; Set `slow-mo` lower to find more flaky tests
+(defonce *slow-mo (atom 100))                  ; Set `slow-mo` lower to find more flaky tests

+ 7 - 6
clj-e2e/src/logseq/e2e/playwright_page.clj

@@ -1,5 +1,6 @@
 (ns logseq.e2e.playwright-page
-  (:require [logseq.e2e.config :as config]))
+  (:require [logseq.e2e.config :as config]
+            [wally.main :as w]))
 
 (defn get-pages
   [pw-ctx]
@@ -9,13 +10,13 @@
   [pw-ctx n]
   (let [url (str "http://localhost:" @config/*port)]
     (dotimes [_i n]
-      (.. pw-ctx newPage (navigate url)))))
+      (let [page (.newPage pw-ctx)]
+        (.navigate page url)
+        ;; wait the demo graph loaded
+        (w/with-page page
+          (w/wait-for "span.block-title-wrap"))))))
 
 (defn close-pages
   [pages]
   (doseq [p pages]
     (.close p)))
-
-(defn close-pw-ctx
-  [pw-ctx]
-  (.close pw-ctx))

+ 14 - 12
clj-e2e/src/logseq/e2e/util.clj

@@ -100,18 +100,6 @@
   (when-let [editor (get-editor)]
     (get-text editor)))
 
-;; TODO: support tree
-(defn new-blocks
-  [titles]
-  (let [value (get-edit-content)]
-    (if (string/blank? value)           ; empty block
-      (do
-        (save-block (first titles))
-        (doseq [title (rest titles)]
-          (new-block title)))
-      (doseq [title titles]
-        (new-block title)))))
-
 (defn bounding-xy
   [locator]
   (let [box (.boundingBox locator)]
@@ -137,8 +125,22 @@
 
 (defn open-last-block
   []
+  (k/esc)
   (w/click (last (w/query ".ls-page-blocks .ls-block .block-content"))))
 
+;; TODO: support tree
+(defn new-blocks
+  [titles]
+  (open-last-block)
+  (let [value (get-edit-content)]
+    (if (string/blank? value)           ; empty block
+      (do
+        (save-block (first titles))
+        (doseq [title (rest titles)]
+          (new-block title)))
+      (doseq [title titles]
+        (new-block title)))))
+
 (defn repeat-keyboard
   [n shortcut]
   (dotimes [_i n]

+ 2 - 1
clj-e2e/test/logseq/e2e/fixtures.clj

@@ -51,6 +51,7 @@
         ctx (.newContext (.browser (.context p)))]
     ;; context for p is no longer needed
     (.close (.context p))
+    (w/with-page-open p)              ; use with-page-open to close playwright instance
     (binding [*pw-ctx* ctx]
       (f)
-      (pw-page/close-pw-ctx *pw-ctx*))))
+      (.close (.browser *pw-ctx*)))))

+ 8 - 4
clj-e2e/test/logseq/e2e/multi_tabs_test.clj

@@ -10,10 +10,14 @@
 (use-fixtures :once fixtures/open-new-context)
 
 (deftest multi-tabs-test
-  (testing "create 3 local graphs"
+  (testing "edit on one tab, check all tab's blocks are same"
     (pw-page/open-pages fixtures/*pw-ctx* 3)
-    (let [pages (pw-page/get-pages fixtures/*pw-ctx*)
-          p1 (first pages)]
+    (let [[p1 p2 p3 :as pages] (pw-page/get-pages fixtures/*pw-ctx*)
+          blocks-to-add (map #(str "b" %) (range 10))]
       (is (= 3 (count pages)))
       (w/with-page p1
-        (repl/pause)))))
+        (util/new-blocks blocks-to-add))
+      (w/with-page p2
+        (is (= (util/page-blocks-count) (count blocks-to-add))))
+      (w/with-page p3
+        (is (= (util/page-blocks-count) (count blocks-to-add)))))))