1
import { test, expect } from "@gradio/tootils";
3
test("chatinterface works with streaming functions and all buttons behave as expected", async ({
6
const submit_button = page.getByRole("button", { name: "Submit" });
7
const retry_button = page.getByRole("button", { name: "🔄 Retry" });
8
const undo_button = page.getByRole("button", { name: "↩️ Undo" });
9
const clear_button = page.getByRole("button", { name: "🗑️ Clear" });
10
const textbox = page.getByPlaceholder("Type a message...");
12
await textbox.fill("hello");
13
await submit_button.click();
15
await expect(textbox).toHaveValue("");
16
const expected_text_el_0 = page.locator(".bot p", {
17
hasText: "Run 1 - You typed: hello"
19
await expect(expected_text_el_0).toBeVisible();
21
.poll(async () => page.locator(".bot.message").count(), { timeout: 2000 })
24
await textbox.fill("hi");
25
await submit_button.click();
26
await expect(textbox).toHaveValue("");
27
const expected_text_el_1 = page.locator(".bot p", {
28
hasText: "Run 2 - You typed: hi"
30
await expect(expected_text_el_1).toBeVisible();
32
.poll(async () => page.locator(".bot.message").count(), { timeout: 2000 })
35
await undo_button.click();
37
.poll(async () => page.locator(".message.bot").count(), { timeout: 5000 })
39
await expect(textbox).toHaveValue("hi");
41
await retry_button.click();
42
const expected_text_el_2 = page.locator(".bot p", {
43
hasText: "Run 3 - You typed: hello"
45
expect(textbox).toHaveValue("");
46
await expect(expected_text_el_2).toBeVisible();
49
.poll(async () => page.locator(".message.bot").count(), { timeout: 5000 })
52
await textbox.fill("hi");
53
await submit_button.click();
54
await expect(textbox).toHaveValue("");
55
const expected_text_el_3 = page.locator(".bot p", {
56
hasText: "Run 4 - You typed: hi"
58
await expect(expected_text_el_3).toBeVisible();
60
.poll(async () => page.locator(".bot.message").count(), { timeout: 2000 })
63
await clear_button.click();
65
.poll(async () => page.locator(".bot.message").count(), { timeout: 5000 })