File size: 2,359 Bytes
246d201
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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);
});