mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-27 06:34:06 +00:00
58 lines
2.6 KiB
TypeScript
58 lines
2.6 KiB
TypeScript
import { test, expect } from '../../../playwright';
|
||
import fs from 'fs';
|
||
import path from 'path';
|
||
|
||
test.describe.serial('bru.setEnvVar(name, value, { persist: true })', () => {
|
||
test.setTimeout(2 * 10 * 1000);
|
||
|
||
test('set env var with persist using script', async ({ pageWithUserData: page, restartApp }) => {
|
||
// Keep a copy of the original Stage.bru file
|
||
const originalStageBruPath = path.join(__dirname, 'collection/environments/Stage.bru');
|
||
const originalStageBruContent = fs.readFileSync(originalStageBruPath, 'utf8');
|
||
|
||
// Select the collection and request
|
||
await page.locator('#sidebar-collection-name').click();
|
||
await page.getByText('api-setEnvVar-with-persist', { exact: true }).click();
|
||
|
||
// open environment dropdown
|
||
await page.locator('div.current-environment.collection-environment').click();
|
||
|
||
// select stage environment
|
||
await expect(page.locator('.dropdown-item').filter({ hasText: 'Stage' })).toBeVisible();
|
||
await page.locator('.dropdown-item').filter({ hasText: 'Stage' }).click();
|
||
await expect(page.locator('.current-environment').filter({ hasText: /Stage/ })).toBeVisible();
|
||
|
||
// Send the request
|
||
await page.locator('#send-request').getByRole('img').nth(2).click();
|
||
await page.waitForTimeout(1000);
|
||
|
||
// confirm that the environment variable is set
|
||
await page.getByTitle('Stage', { exact: true }).click();
|
||
await page.getByText('Configure', { exact: true }).click();
|
||
await expect(page.getByRole('row', { name: 'token' }).getByRole('cell').nth(1)).toBeVisible();
|
||
await expect(page.getByRole('row', { name: 'secret' }).getByRole('cell').nth(2)).toBeVisible();
|
||
await page.getByText('×').click();
|
||
|
||
// we restart the app to confirm that the environment variable is persisted
|
||
const newApp = await restartApp();
|
||
const newPage = await newApp.firstWindow();
|
||
|
||
// select the collection and request
|
||
await newPage.locator('#sidebar-collection-name').click();
|
||
await newPage.getByText('api-setEnvVar-with-persist', { exact: true }).click();
|
||
|
||
// open environment dropdown
|
||
await newPage.locator('div.current-environment.collection-environment').click();
|
||
await newPage.getByText('Configure', { exact: true }).click();
|
||
await expect(newPage.getByRole('row', { name: 'token' }).getByRole('cell').nth(1)).toBeVisible();
|
||
await expect(newPage.getByRole('row', { name: 'secret' }).getByRole('cell').nth(2)).toBeVisible();
|
||
|
||
// close the environment modal
|
||
await newPage.getByText('×').click();
|
||
|
||
// Restore the original Stage.bru file
|
||
fs.writeFileSync(originalStageBruPath, originalStageBruContent);
|
||
await newPage.close();
|
||
});
|
||
});
|