From 334161f2f511689b3998c6e041d9c25f792a2721 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 18 May 2026 09:38:20 +0900 Subject: [PATCH] test(query-devtools/Explorer): add tests for 'Map' and iterable rendering branches (#10721) --- .../src/__tests__/Explorer.test.tsx | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/packages/query-devtools/src/__tests__/Explorer.test.tsx b/packages/query-devtools/src/__tests__/Explorer.test.tsx index 30bc632b316..a242cc19cba 100644 --- a/packages/query-devtools/src/__tests__/Explorer.test.tsx +++ b/packages/query-devtools/src/__tests__/Explorer.test.tsx @@ -120,4 +120,44 @@ describe('Explorer', () => { expect(rendered.getByText('30')).toBeInTheDocument() }) }) + + describe('Map and iterable values', () => { + it('should preserve "Map" keys as labels when expanded', () => { + const rendered = renderExplorer({ + label: 'm', + value: new Map([ + ['first', 1], + ['second', 2], + ]), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.getByText('first:')).toBeInTheDocument() + expect(rendered.getByText('second:')).toBeInTheDocument() + }) + + it('should mark an iterable value with an "(Iterable)" prefix on the expander', () => { + const rendered = renderExplorer({ + label: 's', + value: new Set(['x', 'y']), + }) + + expect( + rendered.getByRole('button', { expanded: false }).textContent, + ).toContain('(Iterable)') + }) + + it('should render iterable children under their numeric index when expanded', () => { + const rendered = renderExplorer({ + label: 's', + value: new Set(['x', 'y']), + }) + + fireEvent.click(rendered.getByRole('button', { expanded: false })) + + expect(rendered.getByText('0:')).toBeInTheDocument() + expect(rendered.getByText('1:')).toBeInTheDocument() + }) + }) })