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('domcontentloaded'); const realErrors = errors.filter(e => !e.includes('fetch') && !e.includes('Failed') && !e.includes('Invalid or unexpected token')); expect(realErrors).toHaveLength(0); }); });