Prompt gallery (#957)
- [x] show prompt instead of app in autocomplete - [x] use proper array/list for db (tags) - [x] don't do <dyad-prompt> - replace inline
This commit is contained in:
@@ -727,6 +727,30 @@ export class PageObject {
|
||||
await this.page.getByRole("link", { name: "Settings" }).click();
|
||||
}
|
||||
|
||||
async goToLibraryTab() {
|
||||
await this.page.getByRole("link", { name: "Library" }).click();
|
||||
}
|
||||
|
||||
async createPrompt({
|
||||
title,
|
||||
description,
|
||||
content,
|
||||
}: {
|
||||
title: string;
|
||||
description?: string;
|
||||
content: string;
|
||||
}) {
|
||||
await this.page.getByRole("button", { name: "New Prompt" }).click();
|
||||
await this.page.getByRole("textbox", { name: "Title" }).fill(title);
|
||||
if (description) {
|
||||
await this.page
|
||||
.getByRole("textbox", { name: "Description (optional)" })
|
||||
.fill(description);
|
||||
}
|
||||
await this.page.getByRole("textbox", { name: "Content" }).fill(content);
|
||||
await this.page.getByRole("button", { name: "Save" }).click();
|
||||
}
|
||||
|
||||
getTitleBarAppNameButton() {
|
||||
return this.page.getByTestId("title-bar-app-name-button");
|
||||
}
|
||||
|
||||
56
e2e-tests/prompt_library.spec.ts
Normal file
56
e2e-tests/prompt_library.spec.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import { test } from "./helpers/test_helper";
|
||||
import { expect } from "@playwright/test";
|
||||
|
||||
test("create and edit prompt", async ({ po }) => {
|
||||
await po.setUp();
|
||||
await po.goToLibraryTab();
|
||||
await po.createPrompt({
|
||||
title: "title1",
|
||||
description: "desc",
|
||||
content: "prompt1content",
|
||||
});
|
||||
|
||||
await expect(po.page.getByTestId("prompt-card")).toMatchAriaSnapshot();
|
||||
|
||||
await po.page.getByTestId("edit-prompt-button").click();
|
||||
await po.page
|
||||
.getByRole("textbox", { name: "Content" })
|
||||
.fill("prompt1content-edited");
|
||||
await po.page.getByRole("button", { name: "Save" }).click();
|
||||
|
||||
await expect(po.page.getByTestId("prompt-card")).toMatchAriaSnapshot();
|
||||
});
|
||||
|
||||
test("delete prompt", async ({ po }) => {
|
||||
await po.setUp();
|
||||
await po.goToLibraryTab();
|
||||
await po.createPrompt({
|
||||
title: "title1",
|
||||
description: "desc",
|
||||
content: "prompt1content",
|
||||
});
|
||||
|
||||
await po.page.getByTestId("delete-prompt-button").click();
|
||||
await po.page.getByRole("button", { name: "Delete" }).click();
|
||||
|
||||
await expect(po.page.getByTestId("prompt-card")).not.toBeVisible();
|
||||
});
|
||||
|
||||
test("use prompt", async ({ po }) => {
|
||||
await po.setUp();
|
||||
await po.goToLibraryTab();
|
||||
await po.createPrompt({
|
||||
title: "title1",
|
||||
description: "desc",
|
||||
content: "prompt1content",
|
||||
});
|
||||
|
||||
await po.goToAppsTab();
|
||||
await po.getChatInput().click();
|
||||
await po.getChatInput().fill("[dump] @");
|
||||
await po.page.getByRole("menuitem", { name: "Choose title1" }).click();
|
||||
await po.page.getByRole("button", { name: "Send message" }).click();
|
||||
await po.waitForChatCompletion();
|
||||
|
||||
await po.snapshotServerDump("last-message");
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
- heading "title1" [level=3]
|
||||
- paragraph: desc
|
||||
- button:
|
||||
- img
|
||||
- button:
|
||||
- img
|
||||
- text: prompt1content
|
||||
@@ -0,0 +1,7 @@
|
||||
- heading "title1" [level=3]
|
||||
- paragraph: desc
|
||||
- button:
|
||||
- img
|
||||
- button:
|
||||
- img
|
||||
- text: prompt1content-edited
|
||||
@@ -0,0 +1,3 @@
|
||||
===
|
||||
role: user
|
||||
message: [dump] prompt1content
|
||||
Reference in New Issue
Block a user