11import { describe , it , expect , vi } from "vitest" ;
2- import { render , act } from "@testing-library/react" ;
2+ import { render , act , waitFor } from "@testing-library/react" ;
33import React , { useState } from "react" ;
44import type { Theme } from "@copilotkit/a2ui-renderer" ;
55
@@ -52,16 +52,13 @@ describe("A2UIMessageRenderer rendering integration", () => {
5252 < RenderComponent content = { content } agent = { null } />
5353 ) ;
5454
55- let container : HTMLElement ;
56- await act ( async ( ) => {
57- const result = render ( < TestWrapper /> ) ;
58- container = result . container ;
59- } ) ;
55+ const { container } = render ( < TestWrapper /> ) ;
6056
61- const surfaceElement = container ! . querySelector (
62- "[data-surface-id='test-surface']" ,
63- ) ;
64- expect ( surfaceElement ) . not . toBeNull ( ) ;
57+ await waitFor ( ( ) => {
58+ expect (
59+ container . querySelector ( "[data-surface-id='test-surface']" ) ,
60+ ) . not . toBeNull ( ) ;
61+ } ) ;
6562 } ) ;
6663
6764 it ( "should update surface when operations change" , async ( ) => {
@@ -104,14 +101,13 @@ describe("A2UIMessageRenderer rendering integration", () => {
104101 return < RenderComponent content = { content } agent = { null } /> ;
105102 } ;
106103
107- let container : HTMLElement ;
108- await act ( async ( ) => {
109- const result = render ( < TestWrapper /> ) ;
110- container = result . container ;
111- } ) ;
104+ const { container } = render ( < TestWrapper /> ) ;
112105
113- const surfaceElement = container ! . querySelector ( "[data-surface-id='test']" ) ;
114- expect ( surfaceElement ) . not . toBeNull ( ) ;
106+ await waitFor ( ( ) => {
107+ expect (
108+ container . querySelector ( "[data-surface-id='test']" ) ,
109+ ) . not . toBeNull ( ) ;
110+ } ) ;
115111
116112 await act ( async ( ) => {
117113 setContent ( {
@@ -142,8 +138,11 @@ describe("A2UIMessageRenderer rendering integration", () => {
142138 } ) ;
143139 } ) ;
144140
145- const updatedSurface = container ! . querySelector ( "[data-surface-id='test']" ) ;
146- expect ( updatedSurface ) . not . toBeNull ( ) ;
141+ await waitFor ( ( ) => {
142+ expect (
143+ container . querySelector ( "[data-surface-id='test']" ) ,
144+ ) . not . toBeNull ( ) ;
145+ } ) ;
147146 } ) ;
148147
149148 it ( "should return null when no operations are provided" , async ( ) => {
@@ -158,13 +157,9 @@ describe("A2UIMessageRenderer rendering integration", () => {
158157 < RenderComponent content = { { a2ui_operations : [ ] } } agent = { null } />
159158 ) ;
160159
161- let container : HTMLElement ;
162- await act ( async ( ) => {
163- const result = render ( < TestWrapper /> ) ;
164- container = result . container ;
165- } ) ;
160+ const { container } = render ( < TestWrapper /> ) ;
166161
167- expect ( container ! . querySelector ( "[data-surface-id]" ) ) . toBeNull ( ) ;
162+ expect ( container . querySelector ( "[data-surface-id]" ) ) . toBeNull ( ) ;
168163 } ) ;
169164
170165 it ( "should render multiple surfaces independently" , async ( ) => {
@@ -226,15 +221,11 @@ describe("A2UIMessageRenderer rendering integration", () => {
226221 < RenderComponent content = { content } agent = { null } />
227222 ) ;
228223
229- let container : HTMLElement ;
230- await act ( async ( ) => {
231- const result = render ( < TestWrapper /> ) ;
232- container = result . container ;
233- } ) ;
224+ const { container } = render ( < TestWrapper /> ) ;
234225
235- const surface1 = container ! . querySelector ( "[data-surface-id='s1']" ) ;
236- const surface2 = container ! . querySelector ( "[data-surface-id='s2 ']" ) ;
237- expect ( surface1 ) . not . toBeNull ( ) ;
238- expect ( surface2 ) . not . toBeNull ( ) ;
226+ await waitFor ( ( ) => {
227+ expect ( container . querySelector ( "[data-surface-id='s1 ']" ) ) . not . toBeNull ( ) ;
228+ expect ( container . querySelector ( "[data-surface-id='s2']" ) ) . not . toBeNull ( ) ;
229+ } ) ;
239230 } ) ;
240231} ) ;
0 commit comments