mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-11 09:51:30 +00:00
86 lines
4.2 KiB
TypeScript
86 lines
4.2 KiB
TypeScript
import { test, expect } from '../../../playwright';
|
|
import { closeAllCollections, createCollection, createRequest } from '../../utils/page';
|
|
|
|
test.describe('Copy and Paste Requests', () => {
|
|
test.afterAll(async ({ page }) => {
|
|
await closeAllCollections(page);
|
|
});
|
|
|
|
test('should copy and paste a request within the same collection', async ({ page, createTmpDir }) => {
|
|
await createCollection(page, 'test-collection', await createTmpDir('test-collection'));
|
|
|
|
// Create a new request
|
|
const collection = page.locator('.collection-name').filter({ hasText: 'test-collection' });
|
|
await collection.hover();
|
|
await collection.locator('.collection-actions .icon').click();
|
|
await page.locator('.dropdown-item').filter({ hasText: 'New Request' }).click();
|
|
await page.getByPlaceholder('Request Name').fill('original-request');
|
|
await page.locator('#new-request-url .CodeMirror').click();
|
|
await page.locator('textarea').fill('https://echo.usebruno.com');
|
|
await page.getByRole('button', { name: 'Create' }).click();
|
|
|
|
await expect(page.locator('.collection-item-name').filter({ hasText: 'original-request' })).toBeVisible();
|
|
|
|
// Copy the request
|
|
const requestItem = page.locator('.collection-item-name').filter({ hasText: 'original-request' });
|
|
await requestItem.hover();
|
|
await requestItem.locator('.menu-icon').click({ force: true });
|
|
await page.locator('.dropdown-item').filter({ hasText: 'Copy' }).click();
|
|
|
|
// Paste into the collection root
|
|
await collection.hover();
|
|
await collection.locator('.collection-actions .icon').click();
|
|
await page.locator('.dropdown-item').filter({ hasText: 'Paste' }).click();
|
|
|
|
// Verify the pasted request appears with the same name
|
|
await expect(page.locator('.collection-item-name').filter({ hasText: 'original-request' })).toHaveCount(2);
|
|
});
|
|
|
|
test('should paste request into a folder', async ({ page, createTmpDir }) => {
|
|
const collection = page.locator('.collection-name').filter({ hasText: 'test-collection' });
|
|
await collection.hover();
|
|
await collection.locator('.collection-actions .icon').click();
|
|
await page.locator('.dropdown-item').filter({ hasText: 'New Folder' }).click();
|
|
await page.locator('#folder-name').fill('test-folder');
|
|
await page.getByRole('button', { name: 'Create' }).click();
|
|
|
|
// Paste into the folder
|
|
const folder = page.locator('.collection-item-name').filter({ hasText: 'test-folder' });
|
|
await folder.click();
|
|
await folder.hover();
|
|
await folder.locator('.menu-icon').click({ force: true });
|
|
await page.locator('.dropdown-item').filter({ hasText: 'Paste' }).click();
|
|
|
|
await expect(page.locator('.collection-item-name').filter({ hasText: 'original-request' })).toHaveCount(3);
|
|
});
|
|
|
|
test('should copy and paste a request into a different collection', async ({ page, createTmpDir }) => {
|
|
await createCollection(page, 'test-collection-2', await createTmpDir('test-collection-2'));
|
|
const collection = page.locator('.collection-name').filter({ hasText: 'test-collection-2' });
|
|
|
|
// Paste into the collection root
|
|
await collection.hover();
|
|
await collection.locator('.collection-actions .icon').click();
|
|
await page.locator('.dropdown-item').filter({ hasText: 'Paste' }).click();
|
|
|
|
// Verify the pasted request appears with the same name
|
|
await expect(page.locator('.collection-item-name').filter({ hasText: 'original-request' })).toHaveCount(4);
|
|
});
|
|
|
|
test('should paste request into parent folder even if request is selected', async ({ page, createTmpDir }) => {
|
|
// Create a collection and a request
|
|
await createCollection(page, 'test-collection-3', await createTmpDir('test-collection-3'));
|
|
await createRequest(page, 'request-to-copy', 'test-collection-3');
|
|
|
|
const modifier = process.platform === 'darwin' ? 'Meta' : 'Control';
|
|
|
|
// Copy the request
|
|
await page.locator('.collection-item-name').filter({ hasText: 'request-to-copy' }).click();
|
|
await page.keyboard.press(`${modifier}+C`);
|
|
await page.keyboard.press(`${modifier}+V`);
|
|
|
|
// Verify the pasted request appears with the same name
|
|
await expect(page.locator('.collection-item-name').filter({ hasText: 'request-to-copy' })).toHaveCount(2);
|
|
});
|
|
});
|