Reorg trade test

This commit is contained in:
Matthias 2024-04-08 07:33:42 +02:00
parent faf03f7738
commit 6463fea8d8

View File

@ -26,117 +26,120 @@ function tradeMocks(page) {
}); });
} }
test('Trade', async ({ page }) => { test.describe('Trade', () => {
await defaultMocks(page); test.beforeEach(async ({ page }) => {
await setLoginInfo(page); await defaultMocks(page);
await setLoginInfo(page);
await tradeMocks(page); await tradeMocks(page);
await page.goto('/trade'); await page.goto('/trade');
});
test('Trade page', async ({ page }) => {
// Wait for network requests
// await page.waitForResponse('**/ping');
await page.waitForResponse('**/status');
await page.waitForResponse('**/profit');
await page.waitForResponse('**/balance');
// await page.waitForResponse('**/trades');
await page.waitForResponse('**/whitelist');
await page.waitForResponse('**/blacklist');
await page.waitForResponse('**/locks');
// Wait for network requests // // Check visibility of elements
// await page.waitForResponse('**/ping'); await expect(page.locator('.drag-header', { hasText: 'Multi Pane' })).toBeInViewport();
await page.waitForResponse('**/status'); await expect(page.locator('.drag-header:has-text("Chart")')).toBeInViewport();
await page.waitForResponse('**/profit'); // Pairlist elements
await page.waitForResponse('**/balance'); await expect(page.locator('button:has-text("BTC/USDT")')).toBeInViewport();
// await page.waitForResponse('**/trades'); await expect(page.locator('button:has-text("ETH/USDT")')).toBeInViewport();
await page.waitForResponse('**/whitelist');
await page.waitForResponse('**/blacklist');
await page.waitForResponse('**/locks');
// // Check visibility of elements // // Click on Performance button and wait for response
await expect(page.locator('.drag-header', { hasText: 'Multi Pane' })).toBeInViewport(); await Promise.all([
await expect(page.locator('.drag-header:has-text("Chart")')).toBeInViewport(); page.waitForResponse('**/performance'),
// Pairlist elements page.click('button:has-text("Performance")'),
await expect(page.locator('button:has-text("BTC/USDT")')).toBeInViewport(); ]);
await expect(page.locator('button:has-text("ETH/USDT")')).toBeInViewport();
// // Click on Performance button and wait for response // // Check visibility of Profit USDT
await Promise.all([ await expect(page.locator('th:has-text("Profit USDT")')).toBeInViewport();
page.waitForResponse('**/performance'),
page.click('button:has-text("Performance")'),
]);
// // Check visibility of Profit USDT // // Test messageBox behavior
await expect(page.locator('th:has-text("Profit USDT")')).toBeInViewport();
// // Test messageBox behavior const dialogModal = page.getByRole('dialog');
const modalButton = page.locator(
'#MsgBoxModal .modal-dialog > .modal-content > .modal-footer > .btn-secondary:has-text("Cancel")',
);
await expect(dialogModal).not.toBeVisible();
await expect(dialogModal).not.toBeInViewport();
const dialogModal = page.getByRole('dialog'); await expect(modalButton).not.toBeVisible();
const modalButton = page.locator(
'#MsgBoxModal .modal-dialog > .modal-content > .modal-footer > .btn-secondary:has-text("Cancel")',
);
await expect(dialogModal).not.toBeVisible();
await expect(dialogModal).not.toBeInViewport();
await expect(modalButton).not.toBeVisible(); await page.getByRole('button', { name: 'Stop Trading - Also stops' }).click();
await page.getByRole('button', { name: 'Stop Trading - Also stops' }).click(); // Modal open
await expect(dialogModal).toBeVisible();
await expect(dialogModal).toBeInViewport();
await expect(modalButton).toBeInViewport();
// Modal open // // Close modal
await expect(dialogModal).toBeVisible(); await modalButton.click();
await expect(dialogModal).toBeInViewport();
await expect(modalButton).toBeInViewport();
// // Close modal // // Modal closed
await modalButton.click(); await expect(modalButton).not.toBeVisible();
await expect(modalButton).not.toBeInViewport();
// // Modal closed // // Click on General tab
await expect(modalButton).not.toBeVisible(); const performancePair = page.locator('td:has-text("XRP/USDT")');
await expect(modalButton).not.toBeInViewport(); await expect(performancePair).toBeInViewport();
await page.click('button[role="tab"]:has-text("General")');
// // Click on General tab // // Check visibility of elements
const performancePair = page.locator('td:has-text("XRP/USDT")'); await expect(performancePair).not.toBeInViewport();
await expect(performancePair).toBeInViewport(); const openTrades = page.locator('.drag-header:has-text("Open Trades")');
await page.click('button[role="tab"]:has-text("General")'); openTrades.scrollIntoViewIfNeeded();
await expect(openTrades).toBeInViewport();
const closedTrades = page.locator('.drag-header:has-text("Closed Trades")');
closedTrades.scrollIntoViewIfNeeded();
await expect(closedTrades).toBeInViewport();
await expect(page.locator('span:has-text("TRX/USDT")')).toBeInViewport();
await expect(page.locator('td:has-text("8070.5")')).toBeInViewport();
// // Check visibility of elements // Scroll to top
await expect(performancePair).not.toBeInViewport(); const multiPane = page.locator('.drag-header', { hasText: 'Multi Pane' });
const openTrades = page.locator('.drag-header:has-text("Open Trades")'); await expect(multiPane).toBeVisible();
openTrades.scrollIntoViewIfNeeded(); await multiPane.scrollIntoViewIfNeeded();
await expect(openTrades).toBeInViewport(); await expect(multiPane).toBeInViewport();
const closedTrades = page.locator('.drag-header:has-text("Closed Trades")');
closedTrades.scrollIntoViewIfNeeded();
await expect(closedTrades).toBeInViewport();
await expect(page.locator('span:has-text("TRX/USDT")')).toBeInViewport();
await expect(page.locator('td:has-text("8070.5")')).toBeInViewport();
// Scroll to top // // Click on Reload Config button
const multiPane = page.locator('.drag-header', { hasText: 'Multi Pane' }); await page.getByRole('button', { name: 'Reload Config' }).click();
await expect(multiPane).toBeVisible(); // await page.locator('button[title*="Reload Config "]').click();
await multiPane.scrollIntoViewIfNeeded(); await expect(dialogModal).toBeVisible();
await expect(multiPane).toBeInViewport(); await expect(dialogModal).toBeInViewport();
// // Click on Reload Config button const modalOkButton = page.locator(
await page.getByRole('button', { name: 'Reload Config' }).click(); '#MsgBoxModal .modal-dialog > .modal-content > .modal-footer > .btn-primary:has-text("Ok")',
// await page.locator('button[title*="Reload Config "]').click(); );
await expect(dialogModal).toBeVisible(); await expect(modalOkButton).toBeVisible();
await expect(dialogModal).toBeInViewport(); await modalOkButton.click();
const modalOkButton = page.locator( await expect(page.getByText('Config reloaded successfully.')).toBeInViewport();
'#MsgBoxModal .modal-dialog > .modal-content > .modal-footer > .btn-primary:has-text("Ok")',
);
await expect(modalOkButton).toBeVisible();
await modalOkButton.click();
await expect(page.getByText('Config reloaded successfully.')).toBeInViewport(); await page.locator('#avatar-drop').click();
await page.locator('#avatar-drop').click(); await page.getByLabel('Lock layout').uncheck();
await page.getByLabel('Lock layout').uncheck(); const chartHeader = await page.locator('.drag-header:has-text("Chart")');
const chartHeader = await page.locator('.drag-header:has-text("Chart")');
await expect(multiPane).toBeInViewport();
await expect(chartHeader).toBeInViewport();
// Test drag and drop functionality
const chartHeaderbb = await chartHeader.boundingBox();
if (chartHeaderbb) {
await chartHeader.hover();
await page.mouse.down();
await page.mouse.move(chartHeaderbb?.x + chartHeaderbb.width / 2, chartHeaderbb?.y + 200);
await page.mouse.up();
await expect(multiPane).toBeInViewport(); await expect(multiPane).toBeInViewport();
await expect(chartHeader).toBeInViewport(); await expect(chartHeader).toBeInViewport();
}
// Test drag and drop functionality
const chartHeaderbb = await chartHeader.boundingBox();
if (chartHeaderbb) {
await chartHeader.hover();
await page.mouse.down();
await page.mouse.move(chartHeaderbb?.x + chartHeaderbb.width / 2, chartHeaderbb?.y + 200);
await page.mouse.up();
await expect(multiPane).toBeInViewport();
await expect(chartHeader).toBeInViewport();
}
});
}); });