test: E2E specs for signup, fight replay, and leaderboard flows

Bot registration (3 tests), human registration (1 test), fight replay
(2 tests for JS error checking), and leaderboard (3 tests for rendering).
All use Playwright with text-based selectors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-13 05:15:46 +00:00
co-authored by Claude Opus 4.6
parent a7520be0e7
commit 5bc8932d25
4 changed files with 109 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
import { test, expect } from '@playwright/test'
test.describe('leaderboard', () => {
test('leaderboard page loads and shows rankings header', async ({ page }) => {
await page.goto('/leaderboard')
// Should show the rankings header
await expect(page.getByText(/rankings/i).first()).toBeVisible({ timeout: 10_000 })
})
test('leaderboard has season toggle buttons', async ({ page }) => {
await page.goto('/leaderboard')
// Should have season/alltime toggle
await expect(page.getByText(/this season/i).first()).toBeVisible({ timeout: 10_000 })
await expect(page.getByText(/all time/i).first()).toBeVisible()
})
test('leaderboard shows tier column headers', async ({ page }) => {
await page.goto('/leaderboard')
await page.waitForTimeout(2000)
// Should show table headers for rankings
const content = await page.textContent('body')
expect(content).toMatch(/elo|tier|fighter/i)
})
})