From c2f693c8961b06a0686687160be99fcaf8e38dfa Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 9 Apr 2024 07:02:08 +0200 Subject: [PATCH] Add dashboard playwright test --- e2e/dashboard.spec.ts | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 e2e/dashboard.spec.ts diff --git a/e2e/dashboard.spec.ts b/e2e/dashboard.spec.ts new file mode 100644 index 00000000..fe795364 --- /dev/null +++ b/e2e/dashboard.spec.ts @@ -0,0 +1,39 @@ +import { test, expect } from '@playwright/test'; +import { setLoginInfo, defaultMocks, tradeMocks } from './helpers'; + +test.describe('Dashboard', () => { + test.beforeEach(async ({ page }) => { + await defaultMocks(page); + await tradeMocks(page); + await setLoginInfo(page); + }); + test('Dashboard Page', async ({ page }) => { + await Promise.all([ + page.goto('/dashboard'), + page.waitForResponse('**/status'), + page.waitForResponse('**/profit'), + page.waitForResponse('**/balance'), + // page.waitForResponse('**/trades'), + page.waitForResponse('**/whitelist'), + page.waitForResponse('**/blacklist'), + page.waitForResponse('**/locks'), + ]); + await expect(page.locator('.drag-header', { hasText: 'Bot comparison' })).toBeVisible(); + await expect(page.locator('.drag-header', { hasText: 'Bot comparison' })).toBeInViewport(); + await expect(page.locator('.drag-header', { hasText: 'Daily Profit' })).toBeVisible(); + await expect(page.locator('.drag-header', { hasText: 'Daily Profit' })).toBeInViewport(); + await expect(page.locator('.drag-header', { hasText: 'Open trades' })).toBeVisible(); + await expect(page.locator('.drag-header', { hasText: 'Open trades' })).toBeInViewport(); + await expect(page.locator('.drag-header', { hasText: 'Cumulative Profit' })).toBeVisible(); + await expect(page.locator('.drag-header', { hasText: 'Cumulative Profit' })).toBeInViewport(); + + await expect(page.locator('span', { hasText: 'TestBot' })).toBeVisible(); + await expect(page.locator('span', { hasText: 'Summary' })).toBeVisible(); + // Scroll to bottom + await page.locator('.drag-header', { hasText: 'Trades Log' }).scrollIntoViewIfNeeded(); + await expect(page.locator('.drag-header', { hasText: 'Closed Trades' })).toBeInViewport(); + await expect(page.locator('.drag-header', { hasText: 'Profit Distribution' })).toBeInViewport(); + + await expect(page.locator('.drag-header', { hasText: 'Trades Log' })).toBeInViewport(); + }); +});