diff --git a/modules/pubmaticBidAdapter.js b/modules/pubmaticBidAdapter.js index 8b5a766e48b..452f6149091 100644 --- a/modules/pubmaticBidAdapter.js +++ b/modules/pubmaticBidAdapter.js @@ -319,7 +319,9 @@ export const spec = { var dctr = ''; var dctrLen; var dctrArr = []; - validBidRequests.forEach(bid => { + var bid; + validBidRequests.forEach(originalBid => { + bid = utils.deepClone(originalBid); _parseAdSlot(bid); if (bid.params.hasOwnProperty('video')) { if (!(bid.params.adSlot && bid.params.adUnit && bid.params.adUnitIndex)) { diff --git a/test/spec/modules/pubmaticBidAdapter_spec.js b/test/spec/modules/pubmaticBidAdapter_spec.js index e67ec1f11a2..be3b59c1a80 100644 --- a/test/spec/modules/pubmaticBidAdapter_spec.js +++ b/test/spec/modules/pubmaticBidAdapter_spec.js @@ -217,7 +217,13 @@ describe('PubMatic adapter', function () { }); describe('Request formation', function () { - it('Endpoint checking', function () { + it('buildRequests function should not modify original bidRequests object', function () { + let originalBidRequests = utils.deepClone(bidRequests); + let request = spec.buildRequests(bidRequests); + expect(bidRequests).to.deep.equal(originalBidRequests); + }); + + it('Endpoint checking', function () { let request = spec.buildRequests(bidRequests); expect(request.url).to.equal('//hbopenbid.pubmatic.com/translator?source=prebid-client'); expect(request.method).to.equal('POST');