From 442ecdd3c021af38382d6b6691fdb5ddcb5a33c2 Mon Sep 17 00:00:00 2001 From: Tim Macdonald <tim@metabase.com> Date: Mon, 20 Feb 2023 14:22:31 +0000 Subject: [PATCH] Ensure dashcards are deleted after actions are deleted (#28446) (c.f. discussion at https://metaboat.slack.com/archives/C04FG88HL95/p1676649795131089) --- test/metabase/models/action_test.clj | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/test/metabase/models/action_test.clj b/test/metabase/models/action_test.clj index 129ff11b477..44610ab7928 100644 --- a/test/metabase/models/action_test.clj +++ b/test/metabase/models/action_test.clj @@ -1,7 +1,7 @@ (ns metabase.models.action-test (:require [clojure.test :refer :all] - [metabase.models :refer [Dashboard DashboardCard]] + [metabase.models :refer [Action Dashboard DashboardCard]] [metabase.models.action :as action] [metabase.test :as mt] [toucan.hydrate :refer [hydrate]] @@ -59,10 +59,19 @@ (deftest dashcard-deletion-test (mt/test-drivers (mt/normal-drivers-with-feature :actions/custom) (mt/with-actions-enabled - (mt/with-actions [{:keys [action-id]} {}] - (mt/with-temp* [Dashboard [{dashboard-id :id}] - DashboardCard [{dashcard-id :id} {:action_id action-id - :dashboard_id dashboard-id}]] - (is (= 1 (t2/count DashboardCard :id dashcard-id))) - (action/update! {:id action-id, :archived true} {:id action-id}) - (is (zero? (t2/count DashboardCard :id dashcard-id)))))))) + (testing "Dashcards are deleted after actions are archived" + (mt/with-actions [{:keys [action-id]} {}] + (mt/with-temp* [Dashboard [{dashboard-id :id}] + DashboardCard [{dashcard-id :id} {:action_id action-id + :dashboard_id dashboard-id}]] + (is (= 1 (t2/count DashboardCard :id dashcard-id))) + (action/update! {:id action-id, :archived true} {:id action-id}) + (is (zero? (t2/count DashboardCard :id dashcard-id)))))) + (testing "Dashcards are deleted after actions are deleted entirely" + (mt/with-actions [{:keys [action-id]} {}] + (mt/with-temp* [Dashboard [{dashboard-id :id}] + DashboardCard [{dashcard-id :id} {:action_id action-id + :dashboard_id dashboard-id}]] + (is (= 1 (t2/count DashboardCard :id dashcard-id))) + (t2/delete! Action :id action-id) + (is (zero? (t2/count DashboardCard :id dashcard-id))))))))) -- GitLab