diff --git a/packages/bruno-js/src/runtime/script-runtime.js b/packages/bruno-js/src/runtime/script-runtime.js
index ee78ea980..2a8d02a87 100644
--- a/packages/bruno-js/src/runtime/script-runtime.js
+++ b/packages/bruno-js/src/runtime/script-runtime.js
@@ -283,6 +283,8 @@ class ScriptRuntime {
axios,
'node-fetch': fetch,
'crypto-js': CryptoJS,
+ 'xml2js': xml2js,
+ cheerio,
...whitelistedModules,
fs: allowScriptFilesystemAccess ? fs : undefined,
'node-vault': NodeVault
diff --git a/packages/bruno-tests/collection/scripting/inbuilt modules/cheerio/cheerio.bru b/packages/bruno-tests/collection/scripting/inbuilt modules/cheerio/cheerio.bru
index 07aad76b2..ce7a6346c 100644
--- a/packages/bruno-tests/collection/scripting/inbuilt modules/cheerio/cheerio.bru
+++ b/packages/bruno-tests/collection/scripting/inbuilt modules/cheerio/cheerio.bru
@@ -19,18 +19,35 @@ script:pre-request {
const $ = cheerio.load('
Hello world
');
- $('h2.title').text('Hello there!');
+ $('h2.title').text('Hello pre-request!');
$('h2').addClass('welcome');
- bru.setVar("cheerio-test-html", $.html());
+ bru.setVar("cheerio-test-pre-request", $.html());
+}
+
+script:post-response {
+ const cheerio = require('cheerio');
+
+ const $ = cheerio.load('Hello world
');
+
+ $('h2.title').text('Hello post-response!');
+ $('h2').addClass('welcome');
+
+ bru.setVar("cheerio-test-post-response", $.html());
}
tests {
const cheerio = require('cheerio');
- test("cheerio html - from scripts", function() {
- const expected = 'Hello there!
';
- const html = bru.getVar('cheerio-test-html');
+ test("cheerio html - from pre request script", function() {
+ const expected = 'Hello pre-request!
';
+ const html = bru.getVar('cheerio-test-pre-request');
+ expect(html).to.eql(expected);
+ });
+
+ test("cheerio html - from post response script", function() {
+ const expected = 'Hello post-response!
';
+ const html = bru.getVar('cheerio-test-post-response');
expect(html).to.eql(expected);
});
diff --git a/packages/bruno-tests/collection/scripting/inbuilt modules/xml2js/xml2js.bru b/packages/bruno-tests/collection/scripting/inbuilt modules/xml2js/xml2js.bru
index db8748ec3..935263117 100644
--- a/packages/bruno-tests/collection/scripting/inbuilt modules/xml2js/xml2js.bru
+++ b/packages/bruno-tests/collection/scripting/inbuilt modules/xml2js/xml2js.bru
@@ -12,20 +12,36 @@ get {
script:pre-request {
var parseString = require('xml2js').parseString;
- var xml = "Hello xml2js!"
+ var xml = "Hello xml2js - pre request!"
parseString(xml, function (err, result) {
- bru.setVar("xml2js-test-result", result);
+ bru.setVar("xml2js-test-result-pre-request", result);
+ });
+}
+
+script:post-response {
+ var parseString = require('xml2js').parseString;
+ var xml = "Hello xml2js - post response!"
+ parseString(xml, function (err, result) {
+ bru.setVar("xml2js-test-result-post-response", result);
});
}
tests {
var parseString = require('xml2js').parseString;
- test("xml2js parseString in scripts", function() {
+ test("xml2js parseString in scripts - pre request", function() {
const expected = {
- root: 'Hello xml2js!'
+ root: 'Hello xml2js - pre request!'
};
- const result = bru.getVar('xml2js-test-result');
+ const result = bru.getVar('xml2js-test-result-pre-request');
+ expect(result).to.eql(expected);
+ });
+
+ test("xml2js parseString in scripts - post response", function() {
+ const expected = {
+ root: 'Hello xml2js - post response!'
+ };
+ const result = bru.getVar('xml2js-test-result-post-response');
expect(result).to.eql(expected);
});