Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Unified expandable panels with mermaid flows, ZIP export, connection tests, and Playwright smoke coverage.
60 lines
3.0 KiB
TypeScript
60 lines
3.0 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
import { loginToDashboard } from './fixtures';
|
|
|
|
test.describe('Page smoke', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await loginToDashboard(page);
|
|
});
|
|
|
|
test('Dashboard renders Command Deck', async ({ page }) => {
|
|
await expect(page.getByRole('heading', { name: 'Command Deck' })).toBeVisible();
|
|
await expect(page.getByText('Fleet Pipeline')).toBeVisible();
|
|
await expect(page.getByText('Machine Roster')).toBeVisible();
|
|
});
|
|
|
|
test('Crucible renders node roster', async ({ page }) => {
|
|
await page.getByRole('link', { name: /Crucible/i }).click();
|
|
await expect(page.getByRole('heading', { name: 'Crucible' })).toBeVisible({ timeout: 10_000 });
|
|
await expect(page.getByText(/NODE ROSTER/i)).toBeVisible();
|
|
});
|
|
|
|
test('/agents redirects to Crucible', async ({ page }) => {
|
|
await page.goto('/agents');
|
|
await expect(page.getByRole('heading', { name: 'Crucible' })).toBeVisible({ timeout: 10_000 });
|
|
});
|
|
|
|
test('Settings renders Calibrate', async ({ page }) => {
|
|
await page.getByRole('navigation').getByRole('link', { name: 'Calibrate', exact: true }).click();
|
|
await expect(page.getByRole('heading', { name: 'Calibrate' })).toBeVisible({ timeout: 10_000 });
|
|
await expect(page.getByRole('button', { name: 'Save Calibration' })).toBeVisible();
|
|
});
|
|
|
|
test('Settings shows Calibration Control mode toggle', async ({ page }) => {
|
|
await page.getByRole('navigation').getByRole('link', { name: 'Calibrate', exact: true }).click();
|
|
await expect(page.getByRole('heading', { name: 'Calibrate' })).toBeVisible({ timeout: 10_000 });
|
|
await expect(page.getByRole('group', { name: 'Calibration control mode' })).toBeVisible({
|
|
timeout: 10_000,
|
|
});
|
|
await expect(page.getByRole('button', { name: /Logic gates/i })).toBeVisible();
|
|
await expect(page.getByRole('button', { name: /AI Control/i })).toBeVisible();
|
|
await page.getByRole('button', { name: /AI Control/i }).click();
|
|
await expect(page.locator('#cal-ai-endpoint')).toBeVisible();
|
|
await expect(page.getByRole('button', { name: 'Refresh models' })).toBeVisible();
|
|
});
|
|
|
|
test('Builder renders The Forge', async ({ page }) => {
|
|
await page.getByRole('link', { name: /Forge/i }).click();
|
|
await expect(page.getByRole('heading', { level: 1, name: 'Forge', exact: true })).toBeVisible({ timeout: 10_000 });
|
|
await expect(page.getByRole('heading', { name: 'Quick Forge' })).toBeVisible();
|
|
await expect(page.locator('.forge-mode-toggle').getByRole('button', { name: 'Simple', exact: true }).first()).toBeVisible();
|
|
});
|
|
|
|
test('Emberwake Cloud Ecosystem hub loads', async ({ page }) => {
|
|
await page.getByRole('link', { name: /Emberwake/i }).click();
|
|
await expect(page.getByText('Cloud Ecosystem')).toBeVisible({ timeout: 10_000 });
|
|
await page.getByText('Cloud Ecosystem').click();
|
|
await expect(page.getByTestId('cloud-spread-panel')).toBeVisible({ timeout: 10_000 });
|
|
await expect(page.getByTestId('cloud-method-s3-cloudfront')).toBeVisible();
|
|
});
|
|
});
|