- Update Playwright tests for Admin, Auth, Gameplay, and Curator to be more robust. - Fix Admin login API to support plain text env vars for testing convenience. - Implement mock Login in Curator page for integration testing. - Add placeholder for Curator Specials page to resolve build errors. - Add CSS injection to tests to hide Next.js dev overlays intercepting clicks. - Improve test selectors and timeouts for better stability in CI/Webkit.
30 lines
1.3 KiB
TypeScript
30 lines
1.3 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('Admin Dashboard', () => {
|
|
// Use a beforeEach hook to log in before each test
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/en/admin');
|
|
await page.addStyleTag({ content: 'nextjs-portal, #nextjs-dev-overlay, [data-nextjs-dev-overlay] { display: none !important; }' });
|
|
|
|
// Check if login is needed
|
|
const passwordInput = page.getByPlaceholder('Password');
|
|
if (await passwordInput.isVisible()) {
|
|
await passwordInput.fill('admin123'); // Default dev password
|
|
await page.getByRole('button', { name: 'Login' }).dispatchEvent('click');
|
|
await page.waitForTimeout(500); // Wait for transition
|
|
await expect(page).toHaveURL(/\/(admin|en\/admin)/);
|
|
}
|
|
});
|
|
|
|
test('Can access Admin Dashboard', async ({ page }) => {
|
|
// Song Library was moved, check for Dashboard title and other sections
|
|
await expect(page.getByRole('heading', { name: 'Hördle Admin Dashboard' })).toBeVisible();
|
|
await expect(page.getByText('Manage Specials')).toBeVisible();
|
|
});
|
|
|
|
test('Shows Daily Puzzles section', async ({ page }) => {
|
|
// "Today's Daily Puzzles" is the text in en.json
|
|
await expect(page.getByText("Today's Daily Puzzles")).toBeVisible();
|
|
});
|
|
});
|