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/07/06 23:40:52 UTC

(superset) branch test/issue-34157-deckgl-legend-ctrl-click created (now 11c2642f1ba)

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

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


      at 11c2642f1ba test(preset-chart-deckgl): prove ctrl+click on legend no longer opens a new tab (#34157)

This branch includes the following new commits:

     new 11c2642f1ba test(preset-chart-deckgl): prove ctrl+click on legend no longer opens a new tab (#34157)

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(preset-chart-deckgl): prove ctrl+click on legend no longer opens a new tab (#34157)

Posted by ru...@apache.org.
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 <no...@anthropic.com>
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 <no...@anthropic.com>
---
 .../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');
+});