78 lines
2.6 KiB
TypeScript
78 lines
2.6 KiB
TypeScript
import { expect, test } from '@playwright/test'
|
|
|
|
test.describe('Game navigation slots', () => {
|
|
test('should show Memory Pairs game name in nav when navigating to matching game', async ({
|
|
page,
|
|
}) => {
|
|
await page.goto('/games/matching')
|
|
|
|
// Wait for the page to load
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
// Look for the game name in the navigation
|
|
const gameNav = page.locator('[data-testid="nav-slot"], h1:has-text("Memory Pairs")')
|
|
await expect(gameNav).toBeVisible()
|
|
await expect(gameNav).toContainText('Memory Pairs')
|
|
})
|
|
|
|
test('should show Memory Lightning game name in nav when navigating to memory quiz', async ({
|
|
page,
|
|
}) => {
|
|
await page.goto('/games/memory-quiz')
|
|
|
|
// Wait for the page to load
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
// Look for the game name in the navigation
|
|
const gameNav = page.locator('[data-testid="nav-slot"], h1:has-text("Memory Lightning")')
|
|
await expect(gameNav).toBeVisible()
|
|
await expect(gameNav).toContainText('Memory Lightning')
|
|
})
|
|
|
|
test('should maintain game name in nav after page reload', async ({ page }) => {
|
|
// Navigate to matching game
|
|
await page.goto('/games/matching')
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
// Verify game name appears
|
|
const gameNav = page.locator('h1:has-text("Memory Pairs")')
|
|
await expect(gameNav).toBeVisible()
|
|
|
|
// Reload the page
|
|
await page.reload()
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
// Verify game name still appears after reload
|
|
await expect(gameNav).toBeVisible()
|
|
await expect(gameNav).toContainText('Memory Pairs')
|
|
})
|
|
|
|
test('should show different game names when navigating between games', async ({ page }) => {
|
|
// Start with matching game
|
|
await page.goto('/games/matching')
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
const matchingNav = page.locator('h1:has-text("Memory Pairs")')
|
|
await expect(matchingNav).toBeVisible()
|
|
|
|
// Navigate to memory quiz
|
|
await page.goto('/games/memory-quiz')
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
const quizNav = page.locator('h1:has-text("Memory Lightning")')
|
|
await expect(quizNav).toBeVisible()
|
|
|
|
// Verify the matching game name is gone
|
|
await expect(matchingNav).not.toBeVisible()
|
|
})
|
|
|
|
test('should not show game name on non-game pages', async ({ page }) => {
|
|
await page.goto('/')
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
// Should not see any game names on the home page
|
|
const gameNavs = page.locator('h1:has-text("Memory Pairs"), h1:has-text("Memory Lightning")')
|
|
await expect(gameNavs).toHaveCount(0)
|
|
})
|
|
})
|