From d1a1c07bdd073390b5b9a68ce1c66827109910bf Mon Sep 17 00:00:00 2001 From: Victor Marin <36818606+mdvictor@users.noreply.github.com> Date: Wed, 12 Mar 2025 16:29:06 +0200 Subject: [PATCH] Dashboards: Fix inconsistent variable quoting for repeated panels (#102030) * fix inconsistent variable quoting * remove unnecessary code --- .../layout-default/DashboardGridItem.test.tsx | 21 +++++++++++++++++++ .../layout-default/DashboardGridItem.tsx | 2 ++ 2 files changed, 23 insertions(+) diff --git a/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.test.tsx b/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.test.tsx index 165d00b99a2..ec13a7992c8 100644 --- a/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.test.tsx +++ b/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.test.tsx @@ -58,6 +58,27 @@ describe('PanelRepeaterGridItem', () => { expect(repeater.state.repeatedPanels?.length).toBe(5); }); + it('Should pass isMulti/includeAll values if variable is multi variable and has them set', async () => { + const { scene, repeater } = buildPanelRepeaterScene({ variableQueryTime: 1 }); + + activateFullSceneTree(scene); + + expect(repeater.state.repeatedPanels?.length).toBe(0); + + await new Promise((r) => setTimeout(r, 10)); + + expect(repeater.state.repeatedPanels?.length).toBe(5); + + // LocalValueVariableState is not exposed, so we build this type casting + const variableState = repeater.state.repeatedPanels![0].state.$variables?.state.variables[0].state as { + isMulti?: boolean; + includeAll?: boolean; + }; + + expect(variableState.isMulti).toBe(true); + expect(variableState.includeAll).toBe(true); + }); + it('Should display a panel when there are no options', async () => { const { scene, repeater } = buildPanelRepeaterScene({ variableQueryTime: 1, numberOfOptions: 0 }); diff --git a/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.tsx b/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.tsx index 58ff8dd2082..077128a17e2 100644 --- a/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.tsx +++ b/public/app/features/dashboard-scene/scene/layout-default/DashboardGridItem.tsx @@ -157,6 +157,8 @@ export class DashboardGridItem name: variable.state.name, value: variableValues[index], text: String(variableTexts[index]), + isMulti: variable.state.isMulti, + includeAll: variable.state.includeAll, }), ], }),