2026-07-16 06:19:58 -04:00
|
|
|
import { test, expect } from '@playwright/test';
|
|
|
|
|
import { login } from './helpers/auth';
|
|
|
|
|
|
|
|
|
|
test.describe('Analytics', () => {
|
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
|
|
|
await login(page);
|
|
|
|
|
await page.goto('/analytics');
|
|
|
|
|
await expect(page.getByRole('heading', { name: /analytics/i })).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
2026-08-10 08:53:18 +00:00
|
|
|
test('renders the analytics cards', async ({ page }) => {
|
|
|
|
|
await expect(page.getByText(/tasks completed/i)).toBeVisible({ timeout: 10_000 });
|
|
|
|
|
await expect(page.getByText(/created vs completed/i)).toBeVisible();
|
|
|
|
|
await expect(page.getByText(/habit completion/i)).toBeVisible();
|
|
|
|
|
await expect(page.getByText(/productivity heatmap/i)).toBeVisible();
|
2026-07-16 06:19:58 -04:00
|
|
|
});
|
|
|
|
|
|
2026-08-10 08:53:18 +00:00
|
|
|
test('switches the reporting range', async ({ page }) => {
|
|
|
|
|
await page.getByRole('combobox', { name: /last 30 days/i }).click();
|
|
|
|
|
await page.getByRole('option', { name: /last 90 days/i }).click();
|
2026-07-16 06:19:58 -04:00
|
|
|
|
2026-08-10 08:53:18 +00:00
|
|
|
await expect(page.getByRole('combobox', { name: /last 90 days/i })).toBeVisible({
|
|
|
|
|
timeout: 10_000,
|
2026-07-16 06:19:58 -04:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|