mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-08 06:28:33 +00:00
* fix(openapi):validate API spec imports and resolve preview to error state instead of hanging * fix(openapi):allows opening of malformed files with correct extension * fix(openapi):reject non-OpenAPI content in spec preview before timeout * test(openapi): add unit + e2e coverage for spec import validation * refactor(openapi):centralise spec error messages and fix dialog restore * fix:removed nested try catch * test:added common locators * refactor:removed repeated lines * refactor:removed redundant file reads --------- Co-authored-by: Adwait Aayush <adwaitaayush@Adwaits-MacBook-Air.local>
31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import { test, Page, ElectronApplication } from '../../../../playwright';
|
|
|
|
export const buildApiSpecPanelLocators = (page: Page) => ({
|
|
addMenuButton: () => page.getByTestId('api-specs-header-add-menu'),
|
|
openApiSpecMenuItem: () => page.getByTestId('api-specs-header-add-menu-open-api-spec'),
|
|
sidebarItem: (name: string) => page.locator('.api-spec-item').filter({ hasText: name })
|
|
});
|
|
|
|
export const openApiSpecFromDialog = async (
|
|
page: Page,
|
|
electronApp: ElectronApplication,
|
|
filePath: string
|
|
): Promise<void> => {
|
|
await test.step(`Open API spec from path: ${filePath}`, async () => {
|
|
await electronApp.evaluate(({ dialog }, filePath) => {
|
|
dialog.showOpenDialog = async () => ({ canceled: false, filePaths: [filePath] });
|
|
}, filePath);
|
|
|
|
const { addMenuButton, openApiSpecMenuItem } = buildApiSpecPanelLocators(page);
|
|
await addMenuButton().click();
|
|
await openApiSpecMenuItem().click();
|
|
});
|
|
};
|
|
|
|
export const openApiSpecSidebarItem = async (page: Page, name: string): Promise<void> => {
|
|
await test.step(`Open API spec sidebar item "${name}"`, async () => {
|
|
const { sidebarItem } = buildApiSpecPanelLocators(page);
|
|
await sidebarItem(name).click();
|
|
});
|
|
};
|