Skip to main content
Glama
e2e-playwright.ts2.69 kB
import { test, expect } from "@playwright/test"; // ============================================ // E2E Tests // ============================================ test.describe("Authentication Flow", () => { test.beforeEach(async ({ page }) => { await page.goto("/login"); }); test("should login with valid credentials", async ({ page }) => { // Fill form await page.getByLabel("Email").fill("user@example.com"); await page.getByLabel("Password").fill("password123"); // Submit await page.getByRole("button", { name: "Sign In" }).click(); // Verify redirect and content await expect(page).toHaveURL("/dashboard"); await expect(page.getByText("Welcome Back")).toBeVisible(); }); test("should show error on invalid credentials", async ({ page }) => { await page.getByLabel("Email").fill("wrong@example.com"); await page.getByLabel("Password").fill("wrongpass"); await page.getByRole("button", { name: "Sign In" }).click(); await expect(page.getByText("Invalid email or password")).toBeVisible(); await expect(page).toHaveURL("/login"); }); }); test.describe("Navigation", () => { test("should navigate between pages", async ({ page }) => { await page.goto("/"); await page.getByRole("link", { name: "About" }).click(); await expect(page).toHaveURL("/about"); await expect(page.locator("h1")).toContainText("About Us"); await page.getByRole("link", { name: "Home" }).click(); await expect(page).toHaveURL("/"); }); }); // ============================================ // API Testing // ============================================ test.describe("API Endpoint", () => { test("should create a new post", async ({ request }) => { const response = await request.post("/api/posts", { data: { title: "Playwright Test", content: "Testing API endpoints", }, }); expect(response.ok()).toBeTruthy(); const data = await response.json(); expect(data).toHaveProperty("id"); expect(data.title).toBe("Playwright Test"); }); }); // ============================================ // Visual Regression Testing // ============================================ test("homepage should match screenshot", async ({ page }) => { await page.goto("/"); await expect(page).toHaveScreenshot("landing-page.png"); }); // ============================================ // Mobile Viewport Request // ============================================ test.use({ viewport: { width: 375, height: 667 } }); // iPhone SE test("should display mobile menu", async ({ page }) => { await page.goto("/"); await expect(page.locator(".mobile-menu-btn")).toBeVisible(); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/millsydotdev/Code-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server