Skip to main content
Glama
e2e-playwright.ts2.85 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