mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-02 00:54:09 +00:00
* refactor: change how test runner opens pageWithUserData instances * fix: test move tabs * fix: custom ca cert tests * fix: update file patterns and improve error messages * fix: improve electron app launch logic * fix: update temporary directory handling for Electron app * fix: ensure newline at end of file in index.ts This change adds a newline at the end of the file to comply with coding standards. * fix: improve error handling in recursiveCopy function - Simplified error message when source path does not exist. - Enhanced error handling to provide clearer guidance on usage of `page` fixture. * fix(e2e): close collections after each tests * fix: reuse the worker instance per file instead of per user data dir * fix: revert ssl tests as serial run is fixed * fix: change afterEach to afterAll for cleanup fix: change afterEach to afterAll for cleanup --------- Co-authored-by: Bijin Bruno <bijin@usebruno.com>
59 lines
2.6 KiB
TypeScript
59 lines
2.6 KiB
TypeScript
import { test, expect } from '../../../../../playwright';
|
|
|
|
test.describe.serial('basic ssl success', () => {
|
|
test('developer mode', async ({ pageWithUserData: page }) => {
|
|
|
|
// init dev mode
|
|
await page.getByText('badssl').click();
|
|
await page.getByLabel('Developer Mode(use only if').check();
|
|
await page.getByRole('button', { name: 'Save' }).click();
|
|
|
|
test.setTimeout(2 * 60 * 1000);
|
|
await page.locator('.collection-actions').hover();
|
|
await page.locator('.collection-actions .icon').click();
|
|
await page.getByText('Run', { exact: true }).click();
|
|
await page.getByRole('button', { name: 'Run Collection' }).click();
|
|
await page.getByRole('button', { name: 'Run Again' }).waitFor({ timeout: 2 * 60 * 1000 });
|
|
|
|
const result = await page.getByText('Total Requests: ').innerText();
|
|
const matches = result.match(/Total Requests: (\d+), Passed: (\d+), Failed: (\d+), Skipped: (\d+)/);
|
|
if (!matches) {
|
|
throw new Error('Could not parse test results');
|
|
}
|
|
const [totalRequests, passed, failed, skipped] = matches.slice(1);
|
|
|
|
await expect(parseInt(totalRequests)).toBe(1);
|
|
await expect(parseInt(passed)).toBe(1);
|
|
await expect(parseInt(failed)).toBe(0);
|
|
await expect(parseInt(skipped)).toBe(0);
|
|
await expect(parseInt(passed)).toBe(parseInt(totalRequests) - parseInt(skipped) - parseInt(failed));
|
|
});
|
|
|
|
test('safe mode', async ({ pageWithUserData: page }) => {
|
|
|
|
// init safe mode
|
|
await page.getByText('Developer Mode').click();
|
|
await page.getByLabel('Safe Mode').check();
|
|
await page.getByRole('button', { name: 'Save' }).click();
|
|
|
|
test.setTimeout(2 * 60 * 1000);
|
|
await page.locator('.collection-actions').hover();
|
|
await page.locator('.collection-actions .icon').click();
|
|
await page.getByText('Run', { exact: true }).click();
|
|
await page.getByRole('button', { name: 'Run Collection' }).click();
|
|
await page.getByRole('button', { name: 'Run Again' }).waitFor({ timeout: 2 * 60 * 1000 });
|
|
|
|
const result = await page.getByText('Total Requests: ').innerText();
|
|
const matches = result.match(/Total Requests: (\d+), Passed: (\d+), Failed: (\d+), Skipped: (\d+)/);
|
|
if (!matches) {
|
|
throw new Error('Could not parse test results');
|
|
}
|
|
const [totalRequests, passed, failed, skipped] = matches.slice(1);
|
|
|
|
await expect(parseInt(totalRequests)).toBe(1);
|
|
await expect(parseInt(passed)).toBe(1);
|
|
await expect(parseInt(failed)).toBe(0);
|
|
await expect(parseInt(skipped)).toBe(0);
|
|
await expect(parseInt(passed)).toBe(parseInt(totalRequests) - parseInt(skipped) - parseInt(failed));
|
|
});
|
|
}); |