test(e2e): validate-graph for every testcase

This commit is contained in:
rcmerci
2025-05-21 16:19:45 +08:00
parent 533ca23610
commit b55a60dbd7
8 changed files with 53 additions and 16 deletions

View File

@@ -52,3 +52,9 @@
(when wait-sync?
(w/wait-for "button.cloud.on.idle" {:timeout 20000}))
(assert/assert-graph-loaded?))
(defn validate-graph
[]
(util/search-and-click "(Dev) Validate current graph")
(assert/assert-is-visible ".notifications :has-text('Your graph is valid')")
(w/click ".notifications .ls-icon-x"))

View File

@@ -44,3 +44,11 @@
(if (>= local-tx new-tx)
local-tx
(recur (dec i))))))
(defn rtc-start
[]
(util/search-and-click "(Dev) RTC Start"))
(defn rtc-stop
[]
(util/search-and-click "(Dev) RTC Stop"))

View File

@@ -15,7 +15,9 @@
(use-fixtures :once fixtures/open-page)
(use-fixtures :each fixtures/new-logseq-page)
(use-fixtures :each
fixtures/new-logseq-page
fixtures/validate-graph)
(deftest command-trigger-test
(testing "/command trigger popup"

View File

@@ -1,7 +1,10 @@
(ns logseq.e2e.fixtures
(:require [logseq.e2e.config :as config]
(:require [logseq.e2e.assert :as assert]
[logseq.e2e.config :as config]
[logseq.e2e.custom-report :as custom-report]
[logseq.e2e.graph :as graph]
[logseq.e2e.page :as page]
[logseq.e2e.settings :as settings]
[wally.main :as w]))
;; TODO: save trace
@@ -15,6 +18,9 @@
(w/grant-permissions :clipboard-write :clipboard-read)
(binding [custom-report/*pw-contexts* #{(.context (w/get-page))}]
(w/navigate (str "http://localhost:" (or port @config/*port)))
(settings/developer-mode)
(w/refresh)
(assert/assert-graph-loaded?)
(f))))
(def *page1 (atom nil))
@@ -36,13 +42,17 @@
w/*page* (delay (throw (ex-info "Don't use *page*, use *page1* and *page2* instead" {})))]
(run!
#(w/with-page %
(w/navigate (str "http://localhost:" port')))
(w/navigate (str "http://localhost:" port'))
(settings/developer-mode)
(w/refresh))
[p1 p2])
(f))
;; use with-page-open to release resources
(w/with-page-open p1)
(w/with-page-open p2)))
(w/with-page-open p2)
(reset! *page1 nil)
(reset! *page2 nil)))
(def ^:dynamic *pw-ctx* nil)
(defn open-new-context
@@ -71,3 +81,13 @@
[f]
(create-page)
(f))
(defn validate-graph
[f]
(f)
(if (and @*page1 @*page2)
(doseq [p [@*page1 @*page2]]
(w/with-page p
(graph/validate-graph)))
(graph/validate-graph)))

View File

@@ -8,7 +8,9 @@
[wally.main :as w]))
(use-fixtures :once fixtures/open-page)
(use-fixtures :each fixtures/new-logseq-page)
(use-fixtures :each
fixtures/new-logseq-page
fixtures/validate-graph)
(deftest create-test-page-and-insert-blocks
;; a page block and a child block

View File

@@ -10,7 +10,9 @@
(use-fixtures :once fixtures/open-page)
(use-fixtures :each fixtures/new-logseq-page)
(use-fixtures :each
fixtures/new-logseq-page
fixtures/validate-graph)
;; block references
(deftest self-reference

View File

@@ -13,6 +13,8 @@
(use-fixtures :once fixtures/open-2-pages)
(use-fixtures :each fixtures/validate-graph)
(deftest rtc-basic-test
(let [graph-name (str "rtc-graph-" (.toEpochMilli (java.time.Instant/now)))
page-names (map #(str "rtc-test-page" %) (range 4))]

View File

@@ -23,14 +23,6 @@
fixtures/open-2-pages
cleanup-fixture)
(defn- offline
[]
(.setOffline (.context (w/get-page)) true))
(defn- online
[]
(.setOffline (.context (w/get-page)) false))
(defn- insert-task-blocks
[title-prefix]
(doseq [status ["Backlog" "Todo" "Doing" "In review" "Done" "Canceled"]
@@ -47,6 +39,7 @@
2
#(w/with-page %
(settings/developer-mode)
(w/refresh)
(util/login-test-account))
[@*page1 @*page2])
(w/with-page @*page1
@@ -57,7 +50,7 @@
(testing "rtc-stop app1, add some task blocks, then rtc-start on app1"
(let [*latest-remote-tx (atom nil)]
(w/with-page @*page1
(offline))
(rtc/rtc-stop))
(w/with-page @*page2
(let [{:keys [_local-tx remote-tx]}
(rtc/with-wait-tx-updated
@@ -66,7 +59,9 @@
;; TODO: more operations
(util/exit-edit))
(w/with-page @*page1
(online)
(rtc/rtc-start)
(repl/pause)
(rtc/wait-tx-update-to @*latest-remote-tx)
;; TODO: check blocks exist
)))))