Skip to content
Snippets Groups Projects
Unverified Commit d6c4bad1 authored by metabase-bot[bot]'s avatar metabase-bot[bot] Committed by GitHub
Browse files

:robot: backported "Cards with Results Should Show up in Subscriptions" (#40762)


* Cards with Results Should Show up in Subscriptions (#40743)

* Cards with Results Should Show up in Subscriptions

Fixes: #40726

This PR fixes a bug where setting 'Hide thie card if there are no results' in a Dashcard's viz-settings would hide the
card even when there were results.

* adjust test to show that the setting is respected

Before, the setting would always hide the card. Now, the card is only hidden when there are no results. This test sets
up 4 cards: 2 are normal, 2 have no results, but 1 has the setting to hide empty. THerefore, we should expect to see 3 results.

* test is fine?

---------

Co-authored-by: default avatarAdam James <adam.vermeer2@gmail.com>
parent 5da03450
No related branches found
No related tags found
No related merge requests found
......@@ -81,7 +81,7 @@
(qp/process-query-and-save-with-max-results-constraints!
(assoc query :async? false)
info)))]
(when-not (and (get-in dashcard [:visualization_settings :card.hide_empty]) (is-card-empty? result))
(when-not (and (get-in dashcard [:visualization_settings :card.hide_empty]) (is-card-empty? (assoc card :result result)))
{:card card
:dashcard dashcard
:result result
......
......@@ -243,15 +243,19 @@
result))))))
(deftest ^:parallel execute-dashboard-test-2
(testing "hides empty card when card.hide_empty is true"
(mt/with-temp [Card {card-id-1 :id} {}
Card {card-id-2 :id} {}
(testing "hides empty card when card.hide_empty is true and there are no results."
(mt/with-temp [Card {card-id-1 :id} {:dataset_query (mt/mbql-query venues)}
Card {card-id-2 :id} {:dataset_query (assoc-in (mt/mbql-query venues) [:query :limit] 0)}
Card {card-id-3 :id} {:dataset_query (assoc-in (mt/mbql-query venues) [:query :limit] 0)}
Card {card-id-4 :id} {:dataset_query (mt/mbql-query venues)}
Dashboard {dashboard-id :id, :as dashboard} {:name "Birdfeed Usage"}
DashboardCard _ {:dashboard_id dashboard-id :card_id card-id-1}
DashboardCard _ {:dashboard_id dashboard-id :card_id card-id-2 :visualization_settings {:card.hide_empty true}}
DashboardCard _ {:dashboard_id dashboard-id :card_id card-id-3}
DashboardCard _ {:dashboard_id dashboard-id :card_id card-id-4}
User {user-id :id} {}]
(let [result (@#'metabase.pulse/execute-dashboard {:creator_id user-id} dashboard)]
(is (= (count result) 1))))))
(is (= 3 (count result)))))))
(deftest ^:parallel execute-dashboard-test-3
(testing "dashboard cards are ordered correctly -- by rows, and then by columns (#17419)"
......@@ -708,7 +712,7 @@
(mt/with-temp [Dashboard {dashboard-id :id, :as dashboard} {:name "Dashboard"}
Card {card-id :id} {:name "Products (SQL)"
:dataset_query (mt/native-query
{:query "SELECT * FROM venues LIMIT 1"})}
{:query "SELECT * FROM venues LIMIT 1"})}
DashboardCard _ {:dashboard_id dashboard-id
:card_id card-id}]
(perms/update-data-perms-graph! (assoc-in (perms/data-perms-graph) native-perm-path :none))
......
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