UNPKG

mk9-prebid

Version:

Header Bidding Management Library

383 lines (359 loc) 9.93 kB
import {createEidsArray} from 'modules/userId/eids.js'; import {expect} from 'chai'; // Note: In unit tets cases for bidders, call the createEidsArray function over userId object that is used for calling fetchBids // this way the request will stay consistent and unit test cases will not need lots of changes. describe('eids array generation for known sub-modules', function() { it('pubCommonId', function() { const userId = { pubcid: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'pubcid.org', uids: [{id: 'some-random-id-value', atype: 1}] }); }); it('unifiedId: ext generation', function() { const userId = { tdid: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'adserver.org', uids: [{id: 'some-random-id-value', atype: 1, ext: { rtiPartner: 'TDID' }}] }); }); describe('id5Id', function() { it('does not include an ext if not provided', function() { const userId = { id5id: { uid: 'some-random-id-value' } }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'id5-sync.com', uids: [{ id: 'some-random-id-value', atype: 1 }] }); }); it('includes ext if provided', function() { const userId = { id5id: { uid: 'some-random-id-value', ext: { linkType: 0 } } }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'id5-sync.com', uids: [{ id: 'some-random-id-value', atype: 1, ext: { linkType: 0 } }] }); }); }); it('parrableId', function() { const userId = { parrableId: { eid: 'some-random-id-value' } }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'parrable.com', uids: [{id: 'some-random-id-value', atype: 1}] }); }); it('merkleId', function() { const userId = { merkleId: { id: 'some-random-id-value', keyID: 1 } }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'merkleinc.com', uids: [{id: 'some-random-id-value', atype: 3, ext: { keyID: 1 }}] }); }); it('identityLink', function() { const userId = { idl_env: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'liveramp.com', uids: [{id: 'some-random-id-value', atype: 3}] }); }); it('liveIntentId; getValue call and ext', function() { const userId = { lipb: { lipbid: 'some-random-id-value', segments: ['s1', 's2'] } }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'liveintent.com', uids: [{id: 'some-random-id-value', atype: 3}], ext: {segments: ['s1', 's2']} }); }); it('liveIntentId; getValue call and NO ext', function() { const userId = { lipb: { lipbid: 'some-random-id-value' } }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'liveintent.com', uids: [{id: 'some-random-id-value', atype: 3}] }); }); it('britepoolId', function() { const userId = { britepoolid: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'britepool.com', uids: [{id: 'some-random-id-value', atype: 3}] }); }); it('lotamePanoramaId', function () { const userId = { lotamePanoramaId: 'some-random-id-value', }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'crwdcntrl.net', uids: [{ id: 'some-random-id-value', atype: 1 }], }); }); it('criteo', function() { const userId = { criteoId: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'criteo.com', uids: [{id: 'some-random-id-value', atype: 1}] }); }); it('tapadId', function() { const userId = { tapadId: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'tapad.com', uids: [{id: 'some-random-id-value', atype: 1}] }); }); it('deepintentId', function() { const userId = { deepintentId: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'deepintent.com', uids: [{id: 'some-random-id-value', atype: 3}] }); }); it('NetId', function() { const userId = { netId: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'netid.de', uids: [{id: 'some-random-id-value', atype: 1}] }); }); it('NextRollId', function() { const userId = { nextrollId: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'nextroll.com', uids: [{id: 'some-random-id-value', atype: 1}] }); }); it('zeotapIdPlus', function() { const userId = { IDP: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'zeotap.com', uids: [{ id: 'some-random-id-value', atype: 1 }] }); }); it('haloId', function() { const userId = { haloId: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'audigent.com', uids: [{ id: 'some-random-id-value', atype: 1 }] }); }); it('quantcastId', function() { const userId = { quantcastId: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'quantcast.com', uids: [{ id: 'some-random-id-value', atype: 1 }] }); }); it('uid2', function() { const userId = { uid2: {'id': 'Sample_AD_Token'} }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'uidapi.com', uids: [{ id: 'Sample_AD_Token', atype: 3 }] }); }); it('kpuid', function() { const userId = { kpuid: 'Sample_Token' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(1); expect(newEids[0]).to.deep.equal({ source: 'kpuid.com', uids: [{ id: 'Sample_Token', atype: 3 }] }); }); it('pubProvidedId', function() { const userId = { pubProvidedId: [{ source: 'example.com', uids: [{ id: 'value read from cookie or local storage', ext: { stype: 'ppuid' } }] }, { source: 'id-partner.com', uids: [{ id: 'value read from cookie or local storage' }] }] }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(2); expect(newEids[0]).to.deep.equal({ source: 'example.com', uids: [{ id: 'value read from cookie or local storage', ext: { stype: 'ppuid' } }] }); expect(newEids[1]).to.deep.equal({ source: 'id-partner.com', uids: [{ id: 'value read from cookie or local storage' }] }); }); it('amxId', () => { const id = 'c4bcadb0-124f-4468-a91a-d3d44cf311c5' const userId = { amxId: id }; const [eid] = createEidsArray(userId); expect(eid).to.deep.equal({ source: 'amxrtb.com', uids: [{ atype: 1, id, }] }); }); }); describe('Negative case', function() { it('eids array generation for UN-known sub-module', function() { // UnknownCommonId const userId = { unknowncid: 'some-random-id-value' }; const newEids = createEidsArray(userId); expect(newEids.length).to.equal(0); }); it('eids array generation for known sub-module with non-string value', function() { // pubCommonId let userId = { pubcid: undefined }; let newEids = createEidsArray(userId); expect(newEids.length).to.equal(0); userId.pubcid = 123; newEids = createEidsArray(userId); expect(newEids.length).to.equal(0); userId.pubcid = []; newEids = createEidsArray(userId); expect(newEids.length).to.equal(0); userId.pubcid = {}; newEids = createEidsArray(userId); expect(newEids.length).to.equal(0); userId.pubcid = null; newEids = createEidsArray(userId); expect(newEids.length).to.equal(0); }); });