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

rusackas pushed a commit to branch test/issue-34157-deckgl-legend-ctrl-click
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 11c2642f1ba6ba5811b8fa05c8ed6c336f276002
Author: Claude Code <[email protected]>
AuthorDate: Mon Jul 6 16:40:12 2026 -0700

    test(preset-chart-deckgl): prove ctrl+click on legend no longer opens a new 
tab (#34157)
    
    Co-Authored-By: Claude Fable 5 <[email protected]>
---
 .../src/components/Legend.test.tsx                 | 32 +++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git 
a/superset-frontend/plugins/preset-chart-deckgl/src/components/Legend.test.tsx 
b/superset-frontend/plugins/preset-chart-deckgl/src/components/Legend.test.tsx
index 009d612a6f2..c67d5fcb53a 100644
--- 
a/superset-frontend/plugins/preset-chart-deckgl/src/components/Legend.test.tsx
+++ 
b/superset-frontend/plugins/preset-chart-deckgl/src/components/Legend.test.tsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 // eslint-disable-next-line import/no-extraneous-dependencies
-import { render, screen } from '@testing-library/react';
+import { createEvent, fireEvent, render, screen } from 
'@testing-library/react';
 // eslint-disable-next-line import/no-extraneous-dependencies
 import '@testing-library/jest-dom';
 import { supersetTheme, ThemeProvider } from '@apache-superset/core/theme';
@@ -69,3 +69,33 @@ test('leaves labels untouched when no format is provided', 
() => {
 
   expect(screen.getByText('[1, 81)')).toBeInTheDocument();
 });
+
+test('ctrl+clicking a legend item toggles the category without opening a new 
tab', () => {
+  // Regression proof for #34157: legend items are href="#" anchors, so a
+  // ctrl+click whose default action is not prevented would ask the browser
+  // to open the "#" href in a new tab instead of just toggling the layer.
+  const toggleCategory = jest.fn();
+  renderWithTheme(
+    <Legend
+      format={null}
+      categories={{
+        cat1: { enabled: true, color: [255, 0, 0] },
+        cat2: { enabled: false, color: [0, 0, 255] },
+      }}
+      toggleCategory={toggleCategory}
+    />,
+  );
+
+  const legendItem = screen.getByRole('button', { name: 'cat1' });
+  const ctrlClickEvent = createEvent.click(legendItem, {
+    ctrlKey: true,
+  }) as MouseEvent;
+  fireEvent(legendItem, ctrlClickEvent);
+
+  // preventDefault() in the onClick handler is what stops the browser's
+  // native ctrl+click "open link in new tab" behavior on the anchor.
+  expect(ctrlClickEvent.defaultPrevented).toBe(true);
+  expect(ctrlClickEvent.ctrlKey).toBe(true);
+  expect(toggleCategory).toHaveBeenCalledTimes(1);
+  expect(toggleCategory).toHaveBeenCalledWith('cat1');
+});

Reply via email to