undo e2e (#300)
This commit is contained in:
15
e2e-tests/fixtures/write-index-2.md
Normal file
15
e2e-tests/fixtures/write-index-2.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
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 {
|
|||||||
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 {
|
|||||||
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
25
e2e-tests/undo.spec.ts
Normal file
25
e2e-tests/undo.spec.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
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 }) {
|
|||||||
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({
|
|||||||
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>
|
||||||
|
|||||||
Reference in New Issue
Block a user