Some checks failed
Co-authored-by: Sharang Parnerkar <parnerkarsharang@gmail.com> Reviewed-on: #16
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { test, expect } from "@playwright/test";
|
|
|
|
test.describe("Providers page", () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto("/providers");
|
|
await page.waitForSelector(".providers-page", { timeout: 15_000 });
|
|
});
|
|
|
|
test("providers page loads with header", async ({ page }) => {
|
|
await expect(page.locator(".page-header")).toContainText("Providers");
|
|
});
|
|
|
|
test("provider dropdown has Ollama selected by default", async ({
|
|
page,
|
|
}) => {
|
|
const providerSelect = page
|
|
.locator(".form-group")
|
|
.filter({ hasText: "Provider" })
|
|
.locator("select");
|
|
|
|
await expect(providerSelect).toHaveValue(/ollama/i);
|
|
});
|
|
|
|
test("changing provider updates the model dropdown", async ({ page }) => {
|
|
const providerSelect = page
|
|
.locator(".form-group")
|
|
.filter({ hasText: "Provider" })
|
|
.locator("select");
|
|
|
|
// Get current model options
|
|
const modelSelect = page
|
|
.locator(".form-group")
|
|
.filter({ hasText: /^Model/ })
|
|
.locator("select");
|
|
const initialOptions = await modelSelect.locator("option").allTextContents();
|
|
|
|
// Change to a different provider
|
|
await providerSelect.selectOption({ label: "OpenAI" });
|
|
|
|
// Wait for model list to update
|
|
await page.waitForTimeout(500);
|
|
const updatedOptions = await modelSelect.locator("option").allTextContents();
|
|
|
|
// Model options should differ between providers
|
|
expect(updatedOptions).not.toEqual(initialOptions);
|
|
});
|
|
|
|
test("save button shows confirmation feedback", async ({ page }) => {
|
|
const saveBtn = page.locator("button", { hasText: "Save Configuration" });
|
|
await saveBtn.click();
|
|
|
|
await expect(page.locator(".form-success")).toBeVisible({ timeout: 5_000 });
|
|
await expect(page.locator(".form-success")).toContainText("saved");
|
|
});
|
|
});
|