Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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
2 changes: 1 addition & 1 deletion packages/bruno-schema/src/collections/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ const varsSchema = Yup.object({
.noUnknown(true)
.strict();

const requestUrlSchema = Yup.string().min(0).defined();
const requestUrlSchema = Yup.string().optional();
Comment thread
sharan-bruno marked this conversation as resolved.
Outdated
Comment thread
sharan-bruno marked this conversation as resolved.
Outdated
const requestMethodSchema = Yup.string()
.min(1, 'method is required')
.required('method is required');
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