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'); +});
