Przeglądaj źródła

refactor: enhance port resolution logic and update README for serving assets

Mega Yu 2 miesięcy temu
rodzic
commit
4b6fa4bb31
3 zmienionych plików z 22 dodań i 6 usunięć
  1. 1 1
      clj-e2e/README.md
  2. 11 4
      clj-e2e/bb.edn
  3. 10 1
      clj-e2e/src/logseq/e2e/config.clj

+ 1 - 1
clj-e2e/README.md

@@ -6,7 +6,7 @@ e2e tests for Logseq app.
 
 Before running tests, ensure the following:
 * The app's js and css assets are built and located at ../public/.
-* Those assets are served on http://localhost:3002/ via `bb serve`.
+* Those assets are served on http://localhost:3002/ via `bb serve` (or use `bb serve --port <port>` / `bb serve -p <port>` to use a different port).
 
 Then, run the project's tests:
 

+ 11 - 4
clj-e2e/bb.edn

@@ -2,7 +2,14 @@
         org.babashka/cli {:mvn/version "0.2.23"}}
  :tasks
  {:requires ([babashka.cli :as cli])
-  :init (def cli-opts (cli/parse-opts *command-line-args* {:coerce {:port :int :headers :edn}}))
+  :init (do
+          (def cli-opts (cli/parse-opts *command-line-args* {:alias {:p :port}
+                                                             :coerce {:port :int :headers :edn}}))
+          (defn clojure-with-port
+            [cmd]
+            (if-let [port (:port cli-opts)]
+              (str "-J-Dport=" port " " cmd)
+              cmd)))
 
   serve {:doc "Serve static assets"
          :requires ([babashka.http-server :as server])
@@ -13,15 +20,15 @@
   prn {:task (clojure "-X clojure.core/prn" cli-opts)}
 
   test {:doc "run tests (ns'es ending in '-basic-test')"
-        :task (do (clojure "-M:test -r \".*\\-basic\\-test$\" -e fix-me")
+        :task (do (clojure (clojure-with-port "-M:test -r \".*\\-basic\\-test$\" -e fix-me"))
                   (System/exit 0))}
 
   rtc-extra-test {:doc "run rtc-extra-test"
-                  :task (do (clojure "-M:test -n logseq.e2e.rtc-extra-test")
+                  :task (do (clojure (clojure-with-port "-M:test -n logseq.e2e.rtc-extra-test"))
                             (System/exit 0))}
 
   rtc-extra-part2-test {:doc "run rtc-extra-part2-test"
-                        :task (do (clojure "-M:test -n logseq.e2e.rtc-extra-part2-test")
+                        :task (do (clojure (clojure-with-port "-M:test -n logseq.e2e.rtc-extra-part2-test"))
                                   (System/exit 0))}
 
   -run-rtc-extra-test {:depends [serve prn rtc-extra-test]}

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

@@ -1,5 +1,14 @@
 (ns logseq.e2e.config)
 
-(defonce *port (atom 3002))
+(def ^:private default-port 3002)
+
+(defn- resolve-port
+  []
+  (let [port (some-> (System/getProperty "port")
+                     parse-long)]
+    (prn :resolved-port port)
+    (if (pos-int? port) port default-port)))
+
+(defonce *port (atom (resolve-port)))
 (defonce *headless (atom true))
 (defonce *slow-mo (atom 100))                  ; Set `slow-mo` lower to find more flaky tests