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

rusackas pushed a commit to branch fix-datasource-editor-sort-and-stale-sql
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 5148c2b7da670589c77eaec11b498ddcb1965027
Author: Evan Rusackas <[email protected]>
AuthorDate: Thu Oct 1 07:57:19 2026 -0700

    fix(dataset-editor): query document, not container, for modal's Ace editor
    
    The underlying antd Modal (no getContainer override) portals its content
    to document.body rather than rendering inside RTL's container, so the
    new open/close regression test's container.querySelectorAll('.ace_editor')
    assertions could never see the modal's Ace instance mount and timed out.
    
    Co-Authored-By: Evan Rusackas <[email protected]>
    Co-Authored-By: Claude Sonnet 5 <[email protected]>
---
 .../src/explore/components/controls/TextAreaControl.test.tsx      | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/superset-frontend/src/explore/components/controls/TextAreaControl.test.tsx 
b/superset-frontend/src/explore/components/controls/TextAreaControl.test.tsx
index 88003970373..76d791ed03c 100644
--- a/superset-frontend/src/explore/components/controls/TextAreaControl.test.tsx
+++ b/superset-frontend/src/explore/components/controls/TextAreaControl.test.tsx
@@ -183,12 +183,16 @@ describe('TextArea', () => {
     // matching role "button" with the same accessible name; target the
     // wrapper directly via its data-test id instead.
     fireEvent.click(screen.getByTestId('span-modal-trigger'));
+    // The underlying antd Modal (no `getContainer` override) portals its
+    // content to `document.body` rather than rendering inside RTL's
+    // `container`, so the modal's Ace instance has to be counted via
+    // `document`, not `container`, or this would never see it mount.
     await waitFor(() => {
-      expect(container.querySelectorAll('.ace_editor')).toHaveLength(2);
+      expect(document.querySelectorAll('.ace_editor')).toHaveLength(2);
     });
     fireEvent.click(screen.getByTestId('close-modal-btn'));
     await waitFor(() => {
-      expect(container.querySelectorAll('.ace_editor')).toHaveLength(1);
+      expect(document.querySelectorAll('.ace_editor')).toHaveLength(1);
     });
 
     fireEvent.click(screen.getByText('sync'));

Reply via email to