| import test, { expect, Page } from "@playwright/test"; | |
| test.beforeEach(async ({ page }) => { | |
| await page.goto("/"); | |
| await page.evaluate(() => { | |
| localStorage.setItem("analytics-consent", "true"); | |
| localStorage.setItem("SETTINGS_VERSION", "4"); | |
| }); | |
| }); | |
| const selectGpt4o = async (page: Page) => { | |
| const aiConfigModal = page.getByTestId("ai-config-modal"); | |
| await expect(aiConfigModal).toBeVisible(); | |
| const providerSelectElement = aiConfigModal.getByTestId("llm-provider"); | |
| await providerSelectElement.click(); | |
| const openAiOption = page.getByTestId("provider-item-openai"); | |
| await openAiOption.click(); | |
| const modelSelectElement = aiConfigModal.getByTestId("llm-model"); | |
| await modelSelectElement.click(); | |
| const gpt4Option = page.getByText("gpt-4o", { exact: true }); | |
| await gpt4Option.click(); | |
| return { | |
| aiConfigModal, | |
| providerSelectElement, | |
| modelSelectElement, | |
| }; | |
| }; | |
| test("change ai config settings", async ({ page }) => { | |
| const { aiConfigModal, modelSelectElement, providerSelectElement } = | |
| await selectGpt4o(page); | |
| const saveButton = aiConfigModal.getByText("Save"); | |
| await saveButton.click(); | |
| const settingsButton = page.getByTestId("settings-button"); | |
| await settingsButton.click(); | |
| await expect(providerSelectElement).toHaveValue("OpenAI"); | |
| await expect(modelSelectElement).toHaveValue("gpt-4o"); | |
| }); | |
| test("reset to default settings", async ({ page }) => { | |
| const { aiConfigModal } = await selectGpt4o(page); | |
| const saveButton = aiConfigModal.getByText("Save"); | |
| await saveButton.click(); | |
| const settingsButton = page.getByTestId("settings-button"); | |
| await settingsButton.click(); | |
| const resetButton = aiConfigModal.getByText(/reset to defaults/i); | |
| await resetButton.click(); | |
| const endSessionModal = page.getByTestId("reset-defaults-modal"); | |
| expect(endSessionModal).toBeVisible(); | |
| const confirmButton = endSessionModal.getByText(/reset to defaults/i); | |
| await confirmButton.click(); | |
| await settingsButton.click(); | |
| const providerSelectElement = aiConfigModal.getByTestId("llm-provider"); | |
| await expect(providerSelectElement).toHaveValue("Anthropic"); | |
| const modelSelectElement = aiConfigModal.getByTestId("llm-model"); | |
| await expect(modelSelectElement).toHaveValue(/claude-3.5/i); | |
| }); | |