mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
86 lines
3.1 KiB
TypeScript
86 lines
3.1 KiB
TypeScript
import { test as base } from "./fixtures";
|
|
import {
|
|
appendSettledTimelineTurns,
|
|
createNearTenMegabyteAssistantPng,
|
|
createSettledMockAgent,
|
|
createSmallAssistantPng,
|
|
emitSettledAssistantImage,
|
|
expectAssistantImageNotMounted,
|
|
expectAssistantImageRendered,
|
|
openAssistantImageTimeline,
|
|
openExistingImageAgentTabs,
|
|
remountAndRecoverAssistantImageFromHistory,
|
|
sendFollowUpAndExpectVisibleResponse,
|
|
switchAwayAndBackWithoutImageInstability,
|
|
userPagesUntilAssistantImageRenders,
|
|
} from "./helpers/assistant-images";
|
|
import { seedWorkspace, type SeededWorkspace } from "./helpers/seed-client";
|
|
|
|
const test = base.extend<{ imageWorkspace: SeededWorkspace }>({
|
|
imageWorkspace: async ({ page: _page }, provide) => {
|
|
const workspace = await seedWorkspace({ repoPrefix: "agent-tab-image-stability-" });
|
|
try {
|
|
await provide(workspace);
|
|
} finally {
|
|
await workspace.cleanup();
|
|
}
|
|
},
|
|
});
|
|
|
|
test("switching between settled agent tabs keeps a real assistant PNG rendered", async ({
|
|
imageWorkspace: workspace,
|
|
page,
|
|
}) => {
|
|
test.setTimeout(120_000);
|
|
const image = await createSmallAssistantPng(workspace, {
|
|
alt: "Real file image",
|
|
fileName: "assistant-preview.png",
|
|
});
|
|
const imageAgent = await createSettledMockAgent(workspace, "Image timeline");
|
|
const otherAgent = await createSettledMockAgent(workspace, "Other timeline");
|
|
await emitSettledAssistantImage(workspace.client, imageAgent, image);
|
|
|
|
await openExistingImageAgentTabs(page, { imageAgent, otherAgent });
|
|
await expectAssistantImageRendered(page, image);
|
|
await switchAwayAndBackWithoutImageInstability(page, { image, imageAgent, otherAgent });
|
|
});
|
|
|
|
test("a real assistant PNG remains reachable through pagination and remount", async ({
|
|
imageWorkspace: workspace,
|
|
page,
|
|
}) => {
|
|
test.setTimeout(120_000);
|
|
const image = await createSmallAssistantPng(workspace, {
|
|
alt: "Paginated real file image",
|
|
fileName: "paginated-assistant-preview.png",
|
|
});
|
|
const imageAgent = await createSettledMockAgent(workspace, "Paginated image timeline");
|
|
await emitSettledAssistantImage(workspace.client, imageAgent, image);
|
|
await appendSettledTimelineTurns(workspace.client, imageAgent, 40);
|
|
|
|
await openAssistantImageTimeline(page, imageAgent);
|
|
await expectAssistantImageNotMounted(page, image);
|
|
await userPagesUntilAssistantImageRenders(page, image);
|
|
await remountAndRecoverAssistantImageFromHistory(page, image);
|
|
});
|
|
|
|
test("a near-10 MiB real assistant PNG renders and the app remains responsive", async ({
|
|
imageWorkspace: workspace,
|
|
page,
|
|
}) => {
|
|
test.setTimeout(180_000);
|
|
const image = await createNearTenMegabyteAssistantPng(workspace, {
|
|
alt: "Large real file image",
|
|
fileName: "large-assistant-preview.png",
|
|
});
|
|
const imageAgent = await createSettledMockAgent(workspace, "Large image timeline");
|
|
await emitSettledAssistantImage(workspace.client, imageAgent, image);
|
|
|
|
await openAssistantImageTimeline(page, imageAgent);
|
|
await expectAssistantImageRendered(page, image);
|
|
await sendFollowUpAndExpectVisibleResponse(page, {
|
|
prompt: "confirm responsiveness: emit 1 coalesced agent stream updates",
|
|
response: "stress-update-0",
|
|
});
|
|
});
|