mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-28 07:04:10 +00:00
feat: remove headers from request using scripts (#7122)
This commit is contained in:
@@ -24,6 +24,7 @@ const STATIC_API_HINTS = {
|
||||
'req.setHeader(name, value)',
|
||||
'req.setHeaders(data)',
|
||||
'req.deleteHeader(name)',
|
||||
'req.deleteHeaders(data)',
|
||||
'req.getBody()',
|
||||
'req.setBody(data)',
|
||||
'req.setMaxRedirects(maxRedirects)',
|
||||
|
||||
@@ -383,6 +383,22 @@ describe('Bruno Autocomplete', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('should provide deleteHeader and deleteHeaders hints for req.delete prefix', () => {
|
||||
const line = 'req.delete';
|
||||
mockedCodemirror.getCursor.mockReturnValue({ line: 0, ch: line.length });
|
||||
mockedCodemirror.getLine.mockReturnValue(line);
|
||||
mockedCodemirror.getRange.mockReturnValue(line);
|
||||
|
||||
const result = getAutoCompleteHints(mockedCodemirror, {}, [], {
|
||||
showHintsFor: ['req']
|
||||
});
|
||||
|
||||
expect(result).toBeTruthy();
|
||||
expect(result.list).toEqual(
|
||||
expect.arrayContaining(['deleteHeader(name)', 'deleteHeaders(data)'])
|
||||
);
|
||||
});
|
||||
|
||||
it('should handle case-insensitive matching', () => {
|
||||
mockedCodemirror.getCursor.mockReturnValue({ line: 0, ch: 10 });
|
||||
mockedCodemirror.getLine.mockReturnValue('{{varName}}');
|
||||
|
||||
@@ -79,6 +79,18 @@ describe('Bruno to Postman Request Translation', () => {
|
||||
expect(translatedCode).toBe('pm.request.headers.set("Authorization", "Bearer token123");');
|
||||
});
|
||||
|
||||
it('should translate req.deleteHeader() to pm.request.headers.remove()', () => {
|
||||
const code = 'req.deleteHeader("Authorization");';
|
||||
const translatedCode = translateBruToPostman(code);
|
||||
expect(translatedCode).toBe('pm.request.headers.remove("Authorization");');
|
||||
});
|
||||
|
||||
it('should handle req.deleteHeader() with a variable argument', () => {
|
||||
const code = 'const headerName = "X-Custom"; req.deleteHeader(headerName);';
|
||||
const translatedCode = translateBruToPostman(code);
|
||||
expect(translatedCode).toBe('const headerName = "X-Custom"; pm.request.headers.remove(headerName);');
|
||||
});
|
||||
|
||||
it('should handle all request properties together', () => {
|
||||
const code = `
|
||||
// All request properties
|
||||
|
||||
@@ -125,6 +125,13 @@ class BrunoRequest {
|
||||
this.req.headers = headers;
|
||||
}
|
||||
|
||||
deleteHeaders(headers) {
|
||||
headers.forEach((name) => {
|
||||
delete this.headers[name];
|
||||
delete this.req.headers[name];
|
||||
});
|
||||
}
|
||||
|
||||
getHeader(name) {
|
||||
return this.req.headers[name];
|
||||
}
|
||||
|
||||
@@ -102,6 +102,12 @@ const addBrunoRequestShimToContext = (vm, req) => {
|
||||
vm.setProp(reqObject, 'setHeaders', setHeaders);
|
||||
setHeaders.dispose();
|
||||
|
||||
let deleteHeaders = vm.newFunction('deleteHeaders', function (headers) {
|
||||
req.deleteHeaders(vm.dump(headers));
|
||||
});
|
||||
vm.setProp(reqObject, 'deleteHeaders', deleteHeaders);
|
||||
deleteHeaders.dispose();
|
||||
|
||||
let getHeader = vm.newFunction('getHeader', function (name) {
|
||||
return marshallToVm(req.getHeader(vm.dump(name)), vm);
|
||||
});
|
||||
@@ -114,8 +120,8 @@ const addBrunoRequestShimToContext = (vm, req) => {
|
||||
vm.setProp(reqObject, 'setHeader', setHeader);
|
||||
setHeader.dispose();
|
||||
|
||||
let deleteHeader = vm.newFunction('deleteHeader', function (name) {
|
||||
req.deleteHeader(vm.dump(name));
|
||||
let deleteHeader = vm.newFunction('deleteHeader', function (header) {
|
||||
req.deleteHeader(vm.dump(header));
|
||||
});
|
||||
vm.setProp(reqObject, 'deleteHeader', deleteHeader);
|
||||
deleteHeader.dispose();
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
meta {
|
||||
name: deleteHeaders
|
||||
type: http
|
||||
seq: 13
|
||||
}
|
||||
|
||||
get {
|
||||
url: {{host}}/ping
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
|
||||
headers {
|
||||
X-Frame-Options: 1
|
||||
Content-Type: application/json
|
||||
}
|
||||
|
||||
assert {
|
||||
res.status: eq 200
|
||||
res.body: eq pong
|
||||
}
|
||||
|
||||
script:pre-request {
|
||||
req.deleteHeaders(['X-Frame-Options']);
|
||||
}
|
||||
|
||||
tests {
|
||||
test("req.deleteHeaders(names)", function() {
|
||||
const h = req.getHeaders();
|
||||
expect(h["x-frame-options"]).to.be.undefined;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user