mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-28 23:24:05 +00:00
refactor: locators, tests, new request design
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { expect, test } from '../../playwright';
|
||||
import { buildCommonLocators } from './lib/locators';
|
||||
import { buildWebsocketCommonLocators } from '../utils/page/locators';
|
||||
|
||||
const MAX_CONNECTION_TIME = 3000;
|
||||
const BRU_FILE_NAME = /^ws-test-request$/;
|
||||
@@ -12,7 +12,7 @@ test.describe.serial('websockets', () => {
|
||||
});
|
||||
|
||||
test('websocket connects', async ({ pageWithUserData: page, restartApp }) => {
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
|
||||
await page.getByTitle(BRU_FILE_NAME).click();
|
||||
await locators.connectionControls.connect().click();
|
||||
@@ -23,14 +23,14 @@ test.describe.serial('websockets', () => {
|
||||
});
|
||||
|
||||
test('websocket closes', async ({ pageWithUserData: page, restartApp }) => {
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
await locators.connectionControls.disconnect().click();
|
||||
|
||||
await expect(locators.connectionControls.connect()).toBeVisible();
|
||||
});
|
||||
|
||||
test('websocket messages were recorded', async ({ pageWithUserData: page, restartApp }) => {
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
|
||||
const messages = await locators.messages();
|
||||
|
||||
@@ -39,7 +39,7 @@ test.describe.serial('websockets', () => {
|
||||
});
|
||||
|
||||
test('websocket messages sorting can be changed', async ({ pageWithUserData: page, restartApp }) => {
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
|
||||
await locators.toolbar.latestLast().click();
|
||||
|
||||
@@ -54,7 +54,7 @@ test.describe.serial('websockets', () => {
|
||||
});
|
||||
|
||||
test('websocket request can send messages', async ({ pageWithUserData: page, restartApp }) => {
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
|
||||
await locators.toolbar.clearResponse().click();
|
||||
await locators.runner().click();
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { test, expect } from '../../playwright';
|
||||
import { buildCommonLocators } from './lib/locators';
|
||||
import { buildWebsocketCommonLocators } from '../utils/page/locators';
|
||||
|
||||
const BRU_FILE_NAME = /^ws-test-request-with-headers$/;
|
||||
|
||||
test.describe.serial('headers', () => {
|
||||
test('headers are returned if passed', async ({ pageWithUserData: page, restartApp }) => {
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
|
||||
await page.locator('#sidebar-collection-name').click();
|
||||
await page.getByTitle(BRU_FILE_NAME).click();
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
import { Page } from '../../../playwright';
|
||||
|
||||
export const buildCommonLocators = (page: Page) => ({
|
||||
runner: () => page.getByTestId('run-button'),
|
||||
saveButton: () => page
|
||||
.locator('.infotip')
|
||||
.filter({ hasText: /^Save/ }),
|
||||
connectionControls: {
|
||||
connect: () =>
|
||||
page
|
||||
.locator('div.connection-controls')
|
||||
.locator('.infotip')
|
||||
.filter({ hasText: /^Connect$/ }),
|
||||
disconnect: () =>
|
||||
page
|
||||
.locator('div.connection-controls')
|
||||
.locator('.infotip')
|
||||
.filter({ hasText: /^Close Connection$/ })
|
||||
},
|
||||
messages: () => page.locator('.ws-message').all(),
|
||||
toolbar: {
|
||||
latestFirst: () => page.getByRole('button', { name: 'Latest First' }),
|
||||
latestLast: () => page.getByRole('button', { name: 'Latest Last' }),
|
||||
clearResponse: () => page.getByRole('button', { name: 'Clear Response' })
|
||||
}
|
||||
});
|
||||
@@ -1,5 +1,5 @@
|
||||
import { expect, Locator, test } from '../../playwright';
|
||||
import { buildCommonLocators } from './lib/locators';
|
||||
import { buildWebsocketCommonLocators } from '../utils/page/locators';
|
||||
import { readFile, writeFile } from 'fs/promises';
|
||||
import { join } from 'path';
|
||||
|
||||
@@ -33,7 +33,7 @@ test.describe.serial('persistence', () => {
|
||||
|
||||
test('save new websocket url', async ({ pageWithUserData: page }) => {
|
||||
const replacementUrl = 'ws://localhost:8082';
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
const unsavedColor = '#d97706';
|
||||
const getSaveSvg = () => locators.saveButton().evaluate((d) => d.querySelector('svg'));
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { test, expect } from '../../playwright';
|
||||
import { buildCommonLocators } from './lib/locators';
|
||||
import { buildWebsocketCommonLocators } from '../utils/page/locators';
|
||||
|
||||
const BRU_FILE_NAME = /^ws-test-request-with-subproto$/;
|
||||
|
||||
test.describe.serial('headers', () => {
|
||||
test('headers are returned if passed', async ({ pageWithUserData: page, restartApp }) => {
|
||||
const locators = buildCommonLocators(page);
|
||||
const locators = buildWebsocketCommonLocators(page);
|
||||
const clearText = async (text: string) => {
|
||||
for (let i = text.length; i > 0; i--) {
|
||||
await page.keyboard.press('Backspace');
|
||||
|
||||
Reference in New Issue
Block a user