UNPKG

mk9-prebid

Version:

Header Bidding Management Library

306 lines (286 loc) 8.23 kB
import { expect } from 'chai'; import { spec } from 'modules/betweenBidAdapter.js'; describe('betweenBidAdapterTests', function () { it('validate_pub_params', function () { expect(spec.isBidRequestValid({ bidder: 'between', params: { w: 240, h: 400, s: 1112 } })).to.equal(true); }); it('validate_generated_params', function () { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', params: {w: 240, h: 400, s: 1112}, sizes: [[240, 400]] }] let request = spec.buildRequests(bidRequestData); let req_data = JSON.parse(request.data)[0].data; expect(req_data.bidid).to.equal('bid1234'); }); it('validate itu param', function() { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', params: { w: 240, h: 400, s: 1112, itu: 'https://something.url' }, sizes: [[240, 400]] }]; let request = spec.buildRequests(bidRequestData); let req_data = JSON.parse(request.data)[0].data; expect(req_data.itu).to.equal('https://something.url'); }); it('validate cur param', function() { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', params: { w: 240, h: 400, s: 1112, cur: 'THX' }, sizes: [[240, 400]] }]; let request = spec.buildRequests(bidRequestData); let req_data = JSON.parse(request.data)[0].data; expect(req_data.cur).to.equal('THX'); }); it('validate subid param', function() { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', params: { w: 240, h: 400, s: 1112, subid: 1138, }, sizes: [[240, 400]] }]; let request = spec.buildRequests(bidRequestData); let req_data = JSON.parse(request.data)[0].data; expect(req_data.subid).to.equal(1138); }); it('validate click3rd param', function() { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', params: { w: 240, h: 400, s: 1112, click3rd: 'https://something.url', }, sizes: [[240, 400]] }]; let request = spec.buildRequests(bidRequestData); let req_data = JSON.parse(request.data)[0].data; expect(req_data.click3rd).to.equal('https://something.url'); }); it('validate pubdata param', function() { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', params: { w: 240, h: 400, s: 1112, pubdata: { param: '&test=tset' }, }, sizes: [[240, 400]] }]; let request = spec.buildRequests(bidRequestData); let req_data = JSON.parse(request.data)[0].data; expect(req_data['pubside_macro[param]']).to.equal('%26test%3Dtset'); }); it('validate gdprConsent', function() { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', params: { w: 240, h: 400, s: 1112, }, sizes: [[240, 400]] }]; let bidderRequest = { gdprConsent: { consentString: 'BOtGbjbOtGbjbBQABBENC3-AAAAtR7_______9______9uz_Ov_v_f__33e8__9v_l_7_-___u_-33d4u_1vf99yfm1-7etr3tp_87ues2_Xur__79__3z3_9pxP78k89r7337Ew_v-_v-b7JCON_IA', gdprApplies: true } } let request = spec.buildRequests(bidRequestData, bidderRequest); let req_data = JSON.parse(request.data)[0].data; expect(req_data.gdprApplies).to.equal(bidderRequest.gdprConsent.gdprApplies); expect(req_data.consentString).to.equal(bidderRequest.gdprConsent.consentString); }); it('validate_response_params', function () { let serverResponse = { body: [{ bidid: 'bid1234', cpm: 1.12, w: 240, h: 400, currency: 'USD', ad: 'Ad html' }] }; let bids = spec.interpretResponse(serverResponse); expect(bids).to.have.lengthOf(1); let bid = bids[0]; expect(bid.cpm).to.equal(1.12); expect(bid.currency).to.equal('USD'); expect(bid.width).to.equal(240); expect(bid.height).to.equal(400); expect(bid.netRevenue).to.equal(true); expect(bid.requestId).to.equal('bid1234'); expect(bid.ad).to.equal('Ad html'); }); it('validate_response_params', function () { let serverResponse = { body: [{ bidid: 'bid1234', w: 240, h: 400, currency: 'USD', ad: 'Ad html' }] }; let bids = spec.interpretResponse(serverResponse); expect(bids).to.have.lengthOf(1); let bid = bids[0]; expect(bid.cpm).to.equal(0); expect(bid.currency).to.equal('USD'); expect(bid.width).to.equal(240); expect(bid.height).to.equal(400); expect(bid.netRevenue).to.equal(true); expect(bid.requestId).to.equal('bid1234'); expect(bid.ad).to.equal('Ad html'); }); it('validate response params without currency', function () { let serverResponse = { body: [{ bidid: 'bid1234', w: 240, h: 400, ad: 'Ad html' }] }; let bids = spec.interpretResponse(serverResponse); expect(bids).to.have.lengthOf(1); let bid = bids[0]; expect(bid.currency).to.equal('RUB'); }); it('check getUserSyncs', function() { const syncs = spec.getUserSyncs({}, {}); expect(syncs).to.be.an('array').that.to.have.lengthOf(1); expect(syncs[0]).to.deep.equal({type: 'iframe', url: 'https://ads.betweendigital.com/sspmatch-iframe'}); }); it('check sizes', function() { let bidRequestData = [{ bidId: 'bid1234', bidder: 'between', mediaTypes: { banner: { sizes: [[970, 250], [240, 400], [728, 90]] } }, params: { s: 1112, }, }]; let request = spec.buildRequests(bidRequestData); let req_data = JSON.parse(request.data)[0].data; expect(req_data.sizes).to.deep.equal(['970x250', '240x400', '728x90']) }); it('check sharedId with id and third', function() { const bidRequestData = [{ bidId: 'bid123', bidder: 'between', mediaTypes: { banner: { sizes: [[728, 90]] } }, params: { s: 1112, }, userId: { sharedid: { id: '01EXQE7JKNDRDDVATB0S2GX1NT', third: '01EXQE7JKNDRDDVATB0S2GX1NT' } } }]; const shid = JSON.parse(spec.buildRequests(bidRequestData).data)[0].data.shid; const shid3 = JSON.parse(spec.buildRequests(bidRequestData).data)[0].data.shid3; expect(shid).to.equal('01EXQE7JKNDRDDVATB0S2GX1NT') && expect(shid3).to.equal('01EXQE7JKNDRDDVATB0S2GX1NT'); }); it('check sharedId with only id', function() { const bidRequestData = [{ bidId: 'bid123', bidder: 'between', mediaTypes: { banner: { sizes: [[728, 90]] } }, params: { s: 1112, }, userId: { sharedid: { id: '01EXQE7JKNDRDDVATB0S2GX1NT', } } }]; const shid = JSON.parse(spec.buildRequests(bidRequestData).data)[0].data.shid; const shid3 = JSON.parse(spec.buildRequests(bidRequestData).data)[0].data.shid3; expect(shid).to.equal('01EXQE7JKNDRDDVATB0S2GX1NT') && expect(shid3).to.equal(''); }); it('check adomain', function() { const serverResponse = { body: [{ bidid: 'bid1234', cpm: 1.12, w: 240, h: 400, currency: 'USD', ad: 'Ad html', adomain: ['domain1.com', 'domain2.com'] }] }; const bids = spec.interpretResponse(serverResponse); expect(bids).to.have.lengthOf(1); const bid = bids[0]; expect(bid.meta.advertiserDomains).to.deep.equal(['domain1.com', 'domain2.com']); }); it('check server response without adomain', function() { const serverResponse = { body: [{ bidid: 'bid1234', cpm: 1.12, w: 240, h: 400, currency: 'USD', ad: 'Ad html', }] }; const bids = spec.interpretResponse(serverResponse); expect(bids).to.have.lengthOf(1); const bid = bids[0]; expect(bid.meta.advertiserDomains).to.deep.equal([]); }); });