Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
89
frontend/e2e/dashboard.spec.ts
Normal file
89
frontend/e2e/dashboard.spec.ts
Normal file
@@ -0,0 +1,89 @@
|
||||
import { test, expect } from '@playwright/test'
|
||||
|
||||
test.describe('Dashboard Page', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await page.goto('/')
|
||||
})
|
||||
|
||||
test('loads dashboard page', async ({ page }) => {
|
||||
await expect(page).toHaveTitle(/FXQ One|Crypto Trader/i)
|
||||
})
|
||||
|
||||
test('displays main sections', async ({ page }) => {
|
||||
// Check for main dashboard elements
|
||||
await expect(page.getByRole('heading', { level: 4 })).toBeVisible()
|
||||
|
||||
// Wait for content to load
|
||||
await page.waitForLoadState('networkidle')
|
||||
|
||||
// Check for navigation elements
|
||||
await expect(page.getByRole('navigation')).toBeVisible()
|
||||
})
|
||||
|
||||
test('displays autopilot configuration section', async ({ page }) => {
|
||||
await page.waitForLoadState('networkidle')
|
||||
|
||||
// Look for autopilot related elements
|
||||
await expect(page.getByText(/autopilot/i).first()).toBeVisible()
|
||||
})
|
||||
|
||||
test('navigation works correctly', async ({ page }) => {
|
||||
// Navigate to different pages
|
||||
await page.click('text=Trading')
|
||||
await expect(page).toHaveURL(/.*trading/i)
|
||||
|
||||
await page.click('text=Portfolio')
|
||||
await expect(page).toHaveURL(/.*portfolio/i)
|
||||
|
||||
await page.click('text=Strategies')
|
||||
await expect(page).toHaveURL(/.*strateg/i)
|
||||
|
||||
await page.click('text=Settings')
|
||||
await expect(page).toHaveURL(/.*settings/i)
|
||||
|
||||
// Go back to dashboard
|
||||
await page.click('text=Dashboard')
|
||||
await expect(page).toHaveURL(/.*\/$/)
|
||||
})
|
||||
|
||||
test('displays real-time status indicators', async ({ page }) => {
|
||||
await page.waitForLoadState('networkidle')
|
||||
|
||||
// Look for status indicators (chips, badges, etc.)
|
||||
const statusChips = page.locator('.MuiChip-root')
|
||||
await expect(statusChips.first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
})
|
||||
|
||||
test.describe('Dashboard - Autopilot Controls', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await page.goto('/')
|
||||
await page.waitForLoadState('networkidle')
|
||||
})
|
||||
|
||||
test('shows autopilot start button', async ({ page }) => {
|
||||
const startButton = page.getByRole('button', { name: /start.*autopilot/i })
|
||||
// Button should be visible
|
||||
await expect(startButton).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('symbol selection is available', async ({ page }) => {
|
||||
// Look for symbol selector (autocomplete or select)
|
||||
const symbolInput = page.locator('[data-testid="autopilot-symbols"], .MuiAutocomplete-root, input[placeholder*="symbol" i]').first()
|
||||
await expect(symbolInput).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
})
|
||||
|
||||
test.describe('Dashboard - Charts', () => {
|
||||
test('chart grid displays', async ({ page }) => {
|
||||
await page.goto('/')
|
||||
await page.waitForLoadState('networkidle')
|
||||
|
||||
// Wait for charts to potentially load
|
||||
await page.waitForTimeout(2000)
|
||||
|
||||
// Look for chart container
|
||||
const chartArea = page.locator('[class*="chart"], canvas, svg').first()
|
||||
await expect(chartArea).toBeVisible({ timeout: 15000 })
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user