Skip to content

Commit e8eb686

Browse files
committed
test(react-core): stabilize a2ui renderer test
1 parent 501565c commit e8eb686

1 file changed

Lines changed: 25 additions & 34 deletions

File tree

packages/react-core/src/v2/__tests__/A2UIMessageRenderer.test.tsx

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { describe, it, expect, vi } from "vitest";
2-
import { render, act } from "@testing-library/react";
2+
import { render, act, waitFor } from "@testing-library/react";
33
import React, { useState } from "react";
44
import 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

Comments
 (0)