Files
logseq/clj-e2e/dev/user.clj
Tienson Qin d84d3f9652 enhance(ux): set/unset #Page to convert between page and block (#11970)
* enhance(ux): add/remove #Page to toggle page/block

* enhance(ux): "p t" to set tags for selected blocks

Updated "p a" to toggle displaying all properties including hidden ones.

* feat: cmd+k move blocks

* fix: block could be converted to page and create invalid nodes

Pages with block namespace parents is nonsensical and pages in
property values led to multiple validation errors. Also guard
against class and property pages as namespace parents

* fix: warn on failed cut+paste or indent/outdent of page blocks. Better to warn than silent failure which leaves user confused on
what happened. 

---------

Co-authored-by: Gabriel Horner <gabriel@logseq.com>
2025-08-05 17:45:57 +08:00

137 lines
3.9 KiB
Clojure

(ns user
"fns used on repl"
(:require [clojure.test :refer [run-tests run-test]]
[logseq.e2e.block :as b]
[logseq.e2e.commands-basic-test]
[logseq.e2e.config :as config]
[logseq.e2e.editor-basic-test]
[logseq.e2e.fixtures :as fixtures]
[logseq.e2e.graph :as graph]
[logseq.e2e.keyboard :as k]
[logseq.e2e.locator :as loc]
[logseq.e2e.multi-tabs-basic-test]
[logseq.e2e.outliner-basic-test]
[logseq.e2e.plugins-basic-test]
[logseq.e2e.property-basic-test]
[logseq.e2e.reference-basic-test]
[logseq.e2e.rtc-basic-test]
[logseq.e2e.rtc-extra-test]
[logseq.e2e.tag-basic-test]
[logseq.e2e.util :as util]
[wally.main :as w]
[wally.repl :as repl]))
;; Use port 3001 for local testing
(reset! config/*port 3001)
;; show ui
(reset! config/*headless false)
(reset! config/*slow-mo 30)
(def *futures (atom {}))
(defn cancel
[test-name]
(some-> (get @*futures test-name) future-cancel)
(swap! *futures dissoc test-name))
(defn run-commands-test
[]
(->> (future (run-tests 'logseq.e2e.commands-basic-test))
(swap! *futures assoc :commands-test)))
(defn run-property-basic-test
[]
(->> (future (run-tests 'logseq.e2e.property-basic-test))
(swap! *futures assoc :property-test)))
(defn run-outliner-test
[]
(->> (future (run-tests 'logseq.e2e.outliner-basic-test))
(swap! *futures assoc :outliner-test)))
(defn run-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-basic-test))
(swap! *futures assoc :multi-tabs-test)))
(defn run-reference-test
[]
(->> (future (run-tests 'logseq.e2e.reference-basic-test))
(swap! *futures assoc :reference-test)))
(defn run-plugins-test
[]
(->> (future (run-tests 'logseq.e2e.plugins-basic-test))
(swap! *futures assoc :plugins-test)))
(defn run-rtc-extra-test
[]
(->> (future (run-tests 'logseq.e2e.rtc-extra-test))
(swap! *futures assoc :rtc-extra-test)))
(defn run-editor-basic-test
[]
(->> (future (run-tests 'logseq.e2e.editor-basic-test))
(swap! *futures assoc :editor-basic-test)))
(defn run-tag-basic-test
[]
(->> (future (run-tests 'logseq.e2e.tag-basic-test))
(swap! *futures assoc :tag-basic-test)))
(defn run-all-basic-test
[]
(run-tests 'logseq.e2e.editor-basic-test
'logseq.e2e.commands-basic-test
'logseq.e2e.multi-tabs-basic-test
'logseq.e2e.outliner-basic-test
'logseq.e2e.rtc-basic-test
'logseq.e2e.plugins-basic-test
'logseq.e2e.reference-basic-test
'logseq.e2e.property-basic-test
'logseq.e2e.tag-basic-test))
(defn start
[]
(future
(fixtures/open-page
repl/pause
{:headless false})))
(comment
;; You can call or put `(repl/pause)` in any test to pause the tests,
;; this allows us to continue experimenting with the current page.
(repl/pause)
;; To resume the tests, close the page/context/browser
(repl/resume)
;; Run specific test
(future (run-test logseq.e2e.commands-test/new-property-test))
;; after the test has been paused, you can do anything with the current page like this
(repl/with-page
(w/wait-for (first (util/get-edit-block-container))
{:state :detached}))
(run-tests 'logseq.e2e.commands-basic-test
'logseq.e2e.multi-tabs-basic-test
'logseq.e2e.outliner-basic-test
'logseq.e2e.rtc-basic-test)
(do
(reset! config/*headless true)
(reset! config/*slow-mo 10)
(run-tests 'logseq.e2e.reference-basic-test)
(dotimes [i 10]
(run-tests 'logseq.e2e.reference-basic-test)))
;;
)