Skip to content
Snippets Groups Projects
Unverified Commit 4c41f848 authored by Jerry Huang's avatar Jerry Huang Committed by GitHub
Browse files

Fix nils in subscriptions for values in series (#32813)

* replace nils initial code

* add test
parent 6e5fd7bd
No related branches found
No related tags found
No related merge requests found
......@@ -452,9 +452,17 @@
(table-fn some-entries)])
(split-at (/ (count legend-entries) 2) legend-entries)))])))
(defn- replace-nils [rows]
(mapv (fn [row]
(if (nil? (first row))
(assoc row 0 "(empty)")
row))
rows))
(s/defmethod render :categorical/donut :- common/RenderedPulseCard
[_ render-type timezone-id :- (s/maybe s/Str) card dashcard {:keys [rows cols viz-settings] :as data}]
(let [viz-settings (merge viz-settings (:visualization_settings dashcard))
(let [rows (replace-nils rows)
viz-settings (merge viz-settings (:visualization_settings dashcard))
[x-axis-rowfn y-axis-rowfn] (common/graphing-column-row-fns card data)
rows (map (juxt (comp str x-axis-rowfn) y-axis-rowfn)
(common/row-preprocess x-axis-rowfn y-axis-rowfn rows))
......@@ -792,7 +800,8 @@
Use the combo charts for every chart-type in line area bar because we get multiple chart series for cheaper this way."
[chart-type render-type _timezone-id card dashcard {:keys [cols rows viz-settings] :as data}]
(let [viz-settings (merge viz-settings (:visualization_settings dashcard))
(let [rows (replace-nils rows)
viz-settings (merge viz-settings (:visualization_settings dashcard))
x-axis-rowfn (or (ui-logic/mult-x-axis-rowfn card data) #(vector (first %)))
y-axis-rowfn (or (ui-logic/mult-y-axis-rowfn card data) #(vector (second %)))
x-rows (filter some? (map x-axis-rowfn rows))
......
......@@ -421,11 +421,15 @@
(render-bar-graph {:cols default-columns
:rows [[10.0 1] [5.0 10] [2.50 20] [1.25 nil]]
:viz-settings {:graph.metrics ["NumPurchased"]}}))))
(testing "Check to make sure we allow nil values for the y-axis"
(is (has-inline-image?
(render-bar-graph {:cols default-columns
:rows [[10.0 1] [5.0 10] [2.50 20] [nil 30]]
:viz-settings {:graph.metrics ["NumPurchased"]}}))))
(testing "Check to make sure we allow nil values for the x-axis"
(let [graph (render-bar-graph {:cols default-columns
:rows [[10.0 1] [5.0 10] [2.50 20] [nil 30]]
:viz-settings {:graph.metrics ["NumPurchased"]}})]
(is (has-inline-image? graph))
(is (= graph
(render-bar-graph {:cols default-columns
:rows [[10.0 1] [5.0 10] [2.50 20] ["(empty)" 30]]
:viz-settings {:graph.metrics ["NumPurchased"]}})))))
(testing "Check to make sure we allow nil values for both x and y on different rows"
(is (has-inline-image?
(render-bar-graph {:cols default-columns
......@@ -576,15 +580,16 @@
x))
html-tree))]
(testing "Renders without error"
(let [rendered-info (render [["Doohickey" 75] ["Widget" 25]] {:show_values true})]
(let [rendered-info (render [[nil 10] ["Doohickey" 65] ["Widget" 25]] {:show_values true})]
(is (has-inline-image? rendered-info))))
(testing "Includes percentages"
(is (= [:div
[:img]
[:table
[:tr [:td [:span "•"]] [:td "Doohickey"] [:td "75%"]]
[:tr [:td [:span "•"]] [:td "(empty)"] [:td "10%"]]
[:tr [:td [:span "•"]] [:td "Doohickey"] [:td "65%"]]
[:tr [:td [:span "•"]] [:td "Widget"] [:td "25%"]]]]
(prune (:content (render [["Doohickey" 75] ["Widget" 25]]))))))))
(prune (:content (render [[nil 10] ["Doohickey" 65] ["Widget" 25]]))))))))
(deftest render-progress
(let [col [{:name "NumPurchased",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment