mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-07 14:08:38 +00:00
* refactor: streamline authentication handling in postman-to-bruno.js by using a switch statement and introducing AUTH_TYPES constant for better readability and maintainability * feat: enhance authentication handling in postman-to-bruno.js to manage missing auth values across collection, folder, and request levels, ensuring a default mode of 'none' * fix: update authentication handling in postman-to-bruno.js to correctly set auth mode based on provided auth type * fix: update authentication tests to ensure default values are set for various auth types in postman-to-bruno
170 lines
4.1 KiB
JavaScript
170 lines
4.1 KiB
JavaScript
import { describe, it, expect } from '@jest/globals';
|
|
import postmanToBruno from '../../../src/postman/postman-to-bruno';
|
|
|
|
describe('Request Authentication', () => {
|
|
it('should handle basic auth at request level', async() => {
|
|
const postmanCollection = {
|
|
info: {
|
|
name: 'Request Auth Collection',
|
|
schema: 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json'
|
|
},
|
|
item: [
|
|
{
|
|
name: 'Basic Auth Request',
|
|
request: {
|
|
method: 'GET',
|
|
url: 'https://api.example.com/test',
|
|
auth: {
|
|
type: 'basic',
|
|
basic: [
|
|
{ key: 'username', value: 'requestuser' },
|
|
{ key: 'password', value: 'requestpass' }
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
};
|
|
|
|
const result = await postmanToBruno(postmanCollection);
|
|
|
|
expect(result.items[0].request.auth).toEqual({
|
|
mode: 'basic',
|
|
basic: {
|
|
username: 'requestuser',
|
|
password: 'requestpass'
|
|
},
|
|
bearer: null,
|
|
awsv4: null,
|
|
apikey: null,
|
|
oauth2: null,
|
|
digest: null
|
|
});
|
|
});
|
|
|
|
it('should inherit folder auth when request has no auth', async() => {
|
|
const postmanCollection = {
|
|
info: {
|
|
name: 'Inherit Request Auth Collection',
|
|
schema: 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json'
|
|
},
|
|
item: [
|
|
{
|
|
name: 'Auth Folder',
|
|
auth: {
|
|
type: 'bearer',
|
|
bearer: [{ key: 'token', value: 'foldertoken' }]
|
|
},
|
|
item: [
|
|
{
|
|
name: 'No Auth Request',
|
|
request: {
|
|
method: 'GET',
|
|
url: 'https://api.example.com/test'
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
};
|
|
|
|
const result = await postmanToBruno(postmanCollection);
|
|
|
|
expect(result.items[0].items[0].request.auth).toEqual({
|
|
mode: 'bearer',
|
|
basic: null,
|
|
bearer: {
|
|
token: 'foldertoken'
|
|
},
|
|
awsv4: null,
|
|
apikey: null,
|
|
oauth2: null,
|
|
digest: null
|
|
});
|
|
});
|
|
|
|
it('should override folder auth with request auth', async() => {
|
|
const postmanCollection = {
|
|
info: {
|
|
name: 'Override Request Auth Collection',
|
|
schema: 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json'
|
|
},
|
|
item: [
|
|
{
|
|
name: 'Auth Folder',
|
|
auth: {
|
|
type: 'basic',
|
|
basic: [
|
|
{ key: 'username', value: 'folderuser' },
|
|
{ key: 'password', value: 'folderpass' }
|
|
]
|
|
},
|
|
item: [
|
|
{
|
|
name: 'Override Auth Request',
|
|
request: {
|
|
method: 'GET',
|
|
url: 'https://api.example.com/test',
|
|
auth: {
|
|
type: 'bearer',
|
|
bearer: [{ key: 'token', value: 'requesttoken' }]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
};
|
|
|
|
const result = await postmanToBruno(postmanCollection);
|
|
|
|
expect(result.items[0].items[0].request.auth).toEqual({
|
|
mode: 'bearer',
|
|
basic: null,
|
|
bearer: {
|
|
token: 'requesttoken'
|
|
},
|
|
awsv4: null,
|
|
apikey: null,
|
|
oauth2: null,
|
|
digest: null
|
|
});
|
|
});
|
|
|
|
it('should handle missing basic auth values in request level', async() => {
|
|
const postmanCollection = {
|
|
info: {
|
|
name: 'Missing Auth Request Collection',
|
|
schema: 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json'
|
|
},
|
|
item: [
|
|
{
|
|
name: 'Missing Auth Request',
|
|
request: {
|
|
method: 'GET',
|
|
url: 'https://api.example.com/test',
|
|
auth: {
|
|
type: 'basic'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
};
|
|
|
|
const result = await postmanToBruno(postmanCollection);
|
|
|
|
expect(result.items[0].request.auth).toEqual({
|
|
mode: 'basic',
|
|
basic: {
|
|
username: '',
|
|
password: ''
|
|
},
|
|
bearer: null,
|
|
awsv4: null,
|
|
apikey: null,
|
|
oauth2: null,
|
|
digest: null
|
|
});
|
|
});
|
|
});
|