File size: 1,371 Bytes
a03b3ba |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import { test, expect } from "@gradio/tootils";
test("when using an iterative function the UI should update over time as iteration results are received", async ({
page
}) => {
const start_button = await page.locator("button", {
hasText: /Start Iterating/
});
const textbox = await page.getByLabel("Iterative Output");
let output_values: string[] = [];
let last_output_value = "";
let interval = setInterval(async () => {
let value = await textbox.inputValue();
if (value !== last_output_value) {
output_values.push(value);
last_output_value = value;
}
}, 100);
await start_button.click();
await expect(textbox).toHaveValue("8");
clearInterval(interval);
for (let i = 1; i < 8; i++) {
expect(output_values).toContain(i.toString());
}
});
test("when using an iterative function it should be possible to cancel the function, after which the UI should stop updating", async ({
page
}) => {
const start_button = await page.locator("button", {
hasText: /Start Iterating/
});
const stop_button = await page.locator("button", {
hasText: /Stop Iterating/
});
const textbox = await page.getByLabel("Iterative Output");
await start_button.click();
await expect(textbox).toHaveValue("0");
await stop_button.click();
await expect(textbox).toHaveValue("0");
await page.waitForTimeout(1000);
await expect(textbox).toHaveValue("0");
});
|