You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/05/18 03:22:19 UTC

(superset) branch tdd/issue-25890-admin-dashboard-list-empty created (now 4ada7338f0b)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a change to branch tdd/issue-25890-admin-dashboard-list-empty
in repository https://gitbox.apache.org/repos/asf/superset.git


      at 4ada7338f0b test(api): regression test for Admin getting empty dashboard/chart list (#25890)

This branch includes the following new commits:

     new 4ada7338f0b test(api): regression test for Admin getting empty dashboard/chart list (#25890)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(superset) 01/01: test(api): regression test for Admin getting empty dashboard/chart list (#25890)

Posted by ru...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch tdd/issue-25890-admin-dashboard-list-empty
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 4ada7338f0b1e7f248ce54f26451c2223ed30591
Author: Claude Code <no...@anthropic.com>
AuthorDate: Sun May 17 20:21:50 2026 -0700

    test(api): regression test for Admin getting empty dashboard/chart list (#25890)
    
    TDD-style validation of #25890: inserts a dashboard and a chart, logs in as
    the seeded admin user, and asserts that GET /api/v1/dashboard/ and
    GET /api/v1/chart/ return the inserted resources rather than an empty list.
    
    The original report showed Admin role users receiving {"count": 0, "ids": []}
    from these endpoints despite resources existing in the database.
    
    Closes #25890
    
    Co-Authored-By: Claude Sonnet 4.6 <no...@anthropic.com>
---
 tests/integration_tests/dashboards/api_tests.py | 48 +++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/tests/integration_tests/dashboards/api_tests.py b/tests/integration_tests/dashboards/api_tests.py
index 724185a9698..d3f2ed68c0e 100644
--- a/tests/integration_tests/dashboards/api_tests.py
+++ b/tests/integration_tests/dashboards/api_tests.py
@@ -760,6 +760,54 @@ class TestDashboardApi(ApiOwnersTestCaseMixin, InsertChartMixin, SupersetTestCas
             db.session.delete(dashboard)
             db.session.commit()
 
+    def test_get_dashboards_admin_sees_existing_dashboards(self):
+        """Regression for #25890: GET /api/v1/dashboard/ as an Admin user should
+        return existing dashboards, not an empty list. The original report
+        showed an Admin getting {"count": 0, "ids": []} despite dashboards
+        existing in the database."""
+        admin = self.get_user("admin")
+        dashboard = self.insert_dashboard(
+            "regression_25890_dashboard", "regression-25890", [admin.id]
+        )
+        try:
+            self.login(ADMIN_USERNAME)
+            rv = self.client.get("api/v1/dashboard/")
+            assert rv.status_code == 200
+            data = json.loads(rv.data.decode("utf-8"))
+            assert data["count"] >= 1, (
+                f"Admin received empty dashboard list despite "
+                f"{dashboard.dashboard_title!r} existing; see issue #25890"
+            )
+            titles = [d["dashboard_title"] for d in data["result"]]
+            assert dashboard.dashboard_title in titles, (
+                f"Admin list missing the inserted dashboard. Got titles: {titles}"
+            )
+        finally:
+            db.session.delete(dashboard)
+            db.session.commit()
+
+    def test_get_charts_admin_sees_existing_charts(self):
+        """Regression for #25890: GET /api/v1/chart/ as an Admin user should
+        return existing charts, not an empty list."""
+        admin = self.get_user("admin")
+        chart = self.insert_chart("regression_25890_chart", [admin.id], 1, params="{}")
+        try:
+            self.login(ADMIN_USERNAME)
+            rv = self.client.get("api/v1/chart/")
+            assert rv.status_code == 200
+            data = json.loads(rv.data.decode("utf-8"))
+            assert data["count"] >= 1, (
+                f"Admin received empty chart list despite "
+                f"{chart.slice_name!r} existing; see issue #25890"
+            )
+            names = [c["slice_name"] for c in data["result"]]
+            assert chart.slice_name in names, (
+                f"Admin list missing the inserted chart. Got slice_names: {names}"
+            )
+        finally:
+            db.session.delete(chart)
+            db.session.commit()
+
     def test_get_dashboards_filter(self):
         """
         Dashboard API: Test get dashboards filter