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); });