|
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);
|
|
});
|
|
|