Add comprehensive testing covering 420 unit/handler tests across 24 Vitest files, 9 Playwright E2E specs, accessibility scans, and visual regression. Includes GitHub Actions CI, Husky pre-push hook, and TESTING.md docs.
41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
import { test, expect } from '@playwright/test'
|
|
|
|
test.describe('coming-soon page', () => {
|
|
test('renders with heading and login form', async ({ page }) => {
|
|
await page.goto('/coming-soon')
|
|
|
|
await expect(page.locator('h1')).toContainText('Ghost Guild')
|
|
await expect(page.locator('input[type="email"]')).toBeVisible()
|
|
await expect(page.getByRole('button', { name: 'Send Magic Link' })).toBeVisible()
|
|
})
|
|
|
|
test('shows "Coming Soon" text for unauthenticated visitors', async ({ page }) => {
|
|
await page.goto('/coming-soon')
|
|
|
|
await expect(page.getByText('Coming Soon')).toBeVisible()
|
|
})
|
|
})
|
|
|
|
test.describe('public routes accessible when gate is off', () => {
|
|
test('home page loads', async ({ page }) => {
|
|
await page.goto('/')
|
|
|
|
// Should not redirect to /coming-soon
|
|
expect(page.url()).not.toContain('/coming-soon')
|
|
await expect(page.getByText('Ghost Guild')).toBeVisible()
|
|
})
|
|
|
|
test('events page loads', async ({ page }) => {
|
|
await page.goto('/events')
|
|
|
|
expect(page.url()).not.toContain('/coming-soon')
|
|
await expect(page.locator('h1')).toContainText('Events')
|
|
})
|
|
|
|
test('join page loads', async ({ page }) => {
|
|
await page.goto('/join')
|
|
|
|
expect(page.url()).not.toContain('/coming-soon')
|
|
await expect(page.locator('h1')).toContainText('Join Ghost Guild')
|
|
})
|
|
})
|