Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions packages/bruno-app/src/utils/importers/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ export const transformItemsInCollection = (collection) => {
item.type = `${item.type}-request`;
const isGrpcRequest = item.type === 'grpc-request';
const isWSRequest = item.type === 'ws-request';
item.request.url = item.request.url ?? '';
Comment thread
sharan-bruno marked this conversation as resolved.
Outdated

if (item.request.query) {
item.request.params = item.request.query.map((queryItem) => ({
Expand Down Expand Up @@ -137,6 +138,10 @@ export const transformItemsInCollection = (collection) => {
const isGrpcExample = example.type === 'grpc-request';
const isWSExample = example.type === 'ws-request';

if (example.request) {
example.request.url = example.request.url ?? '';
Comment thread
sharan-bruno marked this conversation as resolved.
Outdated
}

if (example.request && example.request.query) {
example.request.params = example.request.query.map((queryItem) => ({
...queryItem,
Expand Down
51 changes: 51 additions & 0 deletions tests/import/bruno/fixtures/bruno-grpc-request-missing-url.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"name": "GRPC Collection",
"version": "1",
"items": [
{
"type": "grpc",
"name": "request without url",
"filename": "request-without-url.bru",
"seq": 2,
"settings": {},
"tags": [],
"examples": [],
"request": {
"method": "",
"headers": [],
"body": {
"mode": "grpc",
"formUrlEncoded": [],
"multipartForm": [],
"file": [],
"grpc": [
{
"name": "message 1",
"content": "{}"
}
]
},
"script": {},
"vars": {},
"assertions": [],
"tests": "",
"docs": "",
"auth": {
"mode": "none"
}
}
}
],
"environments": [],
"brunoConfig": {
"version": "1",
"name": "GRPC Collection",
"type": "collection",
"ignore": [
"node_modules",
".git"
],
"size": 0,
"filesCount": 0
}
}
50 changes: 50 additions & 0 deletions tests/import/bruno/fixtures/bruno-http-request-missing-url.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"name": "HTTP Collection",
"version": "1",
"items": [
{
"type": "http",
"name": "request without url",
"filename": "request-without-url.bru",
"seq": 2,
"settings": {},
"tags": [],
"examples": [],
Comment thread
sharan-bruno marked this conversation as resolved.
"request": {
"method": "GET",
"headers": [],
"params": [],
"body": {
"mode": "none",
"json": null,
"text": null,
"xml": null,
"sparql": null,
"formUrlEncoded": [],
"multipartForm": [],
"file": []
},
"script": {},
"vars": {},
"assertions": [],
"tests": "",
"docs": "",
"auth": {
"mode": "none"
}
}
}
],
"environments": [],
"brunoConfig": {
"version": "1",
"name": "HTTP Collection",
"type": "collection",
"ignore": [
"node_modules",
".git"
],
"size": 0,
"filesCount": 0
}
}
30 changes: 30 additions & 0 deletions tests/import/bruno/import-bruno-request-missing-url.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { test, expect } from '../../../playwright';
import * as path from 'path';
import { importCollection, closeAllCollections, buildCommonLocators } from '../../utils/page';

test.describe.serial('Import Bruno Collection - request with missing URL', () => {
test.afterAll(async ({ page }) => {
await closeAllCollections(page);
});

const cases = [
{ fixture: 'bruno-http-request-missing-url.json', collectionName: 'HTTP Collection', type: 'HTTP' },
{ fixture: 'bruno-grpc-request-missing-url.json', collectionName: 'GRPC Collection', type: 'gRPC' }
];

for (const { fixture, collectionName, type } of cases) {
test(`imports a ${type} request without a URL`, async ({ page, createTmpDir }) => {
const brunoFile = path.resolve(__dirname, 'fixtures', fixture);
const location = await createTmpDir(collectionName);

await importCollection(page, brunoFile, location, {
expectedCollectionName: collectionName
});
});

test(`${type} collection appears in the sidebar after import`, async ({ page }) => {
const locators = buildCommonLocators(page);
await expect(locators.sidebar.collection(collectionName)).toBeVisible();
});
}
});
Comment thread
sharan-bruno marked this conversation as resolved.
Loading