Browse Source

test(e2e,rtc): preserve remote-graph if testcase failed

rcmerci 6 months ago
parent
commit
edb574fff4

+ 11 - 3
clj-e2e/test/logseq/e2e/custom_report.clj

@@ -13,6 +13,8 @@
 
 (def ^:dynamic *pw-page->console-logs* nil)
 
+(def ^:dynamic *preserve-graph* nil)
+
 (defn screenshot
   [page test-name]
   (println :screenshot test-name)
@@ -46,7 +48,10 @@
   (when-let [pw-page->console-logs (some-> *pw-page->console-logs* deref)]
     (doseq [[_pw-page logs] pw-page->console-logs]
       (spit (format "e2e-dump/console-logs-%s.txt" (System/currentTimeMillis))
-            (with-out-str (pp/pprint logs))))))
+            (with-out-str (pp/pprint logs)))))
+
+  (when (some? *preserve-graph*)
+    (set! *preserve-graph* true)))
 
 (defmethod t/report :fail
   [m]
@@ -63,8 +68,11 @@
     (doseq [page (mapcat pw-page/get-pages all-contexts)]
       (screenshot page (string/join "-" (map (comp str :name meta) t/*testing-vars*)))))
 
-;; dump console logs
+  ;; dump console logs
   (when-let [pw-page->console-logs (some-> *pw-page->console-logs* deref)]
     (doseq [[_pw-page logs] pw-page->console-logs]
       (spit (format "e2e-dump/console-logs-%s.txt" (System/currentTimeMillis))
-            (with-out-str (pp/pprint logs))))))
+            (with-out-str (pp/pprint logs)))))
+
+  (when (some? *preserve-graph*)
+    (set! *preserve-graph* true)))

+ 8 - 5
clj-e2e/test/logseq/e2e/rtc_extra_test.clj

@@ -4,6 +4,7 @@
    [com.climate.claypoole :as cp]
    [logseq.e2e.assert :as assert]
    [logseq.e2e.block :as b]
+   [logseq.e2e.custom-report :as custom-report]
    [logseq.e2e.fixtures :as fixtures :refer [*page1 *page2]]
    [logseq.e2e.graph :as graph]
    [logseq.e2e.keyboard :as k]
@@ -33,11 +34,13 @@
       (graph/wait-for-remote-graph graph-name)
       (graph/switch-graph graph-name true))
 
-    (f)
-
-    ;; cleanup
-    (w/with-page @*page2
-      (graph/remove-remote-graph graph-name))))
+    (binding [custom-report/*preserve-graph* false]
+      (f)
+      ;; cleanup
+      (if custom-report/*preserve-graph*
+        (println "Don't remove graph: " graph-name)
+        (w/with-page @*page2
+          (graph/remove-remote-graph graph-name))))))
 
 (defn- new-logseq-page
   "new logseq page and switch to this page on both page1 and page2"