Unverified 提交 44048235 authored 作者: Will Chen's avatar Will Chen 提交者: GitHub

undo e2e (#300)

上级 5c8cd05c
OK, I'm going to do some writing now...
<dyad-write path="src/pages/Index.tsx" description="write-description">
const Index = () => {
return (
<div>
Testing:write-index(2)!
</div>
);
};
export default Index;
</dyad-write>
And it's done!
...@@ -73,10 +73,18 @@ class PageObject { ...@@ -73,10 +73,18 @@ class PageObject {
await this.getRetryButton().click(); await this.getRetryButton().click();
} }
async clickUndo() {
await this.getUndoButton().click();
}
private getRetryButton() { private getRetryButton() {
return this.page.getByRole("button", { name: "Retry" }); return this.page.getByRole("button", { name: "Retry" });
} }
private getUndoButton() {
return this.page.getByRole("button", { name: "Undo" });
}
async sendPrompt(prompt: string) { async sendPrompt(prompt: string) {
await this.page await this.page
.getByRole("textbox", { name: "Ask Dyad to build..." }) .getByRole("textbox", { name: "Ask Dyad to build..." })
...@@ -84,7 +92,7 @@ class PageObject { ...@@ -84,7 +92,7 @@ class PageObject {
await this.page await this.page
.getByRole("textbox", { name: "Ask Dyad to build..." }) .getByRole("textbox", { name: "Ask Dyad to build..." })
.fill(prompt); .fill(prompt);
await this.page.getByRole("button", { name: "Start new chat" }).click(); await this.page.getByRole("button", { name: "Send message" }).click();
await this.waitForChatCompletion(); await this.waitForChatCompletion();
} }
......
import { test } from "./helpers/test_helper";
import { expect } from "@playwright/test";
test("undo", async ({ po }) => {
await po.setUp({ autoApprove: true });
await po.sendPrompt("tc=write-index");
await po.sendPrompt("tc=write-index-2");
const iframe = po.getPreviewIframeElement();
await expect(
iframe.contentFrame().getByText("Testing:write-index(2)!"),
).toBeVisible({
// This can be pretty slow because it's waiting for the app to build.
timeout: 15_000,
});
await po.clickUndo();
await expect(
iframe.contentFrame().getByText("Testing:write-index!"),
).toBeVisible({
// Also, could be slow.
timeout: 15_000,
});
});
...@@ -333,6 +333,7 @@ export function ChatInput({ chatId }: { chatId?: number }) { ...@@ -333,6 +333,7 @@ export function ChatInput({ chatId }: { chatId?: number }) {
onClick={handleSubmit} onClick={handleSubmit}
disabled={!inputValue.trim() && attachments.length === 0} disabled={!inputValue.trim() && attachments.length === 0}
className="px-2 py-2 mt-1 mr-2 hover:bg-(--background-darkest) text-(--sidebar-accent-fg) rounded-lg disabled:opacity-50" className="px-2 py-2 mt-1 mr-2 hover:bg-(--background-darkest) text-(--sidebar-accent-fg) rounded-lg disabled:opacity-50"
title="Send message"
> >
<SendIcon size={20} /> <SendIcon size={20} />
</button> </button>
......
...@@ -139,7 +139,7 @@ export function HomeChatInput({ ...@@ -139,7 +139,7 @@ export function HomeChatInput({
onClick={handleCustomSubmit} onClick={handleCustomSubmit}
disabled={!inputValue.trim() && attachments.length === 0} disabled={!inputValue.trim() && attachments.length === 0}
className="px-2 py-2 mt-1 mr-2 hover:bg-(--background-darkest) text-(--sidebar-accent-fg) rounded-lg disabled:opacity-50" className="px-2 py-2 mt-1 mr-2 hover:bg-(--background-darkest) text-(--sidebar-accent-fg) rounded-lg disabled:opacity-50"
title="Start new chat" title="Send message"
> >
<SendIcon size={20} /> <SendIcon size={20} />
</button> </button>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论