Răsfoiți Sursa

fix: query tests disabled in #11551

Gabriel Horner 1 an în urmă
părinte
comite
e69621da69

+ 2 - 2
src/main/frontend/components/query.cljs

@@ -131,8 +131,8 @@
   (let [collapsed?' (:collapsed? config)
         result' (rum/react *result)]
     (when (seq result')
-      (let [result (when *result (query-result/get-query-result config q result'))
-        ;; Args for displaying query header and results
+      (let [result (when *result (query-result/transform-query-result config q result'))
+            ;; Args for displaying query header and results
             view-fn (if (keyword? view) (get-in (state/sub-config) [:query/views view]) view)
             view-f (and view-fn (sci/eval-string (pr-str view-fn)))
             page-list? (and (seq result) (some? (:block/name (first result))))

+ 2 - 3
src/main/frontend/components/query/result.cljs

@@ -57,9 +57,8 @@
          (and (not result-transform)
               (not (and (string? query) (string/includes? query "(by-page false)")))))))
 
-(defn get-query-result
-  "Fetches a query's result, transforms it as needed and saves the result into
-  an atom that is passed in as an argument"
+(defn transform-query-result
+  "Transforms a query result if query conditions and config indicate a transformation"
   [{:keys [current-block-uuid table?] :as config} query-m query-result]
   (let [;; exclude the current one, otherwise it'll loop forever
         remove-blocks (if current-block-uuid [current-block-uuid] nil)

+ 24 - 32
src/test/frontend/components/query/result_test.cljs

@@ -1,22 +1,14 @@
 (ns frontend.components.query.result-test
   (:require [clojure.test :refer [deftest are testing is]]
-            [rum.core :as rum]
-            [frontend.db.query-custom :as query-custom]
             [frontend.db.model :as model]
             [frontend.components.query.result :as query-result]))
 
-(defn- mock-get-query-result
-  "Mocks get-query-result assuming custom queries are being tested. Db calls are
-  mocked to minimize setup"
-  [result query-m {:keys [table? current-block-uuid config] :or {config {}}}]
-  (with-redefs [query-custom/custom-query (constantly (atom result))
-                model/with-pages identity]
-    (binding [rum/*reactions* (volatile! #{})]
-      (#'query-result/get-query-result (assoc config :table? table? :current-block-uuid current-block-uuid
-                                              :*query-error (atom nil))
-                                       query-m))))
+(defn- transform-query-result
+  [config query-m result]
+  (with-redefs [model/with-pages identity]
+    (query-result/transform-query-result config query-m result)))
 
-(deftest ^:fix-me get-query-result-with-transforms-and-grouping
+(deftest transform-query-result-with-transforms-and-grouping
   (let [result (mapv
                 #(assoc % :block/page {:db/id 1} :block/parent {:db/id 2})
                 [{:block/uuid (random-uuid) :block/scheduled 20230418}
@@ -25,63 +17,63 @@
         sorted-result (sort-by :block/scheduled result)]
     (testing "For list view"
       (are [query-m expected]
-           (= expected (mock-get-query-result result query-m {:table? false}))
+           (= expected (transform-query-result {:table? false} query-m result))
 
-           ;; Default list behavior is to group result
+        ;; Default list behavior is to group result
         {}
         {{:db/id 1} result}
 
-           ;; User overrides default behavior to return result
+        ;; User overrides default behavior to return result
         {:group-by-page? false}
         result
 
-           ;; Return transformed result for list view
+        ;; Return transformed result for list view
         {:result-transform '(partial sort-by :block/scheduled)}
         sorted-result
 
-           ; User overrides transform to return grouped result
+        ; User overrides transform to return grouped result
         {:result-transform '(partial sort-by :block/scheduled) :group-by-page? true}
         {{:db/id 1} sorted-result})
 
       (testing "For table view"
         (are [query expected]
-             (= expected (mock-get-query-result result query {:table? true}))
+             (= expected (transform-query-result {:table? true} query result))
 
-             ;; Default table behavior is to return result
+          ;; Default table behavior is to return result
           {}
           result
 
-             ;; Return transformed result
+          ;; Return transformed result
           {:result-transform '(partial sort-by :block/scheduled)}
           sorted-result
 
-             ;; Ignore override and return normal result
+          ;; Ignore override and return normal result
           {:group-by-page? true}
           result))
 
       (testing "current block in results"
         (is (= result
                (let [current-block {:block/uuid (random-uuid) :block/scheduled 20230420 :block/page {:db/id 1}}]
-                 (mock-get-query-result (conj result current-block)
-                                        {:group-by-page? false}
-                                        {:table? false
-                                         :current-block-uuid (:block/uuid current-block)})))
+                 (transform-query-result {:table? false
+                                          :current-block-uuid (:block/uuid current-block)}
+                                         {:group-by-page? false}
+                                         (conj result current-block))))
             "Current block is not included in results")))))
 
-(deftest ^:fix-me get-query-result-with-remove-block-children-option
+(deftest transform-query-result-with-remove-block-children-option
   (let [result [{:db/id 1 :block/title "parent" :block/uuid 1}
                 {:db/id 2 :block/title "child" :block/uuid 2 :block/parent {:db/id 1}}]]
     (is (= [{:db/id 1 :block/title "parent" :block/uuid 1}]
-           (mock-get-query-result result {:remove-block-children? true} {:table? true}))
+           (transform-query-result {:table? true} {:remove-block-children? true} result))
         "Removes children when :remove-block-children? is true")
     (is (= result
-           (mock-get-query-result result {:remove-block-children? false} {:table? true}))
+           (transform-query-result {:table? true} {:remove-block-children? false} result))
         "Doesn't remove children when :remove-block-children? is false")))
 
-(deftest ^:fix-me get-query-result-sets-result-in-config
+(deftest transform-query-result-sets-result-in-config
   (let [result [{:db/id 1 :block/title "parent" :block/uuid 1}]
-        config {:query-result (atom nil)}]
+        config {:query-result (atom nil) :table? true}]
     (is (= result
-           (mock-get-query-result result {} {:table? true :config config})))
+           (transform-query-result config {} result)))
     (is (= result @(:query-result config))
         "Result is set in config for downstream use e.g. query table fn")))