56 lines
2.2 KiB
TypeScript
56 lines
2.2 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
const adminUser = {
|
|
id: 'user-1',
|
|
email: 'admin@example.test',
|
|
role: 'admin',
|
|
plan: 'internal',
|
|
displayName: 'Dashboard Admin',
|
|
emailVerified: true,
|
|
currentProduct: 'bytelyst-devops',
|
|
products: [{ productId: 'bytelyst-devops', plan: 'internal', role: 'admin' }],
|
|
mfaEnabled: false,
|
|
mfaMethods: [],
|
|
};
|
|
|
|
test.describe('Hermes Mission Control', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.addInitScript(() => {
|
|
window.localStorage.setItem('access_token', 'e2e-access-token');
|
|
window.localStorage.setItem('refresh_token', 'e2e-refresh-token');
|
|
});
|
|
|
|
await page.route('**/auth/me', async (route) => {
|
|
await route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify(adminUser) });
|
|
});
|
|
});
|
|
|
|
test('renders the mission control overview and navigates to companion views', async ({ page }) => {
|
|
await page.goto('/hermes');
|
|
await expect(page.getByRole('heading', { name: 'Hermes Mission Control' })).toBeVisible();
|
|
await expect(page.getByText('Active Missions')).toBeVisible();
|
|
await expect(page.getByText('Founder Attention Queue')).toBeVisible();
|
|
await expect(page.getByText('Product Health Snapshot')).toBeVisible();
|
|
|
|
await page.getByRole('link', { name: 'Task Ledger' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Task Ledger' })).toBeVisible();
|
|
await expect(page.getByText('Task table')).toBeVisible();
|
|
|
|
await page.getByRole('link', { name: 'Open' }).first().click();
|
|
await expect(page.getByText('Hermes learning')).toBeVisible();
|
|
await expect(page.getByText('Timeline')).toBeVisible();
|
|
|
|
await page.goto('/hermes/products');
|
|
await expect(page.getByRole('heading', { name: 'Product Portfolio' })).toBeVisible();
|
|
|
|
await page.goto('/hermes/history');
|
|
await expect(page.getByRole('heading', { name: 'Historical Activity' })).toBeVisible();
|
|
|
|
await page.goto('/hermes/agents');
|
|
await expect(page.getByRole('heading', { name: 'Agent & Tool Observability' })).toBeVisible();
|
|
|
|
await page.goto('/hermes/settings');
|
|
await expect(page.getByRole('heading', { name: 'Settings & Configuration' })).toBeVisible();
|
|
});
|
|
});
|