mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-11 09:51:30 +00:00
66 lines
2.5 KiB
TypeScript
66 lines
2.5 KiB
TypeScript
import { test, expect } from '../../playwright';
|
|
import {
|
|
clickResponseAction,
|
|
closeAllCollections,
|
|
createCollection,
|
|
createRequest,
|
|
sendRequest,
|
|
switchResponseFormat,
|
|
switchToEditorTab
|
|
} from '../utils/page/actions';
|
|
|
|
test.describe('Response Pane Actions', () => {
|
|
test.afterAll(async ({ page }) => {
|
|
await closeAllCollections(page);
|
|
});
|
|
|
|
test('should copy response to clipboard', async ({ page, createTmpDir }) => {
|
|
const collectionName = 'response-copy-test';
|
|
|
|
await test.step('Create collection and request', async () => {
|
|
await createCollection(page, collectionName, await createTmpDir(collectionName));
|
|
await createRequest(page, 'copy-test', collectionName, { url: 'https://testbench-sanity.usebruno.com/ping' });
|
|
});
|
|
|
|
await test.step('Send request and wait for response', async () => {
|
|
await sendRequest(page, 200);
|
|
});
|
|
|
|
await test.step('Copy response to clipboard', async () => {
|
|
await page.evaluate(() => navigator.clipboard.writeText(''));
|
|
await clickResponseAction(page, 'response-copy-btn');
|
|
await expect(page.getByText('Response copied to clipboard')).toBeVisible({ timeout: 10000 }).catch(() => {});
|
|
await expect.poll(async () => await page.evaluate(() => navigator.clipboard.readText().catch(() => ''))).toBeTruthy();
|
|
});
|
|
});
|
|
|
|
test('should copy Base64 when editor mode and Base64 format selected', async ({ page, createTmpDir }) => {
|
|
const collectionName = 'response-copy-base64-test';
|
|
|
|
await test.step('Create collection and request', async () => {
|
|
await createCollection(page, collectionName, await createTmpDir(collectionName));
|
|
await createRequest(page, 'base64-copy-test', collectionName, {
|
|
url: 'https://testbench-sanity.usebruno.com/ping'
|
|
});
|
|
});
|
|
|
|
await test.step('Send request and wait for response', async () => {
|
|
await sendRequest(page, 200);
|
|
});
|
|
|
|
await test.step('Switch to Base64 format (editor mode - preview OFF)', async () => {
|
|
await switchToEditorTab(page);
|
|
await switchResponseFormat(page, 'Base64');
|
|
});
|
|
|
|
await test.step('Copy response and verify clipboard contains Base64', async () => {
|
|
await clickResponseAction(page, 'response-copy-btn');
|
|
await expect(page.getByText('Response copied to clipboard')).toBeVisible({ timeout: 10000 }).catch(() => {});
|
|
|
|
const clipboardText = await page.evaluate(() => navigator.clipboard.readText());
|
|
// "pong" in Base64 is "cG9uZw=="
|
|
expect(clipboardText).toBe('cG9uZw==');
|
|
});
|
|
});
|
|
});
|