Files
bruno/packages/bruno-tests/collection/scripting/api/bru/send-request/usage-patterns.bru
lohit f03047a2f9 feat: bru.sendRequest api (#4867)
* feat: bru.sendRequest api

* updated the postman-translations logic to handle `pm.sendRequest` to `bru.sendRequest` translations, and added unit tests

* ~ removed `maxRedirects` and `proxy` values for sendRequest axios-instance
~ fixed the imports for the `send-request-transformer` function
~ `sendRequest` and `runRequest` will return same response object in both safe and developer mode
~ sendRequest function optimization

* revert sendRequest to async function, added a testcase for sendRequest with url string

* sendRequest callback errors handling

* updated tests and added await for the callbacks

---------

Co-authored-by: lohit <lohit@usebruno.com>
2025-06-14 22:18:31 +05:30

81 lines
1.8 KiB
Plaintext

meta {
name: usage-patterns
type: http
seq: 1
}
post {
url: https://echo.usebruno.com
body: none
auth: inherit
}
tests {
// pattern 1: using async/await
await test("post request with async/await - success case", async () => {
const res = await bru.sendRequest({
url: 'https://echo.usebruno.com',
method: 'POST',
data: 'ping'
});
expect(res.data).to.eql('ping');
});
await test("post request with async/await - error case", async () => {
try {
await bru.sendRequest({
url: 'https://echo.usebruno.com/invalid',
method: 'POST',
data: 'ping'
});
}
catch(err) {
expect(err.status).to.eql(404);
}
});
// pattern 2: using promise (.then/.catch)
await test("post request with promise chain - success case", async () => {
await bru.sendRequest({
url: 'https://echo.usebruno.com',
method: 'POST',
data: 'ping'
})
.then(res => {
expect(res.data).to.eql('ping');
});
});
await test("post request with promise chain - error case", async () => {
await bru.sendRequest({
url: 'https://echo.usebruno.com/invalid',
method: 'POST',
data: 'ping'
})
.catch(err => {
expect(err.status).to.eql(404);
});
});
// pattern 3: using callbacks
await test("post request with callback - success case", async () => {
await bru.sendRequest({
url: 'https://echo.usebruno.com',
method: 'POST',
data: 'ping'
}, function(error, response) {
expect(response.data).to.eql('ping');
});
});
await test("post request with callback - error case", async () => {
await bru.sendRequest({
url: 'https://echo.usebruno.com/invalid',
method: 'POST',
data: 'ping'
}, function(error, response) {
expect(error.status).to.eql(404);
});
});
}