From c85a1ec1a5233c1f8be5dde2272b97c5cc27b869 Mon Sep 17 00:00:00 2001 From: Bijin A B Date: Sat, 1 Nov 2025 08:05:53 +0530 Subject: [PATCH] chore: refactor few flaky tests (#5958) --- .../create-requests/graphql-requests.spec.ts | 11 ++---- .../create-requests/grpc-requests.spec.ts | 12 ++----- .../create-requests/http-requests.spec.ts | 11 ++---- .../create-requests/ws-requests.spec.ts | 11 ++---- .../large-response-crash-prevention.spec.ts | 35 ++++++++++--------- tests/utils/page/actions.ts | 21 ++++++----- 6 files changed, 42 insertions(+), 59 deletions(-) diff --git a/tests/collection/create-requests/graphql-requests.spec.ts b/tests/collection/create-requests/graphql-requests.spec.ts index 1ce8de198..b54118a2b 100644 --- a/tests/collection/create-requests/graphql-requests.spec.ts +++ b/tests/collection/create-requests/graphql-requests.spec.ts @@ -16,7 +16,6 @@ test.describe('Create GraphQL Requests', () => { await locators.modal.button('Delete').click(); // Clean up Folder GraphQL Request - await locators.sidebar.folder('folder1').click(); await locators.sidebar.request('Folder GraphQL Request').click({ button: 'right' }); await locators.dropdown.item('Delete').click(); await locators.modal.button('Delete').click(); @@ -73,15 +72,11 @@ test.describe('Create GraphQL Requests', () => { await test.step('Verify GraphQL request was created within folder1', async () => { // Open collection and verify request is not in collection root await locators.sidebar.collection('create-requests').click(); - const requestItem = locators.sidebar.request('Folder GraphQL Request'); - await expect(requestItem).not.toBeVisible(); - - // Open folder1 and verify request is present in folder1 - await locators.sidebar.folder('folder1').click(); - await expect(requestItem).toBeVisible(); + const folderRequestItem = locators.sidebar.folderRequest('folder1', 'Folder GraphQL Request'); + await expect(folderRequestItem).toBeVisible(); // Open request and verify it is the active request - await requestItem.click(); + await folderRequestItem.click(); await expect(locators.tabs.activeRequestTab()).toContainText('Folder GraphQL Request'); }); }); diff --git a/tests/collection/create-requests/grpc-requests.spec.ts b/tests/collection/create-requests/grpc-requests.spec.ts index 754971644..8b67914cf 100644 --- a/tests/collection/create-requests/grpc-requests.spec.ts +++ b/tests/collection/create-requests/grpc-requests.spec.ts @@ -18,7 +18,6 @@ test.describe('Create gRPC Requests', () => { await locators.modal.button('Delete').click(); // Clean up Folder gRPC Request - await locators.sidebar.folder('folder1').click(); await locators.sidebar.request('Folder gRPC Request').click({ button: 'right' }); await locators.dropdown.item('Delete').click(); await locators.modal.button('Delete').click(); @@ -58,7 +57,6 @@ test.describe('Create gRPC Requests', () => { await locators.sidebar.folder('folder1').click(); const folderRequestItem = locators.sidebar.folderRequest('folder1', 'Root gRPC Request'); await expect(folderRequestItem).not.toBeVisible(); - await locators.folder.chevron('folder1').click(); // close folder1 }); await test.step('Create gRPC request via folder1 three dots menu', async () => { @@ -76,15 +74,11 @@ test.describe('Create gRPC Requests', () => { await test.step('Verify gRPC request was created within folder1', async () => { // Open collection and verify request is not in collection root await locators.sidebar.collection('create-requests').click(); - const requestItem = locators.sidebar.request('Folder gRPC Request'); - await expect(requestItem).not.toBeVisible(); - - // Open folder1 and verify request is present in folder1 - await locators.sidebar.folder('folder1').click(); - await expect(requestItem).toBeVisible(); + const folderRequestItem = locators.sidebar.folderRequest('folder1', 'Folder gRPC Request'); + await expect(folderRequestItem).toBeVisible(); // Open request and verify it is the active request - await requestItem.click(); + await folderRequestItem.click(); await expect(locators.tabs.activeRequestTab()).toContainText('Folder gRPC Request'); }); }); diff --git a/tests/collection/create-requests/http-requests.spec.ts b/tests/collection/create-requests/http-requests.spec.ts index 03a715f19..146bffbd4 100644 --- a/tests/collection/create-requests/http-requests.spec.ts +++ b/tests/collection/create-requests/http-requests.spec.ts @@ -18,7 +18,6 @@ test.describe('Create HTTP Requests', () => { await locators.modal.button('Delete').click(); // Clean up Folder HTTP Request - await locators.sidebar.folder('folder1').click(); await locators.sidebar.request('Folder HTTP Request').click({ button: 'right' }); await locators.dropdown.item('Delete').click(); await locators.modal.button('Delete').click(); @@ -73,15 +72,11 @@ test.describe('Create HTTP Requests', () => { await test.step('Verify HTTP request was created within folder1', async () => { // Open collection and verify request is not in collection root await locators.sidebar.collection('create-requests').click(); - const requestItem = locators.sidebar.request('Folder HTTP Request'); - await expect(requestItem).not.toBeVisible(); - - // Open folder1 and verify request is present in folder1 - await locators.sidebar.folder('folder1').click(); - await expect(requestItem).toBeVisible(); + const folderRequestItem = locators.sidebar.folderRequest('folder1', 'Folder HTTP Request'); + await expect(folderRequestItem).toBeVisible(); // Open request and verify it is the active request - await requestItem.click(); + await folderRequestItem.click(); await expect(locators.tabs.activeRequestTab()).toContainText('Folder HTTP Request'); }); }); diff --git a/tests/collection/create-requests/ws-requests.spec.ts b/tests/collection/create-requests/ws-requests.spec.ts index 3b34a8de9..7c0ab53c1 100644 --- a/tests/collection/create-requests/ws-requests.spec.ts +++ b/tests/collection/create-requests/ws-requests.spec.ts @@ -13,7 +13,6 @@ test.describe('Create WebSocket Requests', () => { const locators = buildCommonLocators(page); // Clean up Folder WebSocket Request - await locators.sidebar.folder('folder1').click(); await locators.sidebar.request('Folder WebSocket Request').click({ button: 'right' }); await locators.dropdown.item('Delete').click(); await locators.modal.button('Delete').click(); @@ -75,15 +74,11 @@ test.describe('Create WebSocket Requests', () => { await test.step('Verify WebSocket request was created within folder1', async () => { // Open collection and verify request is not in collection root await locators.sidebar.collection('create-requests').click(); - const requestItem = locators.sidebar.request('Folder WebSocket Request'); - await expect(requestItem).not.toBeVisible(); - - // Open folder1 and verify request is present in folder1 - await locators.sidebar.folder('folder1').click(); - await expect(requestItem).toBeVisible(); + const folderRequestItem = locators.sidebar.folderRequest('folder1', 'Folder WebSocket Request'); + await expect(folderRequestItem).toBeVisible(); // Open request and verify it is the active request - await requestItem.click(); + await folderRequestItem.click(); await expect(locators.tabs.activeRequestTab()).toContainText('Folder WebSocket Request'); }); }); diff --git a/tests/response/large-response-crash-prevention.spec.ts b/tests/response/large-response-crash-prevention.spec.ts index 33e3915e0..3940f8c4f 100644 --- a/tests/response/large-response-crash-prevention.spec.ts +++ b/tests/response/large-response-crash-prevention.spec.ts @@ -1,26 +1,29 @@ import { test, expect } from '../../playwright'; +import { closeAllCollections, createCollection } from '../utils/page/actions'; + +test.describe('Large Response Crash/High Memory Usage Prevention', () => { + test.afterAll(async ({ page }) => { + // cleanup: close all collections + await closeAllCollections(page); + }); + + test('Show appropriate warning for responses over 10MB', async ({ page, createTmpDir }) => { + const collectionName = 'size-warning-test'; -test.describe('Large Response Crash Prevention', () => { - test('should show appropriate warning for responses over 10MB', async ({ page, createTmpDir }) => { // Create collection - await page.getByLabel('Create Collection').click(); - await page.getByLabel('Name').fill('size-warning-test'); - await page.getByLabel('Name').press('Tab'); - await page.getByLabel('Location').fill(await createTmpDir('size-warning-test')); - await page.getByRole('button', { name: 'Create', exact: true }).click(); - await page.getByText('size-warning-test').click(); - await page.getByLabel('Safe Mode').check(); - await page.getByRole('button', { name: 'Save' }).click(); + await createCollection(page, collectionName, createTmpDir); // Create request await page.locator('#create-new-tab').getByRole('img').click(); - await page.getByPlaceholder('Request Name').fill('size-check'); - await page.locator('#new-request-url .CodeMirror').click(); - await page.locator('textarea').fill('https://samples.json-format.com/employees/json/employees_50MB.json'); - await page.getByRole('button', { name: 'Create' }).click(); + + const createRequestModal = page.locator('.bruno-modal-card').filter({ hasText: 'New Request' }); + await createRequestModal.getByPlaceholder('Request Name').fill('size-check'); + await createRequestModal.locator('#new-request-url .CodeMirror').click(); + await createRequestModal.locator('textarea').fill('https://samples.json-format.com/employees/json/employees_50MB.json'); + await createRequestModal.getByRole('button', { name: 'Create' }).click(); // Send request - const sendButton = page.locator('#send-request').getByRole('img').nth(2); + const sendButton = page.getByTestId('send-arrow-icon'); await sendButton.click(); // Verify warning appears @@ -32,7 +35,5 @@ test.describe('Large Response Crash Prevention', () => { // Verify action button await expect(page.getByRole('button', { name: 'View' })).toBeVisible(); - - console.log('Large response warning displayed correctly'); }); }); diff --git a/tests/utils/page/actions.ts b/tests/utils/page/actions.ts index 493e8629e..97c18f74f 100644 --- a/tests/utils/page/actions.ts +++ b/tests/utils/page/actions.ts @@ -46,15 +46,18 @@ const openCollectionAndAcceptSandbox = async (page, collectionName: string, sand }; const createCollection = async (page, collectionName: string, createDir: (tag?: string | undefined) => Promise) => { - await page.locator('.dropdown-icon').click(); - await page.locator('.dropdown-item').filter({ hasText: 'Create Collection' }).click(); - await page.getByLabel('Name').fill(collectionName); - await page.getByLabel('Location').fill(await createDir(collectionName)); - await page.getByRole('button', { name: 'Create', exact: true }).click(); - await expect(page.locator('#sidebar-collection-name').filter({ hasText: collectionName })).toBeVisible(); - await page.locator('#sidebar-collection-name').filter({ hasText: collectionName }).click(); - await page.getByLabel('Safe Mode').check(); - await page.getByRole('button', { name: 'Save' }).click(); + test.step(`Create collection "${collectionName}" and accept sandbox "safe" mode`, async () => { + await page.locator('.collection-dropdown .dropdown-icon').click(); + await page.locator('.tippy-box .dropdown-item').filter({ hasText: 'Create Collection' }).click(); + + const createCollectionModal = page.locator('.bruno-modal-card').filter({ hasText: 'Create Collection' }); + + await createCollectionModal.getByLabel('Name').fill(collectionName); + await createCollectionModal.getByLabel('Location').fill(await createDir(collectionName)); + await createCollectionModal.getByRole('button', { name: 'Create', exact: true }).click(); + + await openCollectionAndAcceptSandbox(page, collectionName, 'safe'); + }); }; export { closeAllCollections, openCollectionAndAcceptSandbox, createCollection };