37 lines
1.5 KiB
TypeScript
37 lines
1.5 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('Privacy Page', () => {
|
|
test('renders privacy policy with all sections', async ({ page }) => {
|
|
await page.goto('/privacy');
|
|
await expect(page.getByText('Privacy Policy')).toBeVisible();
|
|
await expect(page.getByText('1. What We Collect')).toBeVisible();
|
|
await expect(page.getByText('2. Local Storage')).toBeVisible();
|
|
await expect(page.getByText('3. Analytics')).toBeVisible();
|
|
await expect(page.getByText('4. Notifications')).toBeVisible();
|
|
await expect(page.getByText('5. Cloud Sync (Future)')).toBeVisible();
|
|
await expect(page.getByText('6. Third Parties')).toBeVisible();
|
|
await expect(page.getByText('7. Contact')).toBeVisible();
|
|
});
|
|
|
|
test('has back link to dashboard', async ({ page }) => {
|
|
await page.goto('/privacy');
|
|
await expect(page.getByRole('link', { name: /back to chronomind/i })).toBeVisible();
|
|
});
|
|
});
|
|
|
|
test.describe('Terms Page', () => {
|
|
test('renders terms of service page', async ({ page }) => {
|
|
await page.goto('/terms');
|
|
await expect(page.locator('h1').first()).toBeVisible();
|
|
});
|
|
|
|
test('page renders without console errors', async ({ page }) => {
|
|
const errors: string[] = [];
|
|
page.on('pageerror', err => errors.push(err.message));
|
|
await page.goto('/terms');
|
|
await page.waitForLoadState('networkidle');
|
|
const realErrors = errors.filter(e => !e.includes('fetch') && !e.includes('Failed'));
|
|
expect(realErrors).toHaveLength(0);
|
|
});
|
|
});
|