소스 검색

Cleanup local test for #6892 and update localCompare to use user's language

Gabriel Horner 3 년 전
부모
커밋
55f73c091f
2개의 변경된 파일15개의 추가작업 그리고 5개의 파일을 삭제
  1. 3 3
      src/main/frontend/components/query_table.cljs
  2. 12 2
      src/test/frontend/components/query_table_test.cljs

+ 3 - 3
src/main/frontend/components/query_table.cljs

@@ -43,15 +43,15 @@
   "Use locale specific comparison for strings and general comparison for others."
   [x y]
   (if (and (string? x) (string? y))
-    (.localeCompare x y (.language js/navigator))
+    (.localeCompare x y (state/sub :preferred-language))
     (< x y)))
 
 (defn- sort-result [result {:keys [sort-by-column sort-desc?]}]
   (if (some? sort-by-column)
-    (let [comp (if sort-desc? #(locale-compare %2 %1) locale-compare)]
+    (let [comp-fn (if sort-desc? #(locale-compare %2 %1) locale-compare)]
       (sort-by (fn [item]
                  (block/normalize-block (sort-by-fn sort-by-column item)))
-               comp
+               comp-fn
                result))
     result))
 

+ 12 - 2
src/test/frontend/components/query_table_test.cljs

@@ -1,8 +1,12 @@
 (ns frontend.components.query-table-test
   (:require [clojure.test :refer [deftest testing are]]
+            [frontend.state :as state]
             [frontend.components.query-table :as query-table]))
 
 (deftest sort-result
+  ;; Define since it's not defined
+  (state/set-preferred-language! "en")
+
   (testing "sort by block content"
     (are [sort-state result sorted-result]
          (= (mapv #(hash-map :block/content %) sorted-result)
@@ -49,12 +53,18 @@
 
          {:sort-desc? false :sort-by-column :title}
          [{:title "abc"} {:title "cde"}]
-         [{:title "abc"} {:title "cde"}]
+         [{:title "abc"} {:title "cde"}]))
 
+  (testing "sort by string block property for specific locale"
+    (state/set-preferred-language! "zh-CN")
+    (are [sort-state result sorted-result]
+         (= (mapv #(hash-map :block/properties %) sorted-result)
+            (#'query-table/sort-result (mapv #(hash-map :block/properties %) result) sort-state))
          {:sort-desc? true :sort-by-column :title}
          [{:title "意志"} {:title "圆圈"}]
          [{:title "圆圈"} {:title "意志"}]
 
          {:sort-desc? false :sort-by-column :title}
          [{:title "圆圈"} {:title "意志"}]
-         [{:title "意志"} {:title "圆圈"}])))
+         [{:title "意志"} {:title "圆圈"}])
+    (state/set-preferred-language! "en")))