diff --git a/README.md b/README.md index e6d25a5cb5a..70e058d122b 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,12 @@ To lint the code: gulp lint ``` +To lint and only show errors + +```bash +gulp lint --no-lint-warnings +``` + To run the unit tests: ```bash @@ -245,7 +251,7 @@ gulp test To run the unit tests for a particular file (example for pubmaticBidAdapter_spec.js): ```bash -gulp test --file "test/spec/modules/pubmaticBidAdapter_spec.js" +gulp test --file "test/spec/modules/pubmaticBidAdapter_spec.js" --nolint ``` To generate and view the code coverage reports: diff --git a/creative/constants.js b/creative/constants.js index 6bb92cfe3c2..d02c4c9d5e4 100644 --- a/creative/constants.js +++ b/creative/constants.js @@ -1,9 +1,9 @@ // eslint-disable-next-line prebid/validate-imports -import CONSTANTS from '../src/constants.json'; +import { AD_RENDER_FAILED_REASON, EVENTS, MESSAGES } from '../src/constants.js'; -export const MESSAGE_REQUEST = CONSTANTS.MESSAGES.REQUEST; -export const MESSAGE_RESPONSE = CONSTANTS.MESSAGES.RESPONSE; -export const MESSAGE_EVENT = CONSTANTS.MESSAGES.EVENT; -export const EVENT_AD_RENDER_FAILED = CONSTANTS.EVENTS.AD_RENDER_FAILED; -export const EVENT_AD_RENDER_SUCCEEDED = CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED; -export const ERROR_EXCEPTION = CONSTANTS.AD_RENDER_FAILED_REASON.EXCEPTION; +export const MESSAGE_REQUEST = MESSAGES.REQUEST; +export const MESSAGE_RESPONSE = MESSAGES.RESPONSE; +export const MESSAGE_EVENT = MESSAGES.EVENT; +export const EVENT_AD_RENDER_FAILED = EVENTS.AD_RENDER_FAILED; +export const EVENT_AD_RENDER_SUCCEEDED = EVENTS.AD_RENDER_SUCCEEDED; +export const ERROR_EXCEPTION = AD_RENDER_FAILED_REASON.EXCEPTION; diff --git a/creative/renderers/display/constants.js b/creative/renderers/display/constants.js index d291c79bb34..2493fb2d163 100644 --- a/creative/renderers/display/constants.js +++ b/creative/renderers/display/constants.js @@ -1,4 +1,4 @@ // eslint-disable-next-line prebid/validate-imports -import CONSTANTS from '../../../src/constants.json'; +import { AD_RENDER_FAILED_REASON } from '../../../src/constants.js'; -export const ERROR_NO_AD = CONSTANTS.AD_RENDER_FAILED_REASON.NO_AD; +export const ERROR_NO_AD = AD_RENDER_FAILED_REASON.NO_AD; diff --git a/creative/renderers/native/constants.js b/creative/renderers/native/constants.js index ac20275fca8..b82e2d1d54e 100644 --- a/creative/renderers/native/constants.js +++ b/creative/renderers/native/constants.js @@ -1,7 +1,7 @@ // eslint-disable-next-line prebid/validate-imports -import CONSTANTS from '../../../src/constants.json'; +import { MESSAGES } from '../../../src/constants.js'; -export const MESSAGE_NATIVE = CONSTANTS.MESSAGES.NATIVE; +export const MESSAGE_NATIVE = MESSAGES.NATIVE; export const ACTION_RESIZE = 'resizeNativeHeight'; export const ACTION_CLICK = 'click'; export const ACTION_IMP = 'fireNativeImpressionTrackers'; diff --git a/libraries/analyticsAdapter/AnalyticsAdapter.js b/libraries/analyticsAdapter/AnalyticsAdapter.js index e1933d215e4..395a21e5571 100644 --- a/libraries/analyticsAdapter/AnalyticsAdapter.js +++ b/libraries/analyticsAdapter/AnalyticsAdapter.js @@ -1,4 +1,4 @@ -import CONSTANTS from '../../src/constants.json'; +import { EVENTS } from '../../src/constants.js'; import {ajax} from '../../src/ajax.js'; import {logError, logMessage} from '../../src/utils.js'; import * as events from '../../src/events.js'; @@ -9,8 +9,8 @@ export const _internal = { const ENDPOINT = 'endpoint'; const BUNDLE = 'bundle'; -export const DEFAULT_INCLUDE_EVENTS = Object.values(CONSTANTS.EVENTS) - .filter(ev => ev !== CONSTANTS.EVENTS.AUCTION_DEBUG); +export const DEFAULT_INCLUDE_EVENTS = Object.values(EVENTS) + .filter(ev => ev !== EVENTS.AUCTION_DEBUG); let debounceDelay = 100; @@ -114,7 +114,7 @@ export default function AnalyticsAdapter({ url, analyticsType, global, handler } const trackedEvents = (() => { const {includeEvents = DEFAULT_INCLUDE_EVENTS, excludeEvents = []} = (config || {}); return new Set( - Object.values(CONSTANTS.EVENTS) + Object.values(EVENTS) .filter(ev => includeEvents.includes(ev)) .filter(ev => !excludeEvents.includes(ev)) ); diff --git a/modules/33acrossAnalyticsAdapter.js b/modules/33acrossAnalyticsAdapter.js index e3539906b13..890c963fa71 100644 --- a/modules/33acrossAnalyticsAdapter.js +++ b/modules/33acrossAnalyticsAdapter.js @@ -1,12 +1,10 @@ import { deepAccess, logInfo, logWarn, logError, deepClone } from '../src/utils.js'; import buildAdapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager, { coppaDataHandler, gdprDataHandler, gppDataHandler, uspDataHandler } from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; - /** - * @typedef {typeof import('../src/constants.json').EVENTS} EVENTS + * @typedef {typeof import('../src/constants.js').EVENTS} EVENTS */ -const { EVENTS } = CONSTANTS; +import { EVENTS } from '../src/constants.js'; /** @typedef {'pending'|'available'|'targetingSet'|'rendered'|'timeout'|'rejected'|'noBid'|'error'} BidStatus */ /** diff --git a/modules/adWMGAnalyticsAdapter.js b/modules/adWMGAnalyticsAdapter.js index dd0340071d1..ed1ac46363c 100644 --- a/modules/adWMGAnalyticsAdapter.js +++ b/modules/adWMGAnalyticsAdapter.js @@ -1,20 +1,18 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import { ajax } from '../src/ajax.js'; const analyticsType = 'endpoint'; const url = 'https://analytics.wmgroup.us/analytic/collection'; const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_REQUESTED, - BID_WON, - BID_TIMEOUT, - NO_BID, - BID_RESPONSE - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_REQUESTED, + BID_WON, + BID_TIMEOUT, + NO_BID, + BID_RESPONSE +} = EVENTS; let timestampInit = null; diff --git a/modules/adagioAnalyticsAdapter.js b/modules/adagioAnalyticsAdapter.js index 82b3b356c81..bb5de41d3ce 100644 --- a/modules/adagioAnalyticsAdapter.js +++ b/modules/adagioAnalyticsAdapter.js @@ -4,7 +4,7 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import { ajax } from '../src/ajax.js'; import { BANNER } from '../src/mediaTypes.js'; import { getWindowTop, getWindowSelf, deepAccess, logInfo, logError } from '../src/utils.js'; @@ -12,7 +12,7 @@ import { getGlobal } from '../src/prebidGlobal.js'; const emptyUrl = ''; const analyticsType = 'endpoint'; -const events = Object.keys(CONSTANTS.EVENTS).map(key => CONSTANTS.EVENTS[key]); +const events = Object.keys(EVENTS).map(key => EVENTS[key]); const ADAGIO_GVLID = 617; const VERSION = '3.0.0'; const PREBID_VERSION = '$prebid.version$'; @@ -383,22 +383,22 @@ let adagioAdapter = Object.assign(adapter({ emptyUrl, analyticsType }), { try { switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: handlerAuctionInit(args); break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: handlerBidResponse(args); break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: handlerAuctionEnd(args); break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: handlerBidWon(args); break; // AD_RENDER_SUCCEEDED seems redundant with BID_WON. // case CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED: - case CONSTANTS.EVENTS.AD_RENDER_FAILED: - handlerAdRender(args, eventType === CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED); + case EVENTS.AD_RENDER_FAILED: + handlerAdRender(args, eventType === EVENTS.AD_RENDER_SUCCEEDED); break; } } catch (error) { diff --git a/modules/adkernelAdnAnalyticsAdapter.js b/modules/adkernelAdnAnalyticsAdapter.js index 48897f8516b..a32a97af3c6 100644 --- a/modules/adkernelAdnAnalyticsAdapter.js +++ b/modules/adkernelAdnAnalyticsAdapter.js @@ -1,5 +1,5 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import {EVENTS} from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import { logError, parseUrl, _each } from '../src/utils.js'; import {ajax} from '../src/ajax.js'; @@ -51,26 +51,26 @@ let analyticsAdapter = Object.assign(adapter({analyticsType: 'endpoint'}), } let handler = null; switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: if (analyticsAdapter.context.queue) { analyticsAdapter.context.queue.init(); } initPrivacy(analyticsAdapter.context.requestTemplate, args.bidderRequests); handler = trackAuctionInit; break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: handler = trackBidRequest; break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: handler = trackBidResponse; break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: handler = trackBidWon; break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: handler = trackBidTimeout; break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: handler = trackAuctionEnd; break; } @@ -79,7 +79,7 @@ let analyticsAdapter = Object.assign(adapter({analyticsType: 'endpoint'}), if (analyticsAdapter.context.queue) { analyticsAdapter.context.queue.push(events); } - if (eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (eventType === EVENTS.AUCTION_END) { sendAll(); } } diff --git a/modules/adlooxAdServerVideo.js b/modules/adlooxAdServerVideo.js index bd715cb34f3..199fecafd13 100644 --- a/modules/adlooxAdServerVideo.js +++ b/modules/adlooxAdServerVideo.js @@ -9,7 +9,7 @@ import { registerVideoSupport } from '../src/adServerManager.js'; import { command as analyticsCommand, COMMAND } from './adlooxAnalyticsAdapter.js'; import { ajax } from '../src/ajax.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import { targeting } from '../src/targeting.js'; import { logInfo, isFn, logError, isPlainObject, isStr, isBoolean, deepSetValue, deepClone, timestamp, logWarn } from '../src/utils.js'; @@ -74,7 +74,7 @@ function track(options, callback) { bid.ext.adloox.video.adserver = false; analyticsCommand(COMMAND.TRACK, { - eventType: CONSTANTS.EVENTS.BID_WON, + eventType: EVENTS.BID_WON, args: bid }); } diff --git a/modules/adlooxAnalyticsAdapter.js b/modules/adlooxAnalyticsAdapter.js index 9284d543298..e31ea290e11 100644 --- a/modules/adlooxAnalyticsAdapter.js +++ b/modules/adlooxAnalyticsAdapter.js @@ -9,7 +9,7 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import {loadExternalScript} from '../src/adloader.js'; import {auctionManager} from '../src/auctionManager.js'; import {AUCTION_COMPLETED} from '../src/auction.js'; -import CONSTANTS from '../src/constants.json'; +import {EVENTS} from '../src/constants.js'; import {find} from '../src/polyfill.js'; import {getRefererInfo} from '../src/refererDetection.js'; import { @@ -220,9 +220,9 @@ analyticsAdapter.url = function(url, args, bid) { return url + a2qs(args); } -analyticsAdapter[`handle_${CONSTANTS.EVENTS.AUCTION_END}`] = function(auctionDetails) { +analyticsAdapter[`handle_${EVENTS.AUCTION_END}`] = function(auctionDetails) { if (!(auctionDetails.auctionStatus == AUCTION_COMPLETED && auctionDetails.bidsReceived.length > 0)) return; - analyticsAdapter[`handle_${CONSTANTS.EVENTS.AUCTION_END}`] = NOOP; + analyticsAdapter[`handle_${EVENTS.AUCTION_END}`] = NOOP; logMessage(MODULE, 'preloading verification JS'); @@ -235,7 +235,7 @@ analyticsAdapter[`handle_${CONSTANTS.EVENTS.AUCTION_END}`] = function(auctionDet insertElement(link); } -analyticsAdapter[`handle_${CONSTANTS.EVENTS.BID_WON}`] = function(bid) { +analyticsAdapter[`handle_${EVENTS.BID_WON}`] = function(bid) { if (deepAccess(bid, 'ext.adloox.video.adserver')) { logMessage(MODULE, `measuring '${bid.mediaType}' ad unit code '${bid.adUnitCode}' via Ad Server module`); return; diff --git a/modules/adomikAnalyticsAdapter.js b/modules/adomikAnalyticsAdapter.js index 27a6821d9f5..d6e1547cce8 100644 --- a/modules/adomikAnalyticsAdapter.js +++ b/modules/adomikAnalyticsAdapter.js @@ -1,16 +1,16 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import {EVENTS} from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {logInfo} from '../src/utils.js'; import {find, findIndex} from '../src/polyfill.js'; // Events used in adomik analytics adapter. -const auctionInit = CONSTANTS.EVENTS.AUCTION_INIT; -const auctionEnd = CONSTANTS.EVENTS.AUCTION_END; -const bidRequested = CONSTANTS.EVENTS.BID_REQUESTED; -const bidResponse = CONSTANTS.EVENTS.BID_RESPONSE; -const bidWon = CONSTANTS.EVENTS.BID_WON; -const bidTimeout = CONSTANTS.EVENTS.BID_TIMEOUT; +const auctionInit = EVENTS.AUCTION_INIT; +const auctionEnd = EVENTS.AUCTION_END; +const bidRequested = EVENTS.BID_REQUESTED; +const bidResponse = EVENTS.BID_RESPONSE; +const bidWon = EVENTS.BID_WON; +const bidTimeout = EVENTS.BID_TIMEOUT; const ua = navigator.userAgent; var _sampled = true; diff --git a/modules/adpod.js b/modules/adpod.js index f6d8309cd9f..b6d13673178 100644 --- a/modules/adpod.js +++ b/modules/adpod.js @@ -38,7 +38,7 @@ import {config} from '../src/config.js'; import {ADPOD} from '../src/mediaTypes.js'; import {find, arrayFrom as from} from '../src/polyfill.js'; import {auctionManager} from '../src/auctionManager.js'; -import CONSTANTS from '../src/constants.json'; +import { TARGETING_KEYS } from '../src/constants.js'; const TARGETING_KEY_PB_CAT_DUR = 'hb_pb_cat_dur'; const TARGETING_KEY_CACHE_ID = 'hb_cache_id'; @@ -454,10 +454,10 @@ export function callPrebidCacheAfterAuction(bids, callback) { * @param {Object} bid */ export function sortByPricePerSecond(a, b) { - if (a.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket < b.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) { + if (a.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket < b.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) { return 1; } - if (a.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket > b.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) { + if (a.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket > b.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) { return -1; } return 0; diff --git a/modules/adxcgAnalyticsAdapter.js b/modules/adxcgAnalyticsAdapter.js index 21b6c1be783..7ad95121209 100644 --- a/modules/adxcgAnalyticsAdapter.js +++ b/modules/adxcgAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { parseSizesInput, uniques, buildUrl, logError } from '../src/utils.js'; import { ajax } from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getGlobal} from '../src/prebidGlobal.js'; /** @@ -22,29 +22,29 @@ var adxcgAnalyticsAdapter = Object.assign(adapter( }), { track ({eventType, args}) { switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: adxcgAnalyticsAdapter.context.events.auctionInit = mapAuctionInit(args); adxcgAnalyticsAdapter.context.auctionTimestamp = args.timestamp; break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: adxcgAnalyticsAdapter.context.auctionId = args.auctionId; adxcgAnalyticsAdapter.context.events.bidRequests.push(mapBidRequested(args)); break; - case CONSTANTS.EVENTS.BID_ADJUSTMENT: + case EVENTS.BID_ADJUSTMENT: break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: adxcgAnalyticsAdapter.context.events.bidTimeout = args.map(item => item.bidder).filter(uniques); break; - case CONSTANTS.EVENTS.BIDDER_DONE: + case EVENTS.BIDDER_DONE: break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: adxcgAnalyticsAdapter.context.events.bidResponses.push(mapBidResponse(args, eventType)); break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: let outData2 = {bidWons: mapBidWon(args)}; send(outData2); break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: send(adxcgAnalyticsAdapter.context.events); break; } @@ -87,7 +87,7 @@ function mapBidResponse (bidResponse, eventType) { currency: bidResponse.currency, netRevenue: bidResponse.netRevenue, timeToRespond: bidResponse.timeToRespond, - bidId: eventType === CONSTANTS.EVENTS.BID_TIMEOUT ? bidResponse.bidId : bidResponse.requestId, + bidId: eventType === EVENTS.BID_TIMEOUT ? bidResponse.bidId : bidResponse.requestId, dealId: bidResponse.dealId, status: bidResponse.status, creativeId: bidResponse.creativeId.toString() diff --git a/modules/adxpremiumAnalyticsAdapter.js b/modules/adxpremiumAnalyticsAdapter.js index 9161c6338f4..e3f77e96725 100644 --- a/modules/adxpremiumAnalyticsAdapter.js +++ b/modules/adxpremiumAnalyticsAdapter.js @@ -2,7 +2,7 @@ import {deepClone, logError, logInfo} from '../src/utils.js'; import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {includes} from '../src/polyfill.js'; const analyticsType = 'endpoint'; @@ -12,15 +12,13 @@ let reqCountry = window.reqCountry || null; // Events needed const { - EVENTS: { - AUCTION_INIT, - BID_REQUESTED, - BID_TIMEOUT, - BID_RESPONSE, - BID_WON, - AUCTION_END - } -} = CONSTANTS; + AUCTION_INIT, + BID_REQUESTED, + BID_TIMEOUT, + BID_RESPONSE, + BID_WON, + AUCTION_END +} = EVENTS; let timeoutBased = false; let requestSent = false; diff --git a/modules/agmaAnalyticsAdapter.js b/modules/agmaAnalyticsAdapter.js index f3933cc7625..e2e01fb4d03 100644 --- a/modules/agmaAnalyticsAdapter.js +++ b/modules/agmaAnalyticsAdapter.js @@ -9,7 +9,7 @@ import { } from '../src/utils.js'; import { getGlobal } from '../src/prebidGlobal.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager, { gdprDataHandler } from '../src/adapterManager.js'; import { getRefererInfo } from '../src/refererDetection.js'; import { config } from '../src/config.js'; @@ -22,10 +22,6 @@ const batchDelayInMs = 1000; const agmaURL = 'https://pbc.agma-analytics.de/v1'; const pageViewId = generateUUID(); -const { - EVENTS: { AUCTION_INIT }, -} = CONSTANTS; - // Helper functions const getScreen = () => { const w = window; @@ -212,7 +208,7 @@ agmaAnalytics.enableAnalytics = function (config = {}) { } agmaAnalytics.options = { - triggerEvent: AUCTION_INIT, + triggerEvent: EVENTS.AUCTION_INIT, ...options, }; diff --git a/modules/appierAnalyticsAdapter.js b/modules/appierAnalyticsAdapter.js index b4081feaf92..3664c49c424 100644 --- a/modules/appierAnalyticsAdapter.js +++ b/modules/appierAnalyticsAdapter.js @@ -1,6 +1,6 @@ import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {getGlobal} from '../src/prebidGlobal.js'; import {logError, logInfo, deepClone} from '../src/utils.js'; @@ -12,12 +12,10 @@ export const ANALYTICS_VERSION = '1.0.0'; const DEFAULT_SERVER = 'https://prebid-analytics.c.appier.net/v1'; const { - EVENTS: { - AUCTION_END, - BID_WON, - BID_TIMEOUT - } -} = CONSTANTS; + AUCTION_END, + BID_WON, + BID_TIMEOUT +} = EVENTS; export const BIDDER_STATUS = { BID: 'bid', diff --git a/modules/asteriobidAnalyticsAdapter.js b/modules/asteriobidAnalyticsAdapter.js index 516a3a65667..d5b6c0b4cf7 100644 --- a/modules/asteriobidAnalyticsAdapter.js +++ b/modules/asteriobidAnalyticsAdapter.js @@ -3,7 +3,7 @@ import { ajaxBuilder } from '../src/ajax.js' import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js' import adapterManager from '../src/adapterManager.js' import { getStorageManager } from '../src/storageManager.js' -import CONSTANTS from '../src/constants.json' +import { EVENTS } from '../src/constants.js' import { MODULE_TYPE_ANALYTICS } from '../src/activities/modules.js' import {getRefererInfo} from '../src/refererDetection.js'; @@ -203,7 +203,7 @@ function handleEvent(eventType, eventArgs) { pmEvent.eventType = eventType switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: { + case EVENTS.AUCTION_INIT: { pmEvent.auctionId = eventArgs.auctionId pmEvent.timeout = eventArgs.timeout pmEvent.adUnits = eventArgs.adUnits && eventArgs.adUnits.map(trimAdUnit) @@ -212,7 +212,7 @@ function handleEvent(eventType, eventArgs) { auctionTimeouts[pmEvent.auctionId] = pmEvent.timeout break } - case CONSTANTS.EVENTS.AUCTION_END: { + case EVENTS.AUCTION_END: { pmEvent.auctionId = eventArgs.auctionId pmEvent.end = eventArgs.end pmEvent.start = eventArgs.start @@ -222,15 +222,15 @@ function handleEvent(eventType, eventArgs) { pmEvent.end = Date.now() break } - case CONSTANTS.EVENTS.BID_ADJUSTMENT: { + case EVENTS.BID_ADJUSTMENT: { break } - case CONSTANTS.EVENTS.BID_TIMEOUT: { + case EVENTS.BID_TIMEOUT: { pmEvent.bidders = eventArgs && eventArgs.map ? eventArgs.map(trimBid) : eventArgs pmEvent.duration = auctionTimeouts[pmEvent.auctionId] break } - case CONSTANTS.EVENTS.BID_REQUESTED: { + case EVENTS.BID_REQUESTED: { pmEvent.auctionId = eventArgs.auctionId pmEvent.bidderCode = eventArgs.bidderCode pmEvent.doneCbCallCount = eventArgs.doneCbCallCount @@ -241,7 +241,7 @@ function handleEvent(eventType, eventArgs) { pmEvent.timeout = eventArgs.timeout break } - case CONSTANTS.EVENTS.BID_RESPONSE: { + case EVENTS.BID_RESPONSE: { pmEvent.bidderCode = eventArgs.bidderCode pmEvent.width = eventArgs.width pmEvent.height = eventArgs.height @@ -260,7 +260,7 @@ function handleEvent(eventType, eventArgs) { pmEvent.adserverTargeting = eventArgs.adserverTargeting break } - case CONSTANTS.EVENTS.BID_WON: { + case EVENTS.BID_WON: { pmEvent.auctionId = eventArgs.auctionId pmEvent.adId = eventArgs.adId pmEvent.adserverTargeting = eventArgs.adserverTargeting @@ -278,7 +278,7 @@ function handleEvent(eventType, eventArgs) { pmEvent.bidder = eventArgs.bidder break } - case CONSTANTS.EVENTS.BIDDER_DONE: { + case EVENTS.BIDDER_DONE: { pmEvent.auctionId = eventArgs.auctionId pmEvent.auctionStart = eventArgs.auctionStart pmEvent.bidderCode = eventArgs.bidderCode @@ -291,16 +291,16 @@ function handleEvent(eventType, eventArgs) { pmEvent.src = eventArgs.src break } - case CONSTANTS.EVENTS.SET_TARGETING: { + case EVENTS.SET_TARGETING: { break } - case CONSTANTS.EVENTS.REQUEST_BIDS: { + case EVENTS.REQUEST_BIDS: { break } - case CONSTANTS.EVENTS.ADD_AD_UNITS: { + case EVENTS.ADD_AD_UNITS: { break } - case CONSTANTS.EVENTS.AD_RENDER_FAILED: { + case EVENTS.AD_RENDER_FAILED: { pmEvent.bid = eventArgs.bid pmEvent.message = eventArgs.message pmEvent.reason = eventArgs.reason @@ -317,7 +317,7 @@ function sendEvent(event) { eventQueue.push(event) logInfo(`${analyticsName} Event ${event.eventType}:`, event) - if (event.eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (event.eventType === EVENTS.AUCTION_END) { flush() } } diff --git a/modules/atsAnalyticsAdapter.js b/modules/atsAnalyticsAdapter.js index 8e92146694f..d94e68b7e55 100644 --- a/modules/atsAnalyticsAdapter.js +++ b/modules/atsAnalyticsAdapter.js @@ -1,6 +1,6 @@ import { logError, logInfo } from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adaptermanager from '../src/adapterManager.js'; import {ajax} from '../src/ajax.js'; import {getStorageManager} from '../src/storageManager.js'; @@ -346,12 +346,12 @@ atsAnalyticsAdapter.enableAnalytics = function (config) { }; atsAnalyticsAdapter.callHandler = function (evtype, args) { - if (evtype === CONSTANTS.EVENTS.BID_REQUESTED) { + if (evtype === EVENTS.BID_REQUESTED) { handlerRequest = handlerRequest.concat(bidRequestedHandler(args)); - } else if (evtype === CONSTANTS.EVENTS.BID_RESPONSE) { + } else if (evtype === EVENTS.BID_RESPONSE) { handlerResponse.push(bidResponseHandler(args)); } - if (evtype === CONSTANTS.EVENTS.AUCTION_END) { + if (evtype === EVENTS.AUCTION_END) { let bidWonTimeout = atsAnalyticsAdapter.context.bidWonTimeout ? atsAnalyticsAdapter.context.bidWonTimeout : 2000; let events = []; setTimeout(() => { diff --git a/modules/automatadAnalyticsAdapter.js b/modules/automatadAnalyticsAdapter.js index 436418e7597..523e8d558ca 100644 --- a/modules/automatadAnalyticsAdapter.js +++ b/modules/automatadAnalyticsAdapter.js @@ -4,7 +4,7 @@ import { logMessage } from '../src/utils.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import { config } from '../src/config.js' @@ -57,49 +57,49 @@ const processEvents = () => { try { switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: if (window.atmtdAnalytics && window.atmtdAnalytics.auctionInitHandler) { window.atmtdAnalytics.auctionInitHandler(args); } else { shouldTryAgain = true } break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: if (window.atmtdAnalytics && window.atmtdAnalytics.bidRequestedHandler) { window.atmtdAnalytics.bidRequestedHandler(args); } break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: if (window.atmtdAnalytics && window.atmtdAnalytics.bidResponseHandler) { window.atmtdAnalytics.bidResponseHandler(args); } break; - case CONSTANTS.EVENTS.BID_REJECTED: + case EVENTS.BID_REJECTED: if (window.atmtdAnalytics && window.atmtdAnalytics.bidRejectedHandler) { window.atmtdAnalytics.bidRejectedHandler(args); } break; - case CONSTANTS.EVENTS.BIDDER_DONE: + case EVENTS.BIDDER_DONE: if (window.atmtdAnalytics && window.atmtdAnalytics.bidderDoneHandler) { window.atmtdAnalytics.bidderDoneHandler(args); } break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: if (window.atmtdAnalytics && window.atmtdAnalytics.bidWonHandler) { window.atmtdAnalytics.bidWonHandler(args); } break; - case CONSTANTS.EVENTS.NO_BID: + case EVENTS.NO_BID: if (window.atmtdAnalytics && window.atmtdAnalytics.noBidHandler) { window.atmtdAnalytics.noBidHandler(args); } break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: if (window.atmtdAnalytics && window.atmtdAnalytics.bidderTimeoutHandler) { window.atmtdAnalytics.bidderTimeoutHandler(args); } break; - case CONSTANTS.EVENTS.AUCTION_DEBUG: + case EVENTS.AUCTION_DEBUG: if (window.atmtdAnalytics && window.atmtdAnalytics.auctionDebugHandler) { window.atmtdAnalytics.auctionDebugHandler(args); } @@ -173,7 +173,7 @@ const initializeQueue = () => { timer = null; } - if (args[0] === CONSTANTS.EVENTS.AUCTION_INIT) { + if (args[0] === EVENTS.AUCTION_INIT) { const timeout = parseInt(config.getConfig('bidderTimeout')) + 1500 timer = setTimeout(() => { self.processEvents() @@ -198,7 +198,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { track({eventType, args}) { const shouldNotPushToQueue = !self.qBeingUsed switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: if (window.atmtdAnalytics && window.atmtdAnalytics.auctionInitHandler && shouldNotPushToQueue) { self.prettyLog('status', 'Aggregator loaded, initialising auction through handlers'); window.atmtdAnalytics.auctionInitHandler(args); @@ -207,7 +207,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: if (window.atmtdAnalytics && window.atmtdAnalytics.bidRequestedHandler && shouldNotPushToQueue) { window.atmtdAnalytics.bidRequestedHandler(args); } else { @@ -215,7 +215,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.BID_REJECTED: + case EVENTS.BID_REJECTED: if (window.atmtdAnalytics && window.atmtdAnalytics.bidRejectedHandler && shouldNotPushToQueue) { window.atmtdAnalytics.bidRejectedHandler(args); } else { @@ -223,7 +223,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: if (window.atmtdAnalytics && window.atmtdAnalytics.bidResponseHandler && shouldNotPushToQueue) { window.atmtdAnalytics.bidResponseHandler(args); } else { @@ -231,7 +231,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.BIDDER_DONE: + case EVENTS.BIDDER_DONE: if (window.atmtdAnalytics && window.atmtdAnalytics.bidderDoneHandler && shouldNotPushToQueue) { window.atmtdAnalytics.bidderDoneHandler(args); } else { @@ -239,7 +239,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: if (window.atmtdAnalytics && window.atmtdAnalytics.bidWonHandler && shouldNotPushToQueue) { window.atmtdAnalytics.bidWonHandler(args); } else { @@ -247,7 +247,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.NO_BID: + case EVENTS.NO_BID: if (window.atmtdAnalytics && window.atmtdAnalytics.noBidHandler && shouldNotPushToQueue) { window.atmtdAnalytics.noBidHandler(args); } else { @@ -255,7 +255,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.AUCTION_DEBUG: + case EVENTS.AUCTION_DEBUG: if (window.atmtdAnalytics && window.atmtdAnalytics.auctionDebugHandler && shouldNotPushToQueue) { window.atmtdAnalytics.auctionDebugHandler(args); } else { @@ -263,7 +263,7 @@ let atmtdAdapter = Object.assign({}, baseAdapter, { self.__atmtdAnalyticsQueue.push([eventType, args]) } break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: if (window.atmtdAnalytics && window.atmtdAnalytics.bidderTimeoutHandler && shouldNotPushToQueue) { window.atmtdAnalytics.bidderTimeoutHandler(args); } else { diff --git a/modules/bidViewability.js b/modules/bidViewability.js index be18095e369..c1aab83b7e6 100644 --- a/modules/bidViewability.js +++ b/modules/bidViewability.js @@ -4,7 +4,7 @@ import {config} from '../src/config.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {isFn, logWarn, triggerPixel} from '../src/utils.js'; import {getGlobal} from '../src/prebidGlobal.js'; import adapterManager, {gdprDataHandler, uspDataHandler, gppDataHandler} from '../src/adapterManager.js'; @@ -82,12 +82,12 @@ export let impressionViewableHandler = (globalModuleConfig, slot, event) => { } // emit the BID_VIEWABLE event with bid details, this event can be consumed by bidders and analytics pixels - events.emit(CONSTANTS.EVENTS.BID_VIEWABLE, respectiveBid); + events.emit(EVENTS.BID_VIEWABLE, respectiveBid); } }; export let init = () => { - events.on(CONSTANTS.EVENTS.AUCTION_INIT, () => { + events.on(EVENTS.AUCTION_INIT, () => { // read the config for the module const globalModuleConfig = config.getConfig(MODULE_NAME) || {}; // do nothing if module-config.enabled is not set to true diff --git a/modules/bidViewabilityIO.js b/modules/bidViewabilityIO.js index ff7ec70e32c..61b8af66bf8 100644 --- a/modules/bidViewabilityIO.js +++ b/modules/bidViewabilityIO.js @@ -1,7 +1,7 @@ import { logMessage } from '../src/utils.js'; import { config } from '../src/config.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import {EVENTS} from '../src/constants.js'; const MODULE_NAME = 'bidViewabilityIO'; const CONFIG_ENABLED = 'enabled'; @@ -42,7 +42,7 @@ export let getViewableOptions = (bid) => { export let markViewed = (bid, entry, observer) => { return () => { observer.unobserve(entry.target); - events.emit(CONSTANTS.EVENTS.BID_VIEWABLE, bid); + events.emit(EVENTS.BID_VIEWABLE, bid); _logMessage(`id: ${entry.target.getAttribute('id')} code: ${bid.adUnitCode} was viewed`); } } @@ -77,7 +77,7 @@ export let init = () => { if (conf[MODULE_NAME][CONFIG_ENABLED] && CLIENT_SUPPORTS_IO) { // if the module is enabled and the browser supports Intersection Observer, // then listen to AD_RENDER_SUCCEEDED to setup IO's for supported mediaTypes - events.on(CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, ({doc, bid, id}) => { + events.on(EVENTS.AD_RENDER_SUCCEEDED, ({doc, bid, id}) => { if (isSupportedMediaType(bid)) { let viewable = new IntersectionObserver(viewCallbackFactory(bid), getViewableOptions(bid)); let element = document.getElementById(bid.adUnitCode); diff --git a/modules/bidwatchAnalyticsAdapter.js b/modules/bidwatchAnalyticsAdapter.js index 289e607686f..ffbd125eeab 100644 --- a/modules/bidwatchAnalyticsAdapter.js +++ b/modules/bidwatchAnalyticsAdapter.js @@ -1,6 +1,6 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import { ajax } from '../src/ajax.js'; import { getRefererInfo } from '../src/refererDetection.js'; @@ -8,14 +8,12 @@ const analyticsType = 'endpoint'; const url = 'URL_TO_SERVER_ENDPOINT'; const { - EVENTS: { - AUCTION_END, - BID_WON, - BID_RESPONSE, - BID_REQUESTED, - BID_TIMEOUT, - } -} = CONSTANTS; + AUCTION_END, + BID_WON, + BID_RESPONSE, + BID_REQUESTED, + BID_TIMEOUT, +} = EVENTS; let saveEvents = {} let allEvents = {} diff --git a/modules/brandmetricsRtdProvider.js b/modules/brandmetricsRtdProvider.js index 2d9dcdfdf48..b463a5480f8 100644 --- a/modules/brandmetricsRtdProvider.js +++ b/modules/brandmetricsRtdProvider.js @@ -5,11 +5,11 @@ * @module modules/brandmetricsRtdProvider * @requires module:modules/realTimeData */ -import {submodule} from '../src/hook.js'; -import {deepAccess, deepSetValue, logError, mergeDeep, generateUUID} from '../src/utils.js'; -import {loadExternalScript} from '../src/adloader.js'; +import { submodule } from '../src/hook.js'; +import { deepAccess, deepSetValue, logError, mergeDeep, generateUUID } from '../src/utils.js'; +import { loadExternalScript } from '../src/adloader.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; /** * @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule @@ -156,7 +156,7 @@ function initializeBillableEvents() { handler: (ev) => { if (ev.source && ev.source.type === 'pbj') { const bid = ev.source.data; - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.emit(EVENTS.BILLABLE_EVENT, { vendor: 'brandmetrics', type: 'creative_in_view', measurementId: ev.mid, @@ -202,7 +202,7 @@ export const brandmetricsSubmodule = { logError(e) } }, - init: init + init } submodule('realTimeData', brandmetricsSubmodule) diff --git a/modules/browsiRtdProvider.js b/modules/browsiRtdProvider.js index ab3db2a5d20..ad4019ed03c 100644 --- a/modules/browsiRtdProvider.js +++ b/modules/browsiRtdProvider.js @@ -23,7 +23,7 @@ import {getStorageManager} from '../src/storageManager.js'; import {find, includes} from '../src/polyfill.js'; import {getGlobal} from '../src/prebidGlobal.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import {EVENTS} from '../src/constants.js'; import {MODULE_TYPE_RTD} from '../src/activities/modules.js'; /** @@ -67,7 +67,7 @@ export function addBrowsiTag(data) { export function sendPageviewEvent(eventType) { if (eventType === 'PAGEVIEW') { window.addEventListener('browsi_pageview', () => { - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.emit(EVENTS.BILLABLE_EVENT, { vendor: 'browsi', type: 'pageview', billingId: generateUUID() @@ -363,7 +363,7 @@ function getTargetingData(uc, c, us, a) { } if (sendAdRequestEvent) { const transactionId = a.adUnits.find(adUnit => adUnit.code === auc).transactionId; - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.emit(EVENTS.BILLABLE_EVENT, { vendor: 'browsi', type: 'adRequest', billingId: generateUUID(), diff --git a/modules/byDataAnalyticsAdapter.js b/modules/byDataAnalyticsAdapter.js index 81fd4388c7d..508a5593f58 100644 --- a/modules/byDataAnalyticsAdapter.js +++ b/modules/byDataAnalyticsAdapter.js @@ -3,7 +3,7 @@ import Base64 from 'crypto-js/enc-base64'; import hmacSHA512 from 'crypto-js/hmac-sha512'; import enc from 'crypto-js/enc-utf8'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS, BID_STATUS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {getStorageManager} from '../src/storageManager.js'; import { auctionManager } from '../src/auctionManager.js'; @@ -12,7 +12,7 @@ import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js'; const versionCode = '4.4.1' const secretKey = 'bydata@123456' -const { EVENTS: { NO_BID, BID_TIMEOUT, AUCTION_END, AUCTION_INIT, BID_WON } } = CONSTANTS +const { NO_BID, BID_TIMEOUT, AUCTION_END, AUCTION_INIT, BID_WON } = EVENTS const DEFAULT_EVENT_URL = 'https://pbjs-stream.bydata.com/topics/prebid' const analyticsType = 'endpoint' const isBydata = isKeyInUrl('bydata_debug') @@ -342,7 +342,7 @@ ascAdapter.dataProcess = function (t) { }) }); - var prebidWinningBids = auctionManager.getBidsReceived().filter(bid => bid.status === CONSTANTS.BID_STATUS.BID_TARGETING_SET); + var prebidWinningBids = auctionManager.getBidsReceived().filter(bid => bid.status === BID_STATUS.BID_TARGETING_SET); prebidWinningBids && prebidWinningBids.length > 0 && prebidWinningBids.forEach(pbbid => { payload['auctionData'] && payload['auctionData'].forEach(rwData => { if (rwData['bid'] === pbbid.requestId && rwData['brs'] === pbbid.size) { diff --git a/modules/cleanioRtdProvider.js b/modules/cleanioRtdProvider.js index f9bed5357ee..c3f3dd51a61 100644 --- a/modules/cleanioRtdProvider.js +++ b/modules/cleanioRtdProvider.js @@ -10,7 +10,7 @@ import { submodule } from '../src/hook.js'; import { loadExternalScript } from '../src/adloader.js'; import { logError, generateUUID, insertElement } from '../src/utils.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; /** * @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule @@ -158,8 +158,8 @@ function readConfig(config) { let startBillableEvents = function() { // Upon clean.io submodule initialization, every winner bid is considered to be protected // and therefore, subjected to billing - events.on(CONSTANTS.EVENTS.BID_WON, winnerBidResponse => { - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.on(EVENTS.BID_WON, winnerBidResponse => { + events.emit(EVENTS.BILLABLE_EVENT, { vendor: 'clean.io', billingId: generateUUID(), type: 'impression', diff --git a/modules/concertAnalyticsAdapter.js b/modules/concertAnalyticsAdapter.js index 210d1898338..742646960f3 100644 --- a/modules/concertAnalyticsAdapter.js +++ b/modules/concertAnalyticsAdapter.js @@ -1,7 +1,7 @@ import { logMessage } from '../src/utils.js'; import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; const analyticsType = 'endpoint'; @@ -13,12 +13,10 @@ const pageIncludedInSample = sampleAnalytics(); const url = 'https://bids.concert.io/analytics'; const { - EVENTS: { - BID_RESPONSE, - BID_WON, - AUCTION_END - } -} = CONSTANTS; + BID_RESPONSE, + BID_WON, + AUCTION_END +} = EVENTS; let queue = []; diff --git a/modules/confiantRtdProvider.js b/modules/confiantRtdProvider.js index 6b1066a20f1..4c5475421bb 100644 --- a/modules/confiantRtdProvider.js +++ b/modules/confiantRtdProvider.js @@ -12,7 +12,7 @@ import { submodule } from '../src/hook.js'; import { logError, generateUUID } from '../src/utils.js'; import { loadExternalScript } from '../src/adloader.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; /** * Injects the Confiant Inc. configuration script into the page, based on proprtyId provided @@ -89,7 +89,7 @@ function setUpMutationObserver() { function getEventHandlerFunction(propertyId) { return function reportBillableEvent(e) { if (e.data.type.indexOf('cnft:reportBillableEvent:' + propertyId) > -1) { - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.emit(EVENTS.BILLABLE_EVENT, { auctionId: e.data.auctionId, billingId: generateUUID(), transactionId: e.data.transactionId, diff --git a/modules/conversantAnalyticsAdapter.js b/modules/conversantAnalyticsAdapter.js index 0c58402ca87..44e712d54f7 100644 --- a/modules/conversantAnalyticsAdapter.js +++ b/modules/conversantAnalyticsAdapter.js @@ -1,6 +1,6 @@ import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getGlobal} from '../src/prebidGlobal.js'; import adapterManager from '../src/adapterManager.js'; import {logInfo, logWarn, logError, logMessage, deepAccess, isInteger} from '../src/utils.js'; @@ -8,9 +8,7 @@ import {getRefererInfo} from '../src/refererDetection.js'; // Maintainer: mediapsr@epsilon.com -const { - EVENTS: { AUCTION_END, AD_RENDER_FAILED, BID_TIMEOUT, BID_WON, BIDDER_ERROR } -} = CONSTANTS; +const { AUCTION_END, AD_RENDER_FAILED, BID_TIMEOUT, BID_WON, BIDDER_ERROR } = EVENTS; // STALE_RENDER, TCF2_ENFORCEMENT would need to add extra calls for these as they likely occur after AUCTION_END? const GVLID = 24; const ANALYTICS_TYPE = 'endpoint'; diff --git a/modules/currency.js b/modules/currency.js index eaed4c50df2..c26e64a9400 100644 --- a/modules/currency.js +++ b/modules/currency.js @@ -1,6 +1,6 @@ import {logError, logInfo, logMessage, logWarn} from '../src/utils.js'; import {getGlobal} from '../src/prebidGlobal.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS, REJECTION_REASON } from '../src/constants.js'; import {ajax} from '../src/ajax.js'; import {config} from '../src/config.js'; import {getHook} from '../src/hook.js'; @@ -163,8 +163,8 @@ function initCurrency() { getGlobal().convertCurrency = (cpm, fromCurrency, toCurrency) => parseFloat(cpm) * getCurrencyConversion(fromCurrency, toCurrency); getHook('addBidResponse').before(addBidResponseHook, 100); getHook('responsesReady').before(responsesReadyHook); - onEvent(CONSTANTS.EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout); - onEvent(CONSTANTS.EVENTS.AUCTION_INIT, loadRates); + onEvent(EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout); + onEvent(EVENTS.AUCTION_INIT, loadRates); loadRates(); } @@ -173,8 +173,8 @@ function resetCurrency() { getHook('addBidResponse').getHooks({hook: addBidResponseHook}).remove(); getHook('responsesReady').getHooks({hook: responsesReadyHook}).remove(); - offEvent(CONSTANTS.EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout); - offEvent(CONSTANTS.EVENTS.AUCTION_INIT, loadRates); + offEvent(EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout); + offEvent(EVENTS.AUCTION_INIT, loadRates); delete getGlobal().convertCurrency; adServerCurrency = 'USD'; @@ -230,7 +230,7 @@ export const addBidResponseHook = timedBidResponseHook('currency', function addB function rejectOnAuctionTimeout({auctionId}) { bidResponseQueue = bidResponseQueue.filter(([fn, ctx, adUnitCode, bid, reject]) => { if (bid.auctionId === auctionId) { - reject(CONSTANTS.REJECTION_REASON.CANNOT_CONVERT_CURRENCY) + reject(REJECTION_REASON.CANNOT_CONVERT_CURRENCY) } else { return true; } @@ -250,7 +250,7 @@ function processBidResponseQueue() { } } catch (e) { logWarn('getCurrencyConversion threw error: ', e); - reject(CONSTANTS.REJECTION_REASON.CANNOT_CONVERT_CURRENCY); + reject(REJECTION_REASON.CANNOT_CONVERT_CURRENCY); continue; } } diff --git a/modules/datawrkzBidAdapter.js b/modules/datawrkzBidAdapter.js index db795c89155..b5a096521a1 100644 --- a/modules/datawrkzBidAdapter.js +++ b/modules/datawrkzBidAdapter.js @@ -12,7 +12,7 @@ import { Renderer } from '../src/Renderer.js'; import { registerBidder } from '../src/adapters/bidderFactory.js'; import { createBid } from '../src/bidfactory.js'; import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js'; -import CONSTANTS from '../src/constants.json'; +import { STATUS } from '../src/constants.js'; import { OUTSTREAM, INSTREAM } from '../src/video.js'; /** @@ -416,7 +416,7 @@ function buildBannerResponse(bidRequest, bidResponse) { if (bidRequest) { let bidResponse = createBid(1); placementCode = bidRequest.placementCode; - bidRequest.status = CONSTANTS.STATUS.GOOD; + bidRequest.status = STATUS.GOOD; responseCPM = parseFloat(bidderBid.price); if (responseCPM === 0 || isNaN(responseCPM)) { let bid = createBid(2); @@ -457,7 +457,7 @@ function buildNativeResponse(bidRequest, response) { if (bidRequest) { let bidResponse = createBid(1); placementCode = bidRequest.placementCode; - bidRequest.status = CONSTANTS.STATUS.GOOD; + bidRequest.status = STATUS.GOOD; responseCPM = parseFloat(bidderBid.price); if (responseCPM === 0 || isNaN(responseCPM)) { let bid = createBid(2); @@ -506,7 +506,7 @@ function buildVideoResponse(bidRequest, response) { if (bidRequest) { let bidResponse = createBid(1); placementCode = bidRequest.placementCode; - bidRequest.status = CONSTANTS.STATUS.GOOD; + bidRequest.status = STATUS.GOOD; responseCPM = parseFloat(bidderBid.price); if (responseCPM === 0 || isNaN(responseCPM)) { let bid = createBid(2); diff --git a/modules/debugging/pbsInterceptor.js b/modules/debugging/pbsInterceptor.js index 73df01bf205..5c2eb458b18 100644 --- a/modules/debugging/pbsInterceptor.js +++ b/modules/debugging/pbsInterceptor.js @@ -1,5 +1,5 @@ import {deepClone, delayExecution} from '../../src/utils.js'; -import CONSTANTS from '../../src/constants.json'; +import { STATUS } from '../../src/constants.js'; export function makePbsInterceptor({createBid}) { return function pbsBidInterceptor(next, interceptBids, s2sBidRequest, bidRequests, ajax, { @@ -17,7 +17,7 @@ export function makePbsInterceptor({createBid}) { function addBid(bid, bidRequest) { onBid({ adUnit: bidRequest.adUnitCode, - bid: Object.assign(createBid(CONSTANTS.STATUS.GOOD, bidRequest), bid) + bid: Object.assign(createBid(STATUS.GOOD, bidRequest), bid) }) } bidRequests = bidRequests diff --git a/modules/dfpAdServerVideo.js b/modules/dfpAdServerVideo.js index 7f275992210..abf58aceb45 100644 --- a/modules/dfpAdServerVideo.js +++ b/modules/dfpAdServerVideo.js @@ -20,7 +20,7 @@ import {getHook, submodule} from '../src/hook.js'; import {auctionManager} from '../src/auctionManager.js'; import {gdprDataHandler} from '../src/adapterManager.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getPPID} from '../src/adserver.js'; import {getRefererInfo} from '../src/refererDetection.js'; import {CLIENT_SECTIONS} from '../src/fpd/oneClient.js'; @@ -360,7 +360,7 @@ function getCustParams(bid, options, urlCustParams) { ); // TODO: WTF is this? just firing random events, guessing at the argument, hoping noone notices? - events.emit(CONSTANTS.EVENTS.SET_TARGETING, {[adUnit.code]: prebidTargetingSet}); + events.emit(EVENTS.SET_TARGETING, {[adUnit.code]: prebidTargetingSet}); // merge the prebid + publisher targeting sets const publisherTargetingSet = deepAccess(options, 'params.cust_params'); diff --git a/modules/dsaControl.js b/modules/dsaControl.js index b08a6ea1f4e..73a1dd19cd4 100644 --- a/modules/dsaControl.js +++ b/modules/dsaControl.js @@ -1,7 +1,7 @@ import {config} from '../src/config.js'; import {auctionManager} from '../src/auctionManager.js'; import {timedBidResponseHook} from '../src/utils/perfMetrics.js'; -import CONSTANTS from '../src/constants.json'; +import { REJECTION_REASON } from '../src/constants.js'; import {getHook} from '../src/hook.js'; import {logInfo, logWarn} from '../src/utils.js'; @@ -18,18 +18,18 @@ export const addBidResponseHook = timedBidResponseHook('dsa', function (fn, adUn if (!bid.meta?.dsa) { if (dsaRequest.dsarequired === 1) { // request says dsa is supported; response does not have dsa info; warn about it - logWarn(`dsaControl: ${CONSTANTS.REJECTION_REASON.DSA_REQUIRED}; will still be accepted as regs.ext.dsa.dsarequired = 1`, bid); + logWarn(`dsaControl: ${REJECTION_REASON.DSA_REQUIRED}; will still be accepted as regs.ext.dsa.dsarequired = 1`, bid); } else if ([2, 3].includes(dsaRequest.dsarequired)) { // request says dsa is required; response does not have dsa info; reject it - rejectReason = CONSTANTS.REJECTION_REASON.DSA_REQUIRED; + rejectReason = REJECTION_REASON.DSA_REQUIRED; } } else { if (dsaRequest.pubrender === 0 && bid.meta.dsa.adrender === 0) { // request says publisher can't render; response says advertiser won't; reject it - rejectReason = CONSTANTS.REJECTION_REASON.DSA_MISMATCH; + rejectReason = REJECTION_REASON.DSA_MISMATCH; } else if (dsaRequest.pubrender === 2 && bid.meta.dsa.adrender === 1) { // request says publisher will render; response says advertiser will; reject it - rejectReason = CONSTANTS.REJECTION_REASON.DSA_MISMATCH; + rejectReason = REJECTION_REASON.DSA_MISMATCH; } } } diff --git a/modules/eplanningAnalyticsAdapter.js b/modules/eplanningAnalyticsAdapter.js index 9eb701b8ecc..45a0be54715 100644 --- a/modules/eplanningAnalyticsAdapter.js +++ b/modules/eplanningAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { logError } from '../src/utils.js'; import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; const analyticsType = 'endpoint'; const EPL_HOST = 'https://ads.us.e-planning.net/hba/1/'; @@ -64,18 +64,18 @@ function bidTimeoutHandler(args) { function callHandler(evtype, args) { let handler = null; - if (evtype === CONSTANTS.EVENTS.AUCTION_INIT) { + if (evtype === EVENTS.AUCTION_INIT) { handler = auctionInitHandler; eplAnalyticsAdapter.context.events = []; - } else if (evtype === CONSTANTS.EVENTS.AUCTION_END) { + } else if (evtype === EVENTS.AUCTION_END) { handler = auctionEndHandler; - } else if (evtype === CONSTANTS.EVENTS.BID_REQUESTED) { + } else if (evtype === EVENTS.BID_REQUESTED) { handler = bidRequestedHandler; - } else if (evtype === CONSTANTS.EVENTS.BID_RESPONSE) { + } else if (evtype === EVENTS.BID_RESPONSE) { handler = bidResponseHandler - } else if (evtype === CONSTANTS.EVENTS.BID_TIMEOUT) { + } else if (evtype === EVENTS.BID_TIMEOUT) { handler = bidTimeoutHandler; - } else if (evtype === CONSTANTS.EVENTS.BID_WON) { + } else if (evtype === EVENTS.BID_WON) { handler = bidWonHandler; } @@ -95,7 +95,7 @@ var eplAnalyticsAdapter = Object.assign(adapter( callHandler(eventType, args); } - if (eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (eventType === EVENTS.AUCTION_END) { try { let strjson = JSON.stringify(eplAnalyticsAdapter.context.events); ajax(eplAnalyticsAdapter.context.host + eplAnalyticsAdapter.context.ci + '?d=' + encodeURIComponent(strjson)); diff --git a/modules/fintezaAnalyticsAdapter.js b/modules/fintezaAnalyticsAdapter.js index be661c96061..ab41272c85f 100644 --- a/modules/fintezaAnalyticsAdapter.js +++ b/modules/fintezaAnalyticsAdapter.js @@ -3,7 +3,7 @@ import { ajax } from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import {getStorageManager} from '../src/storageManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js'; const MODULE_CODE = 'finteza'; @@ -330,16 +330,16 @@ function prepareTrackData(evtype, args) { let prepareParams = null; switch (evtype) { - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: prepareParams = prepareBidRequestedParams; break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: prepareParams = prepareBidResponseParams; break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: prepareParams = prepareBidWonParams; break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: prepareParams = prepareBidTimeoutParams; break; } diff --git a/modules/gdprEnforcement.js b/modules/gdprEnforcement.js index 5b73ec19e08..caa498c7364 100644 --- a/modules/gdprEnforcement.js +++ b/modules/gdprEnforcement.js @@ -6,7 +6,7 @@ import {deepAccess, logError, logWarn} from '../src/utils.js'; import {config} from '../src/config.js'; import adapterManager, {gdprDataHandler} from '../src/adapterManager.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {GDPR_GVLIDS, VENDORLESS_GVLID, FIRST_PARTY_GVLID} from '../src/consentHandler.js'; import { MODULE_TYPE_ANALYTICS, @@ -292,11 +292,11 @@ function emitTCF2FinalResults() { geoBlocked: formatSet(geoBlocked) }; - events.emit(CONSTANTS.EVENTS.TCF2_ENFORCEMENT, tcf2FinalResults); + events.emit(EVENTS.TCF2_ENFORCEMENT, tcf2FinalResults); [storageBlocked, biddersBlocked, analyticsBlocked, ufpdBlocked, eidsBlocked, geoBlocked].forEach(el => el.clear()); } -events.on(CONSTANTS.EVENTS.AUCTION_END, emitTCF2FinalResults); +events.on(EVENTS.AUCTION_END, emitTCF2FinalResults); /** * A configuration function that initializes some module variables, as well as adds hooks diff --git a/modules/geoedgeRtdProvider.js b/modules/geoedgeRtdProvider.js index 0b0d9027c03..46f7e7f7d6d 100644 --- a/modules/geoedgeRtdProvider.js +++ b/modules/geoedgeRtdProvider.js @@ -19,7 +19,7 @@ import { submodule } from '../src/hook.js'; import { ajax } from '../src/ajax.js'; import { generateUUID, createInvisibleIframe, insertElement, isEmpty, logError } from '../src/utils.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import { loadExternalScript } from '../src/adloader.js'; import { auctionManager } from '../src/auctionManager.js'; import { getRefererInfo } from '../src/refererDetection.js'; @@ -237,7 +237,7 @@ function fireBillableEventsForApplicableBids(params) { let data = message.data; if (isBillingMessage(data, params)) { let winningBid = auctionManager.findBidByAdId(data.adId); - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.emit(EVENTS.BILLABLE_EVENT, { vendor: SUBMODULE_NAME, billingId: data.impressionId, type: winningBid ? 'impression' : data.type, diff --git a/modules/greenbidsAnalyticsAdapter.js b/modules/greenbidsAnalyticsAdapter.js index b881e868bf3..fd2bc1c25ea 100644 --- a/modules/greenbidsAnalyticsAdapter.js +++ b/modules/greenbidsAnalyticsAdapter.js @@ -1,6 +1,6 @@ import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {deepClone, generateUUID, logError, logInfo, logWarn} from '../src/utils.js'; @@ -11,13 +11,11 @@ export const ANALYTICS_VERSION = '2.2.0'; const ANALYTICS_SERVER = 'https://a.greenbids.ai'; const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_TIMEOUT, - BILLABLE_EVENT, - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_TIMEOUT, + BILLABLE_EVENT, +} = EVENTS; export const BIDDER_STATUS = { BID: 'bid', diff --git a/modules/greenbidsRtdProvider.js b/modules/greenbidsRtdProvider.js index 7fcd163a7c2..5496fc71c4e 100644 --- a/modules/greenbidsRtdProvider.js +++ b/modules/greenbidsRtdProvider.js @@ -2,7 +2,7 @@ import { logError, deepClone, generateUUID, deepSetValue, deepAccess } from '../ import { ajax } from '../src/ajax.js'; import { submodule } from '../src/hook.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; const MODULE_NAME = 'greenbidsRtdProvider'; const MODULE_VERSION = '2.0.0'; @@ -28,7 +28,7 @@ function onAuctionInitEvent(auctionDetails) { let greenbidsId = deepAccess(auctionDetails.adUnits[0], 'ortb2Imp.ext.greenbids.greenbidsId', defaultId); /* greenbids was successfully called so we emit the event */ if (greenbidsId !== defaultId) { - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.emit(EVENTS.BILLABLE_EVENT, { type: 'auction', billingId: generateUUID(), auctionId: auctionDetails.auctionId, diff --git a/modules/growthCodeAnalyticsAdapter.js b/modules/growthCodeAnalyticsAdapter.js index 5c7cc254f1d..d2cd160a364 100644 --- a/modules/growthCodeAnalyticsAdapter.js +++ b/modules/growthCodeAnalyticsAdapter.js @@ -5,7 +5,7 @@ import { ajax } from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import * as utils from '../src/utils.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getStorageManager} from '../src/storageManager.js'; import {getRefererInfo} from '../src/refererDetection.js'; import {logError, logInfo} from '../src/utils.js'; @@ -35,70 +35,70 @@ let growthCodeAnalyticsAdapter = Object.assign(adapter({url: url, analyticsType} let data = {}; if (!trackEvents.includes(eventType)) return; switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: { + case EVENTS.AUCTION_INIT: { data = eventData; startAuction = data.timestamp; bidRequestTimeout = data.timeout; break; } - case CONSTANTS.EVENTS.AUCTION_END: { + case EVENTS.AUCTION_END: { data = eventData; data.start = startAuction; data.end = Date.now(); break; } - case CONSTANTS.EVENTS.BID_ADJUSTMENT: { + case EVENTS.BID_ADJUSTMENT: { data.bidders = eventData; break; } - case CONSTANTS.EVENTS.BID_TIMEOUT: { + case EVENTS.BID_TIMEOUT: { data.bidders = eventData; data.duration = bidRequestTimeout; break; } - case CONSTANTS.EVENTS.BID_REQUESTED: { + case EVENTS.BID_REQUESTED: { data = eventData; break; } - case CONSTANTS.EVENTS.BID_RESPONSE: { + case EVENTS.BID_RESPONSE: { data = eventData; delete data.ad; break; } - case CONSTANTS.EVENTS.BID_WON: { + case EVENTS.BID_WON: { data = eventData; delete data.ad; delete data.adUrl; break; } - case CONSTANTS.EVENTS.BIDDER_DONE: { + case EVENTS.BIDDER_DONE: { data = eventData; break; } - case CONSTANTS.EVENTS.SET_TARGETING: { + case EVENTS.SET_TARGETING: { data.targetings = eventData; break; } - case CONSTANTS.EVENTS.REQUEST_BIDS: { + case EVENTS.REQUEST_BIDS: { data = eventData; break; } - case CONSTANTS.EVENTS.ADD_AD_UNITS: { + case EVENTS.ADD_AD_UNITS: { data = eventData; break; } - case CONSTANTS.EVENTS.NO_BID: { + case EVENTS.NO_BID: { data = eventData break; } @@ -170,7 +170,7 @@ function sendEvent(event) { eventQueue.push(event); logInfo(MODULE_NAME + 'Analytics Event: ' + event); - if ((event.eventType === CONSTANTS.EVENTS.AUCTION_END) || (event.eventType === CONSTANTS.EVENTS.BID_WON)) { + if ((event.eventType === EVENTS.AUCTION_END) || (event.eventType === EVENTS.BID_WON)) { logToServer(); } } diff --git a/modules/hadronAnalyticsAdapter.js b/modules/hadronAnalyticsAdapter.js index e4c09c5b6c9..d9fd4fa6f19 100644 --- a/modules/hadronAnalyticsAdapter.js +++ b/modules/hadronAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { ajax } from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import * as utils from '../src/utils.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getStorageManager} from '../src/storageManager.js'; import {getRefererInfo} from '../src/refererDetection.js'; import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js'; @@ -57,70 +57,70 @@ let hadronAnalyticsAdapter = Object.assign(adapter({url: HADRON_ANALYTICS_URL, a var data = {}; if (!eventsToTrack.includes(eventType)) return; switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: { + case EVENTS.AUCTION_INIT: { data = args; startAuction = data.timestamp; bidRequestTimeout = data.timeout; break; } - case CONSTANTS.EVENTS.AUCTION_END: { + case EVENTS.AUCTION_END: { data = args; data.start = startAuction; data.end = Date.now(); break; } - case CONSTANTS.EVENTS.BID_ADJUSTMENT: { + case EVENTS.BID_ADJUSTMENT: { data.bidders = args; break; } - case CONSTANTS.EVENTS.BID_TIMEOUT: { + case EVENTS.BID_TIMEOUT: { data.bidders = args; data.duration = bidRequestTimeout; break; } - case CONSTANTS.EVENTS.BID_REQUESTED: { + case EVENTS.BID_REQUESTED: { data = args; break; } - case CONSTANTS.EVENTS.BID_RESPONSE: { + case EVENTS.BID_RESPONSE: { data = args; delete data.ad; break; } - case CONSTANTS.EVENTS.BID_WON: { + case EVENTS.BID_WON: { data = args; delete data.ad; delete data.adUrl; break; } - case CONSTANTS.EVENTS.BIDDER_DONE: { + case EVENTS.BIDDER_DONE: { data = args; break; } - case CONSTANTS.EVENTS.SET_TARGETING: { + case EVENTS.SET_TARGETING: { data.targetings = args; break; } - case CONSTANTS.EVENTS.REQUEST_BIDS: { + case EVENTS.REQUEST_BIDS: { data = args; break; } - case CONSTANTS.EVENTS.ADD_AD_UNITS: { + case EVENTS.ADD_AD_UNITS: { data = args; break; } - case CONSTANTS.EVENTS.AD_RENDER_FAILED: { + case EVENTS.AD_RENDER_FAILED: { data = args; break; } @@ -186,7 +186,7 @@ function sendEvent(event) { eventQueue.push(event); utils.logInfo(`HADRON_ANALYTICS_EVENT ${event.eventType} `, event); - if (event.eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (event.eventType === EVENTS.AUCTION_END) { flush(); } } diff --git a/modules/holidBidAdapter.js b/modules/holidBidAdapter.js index fbcbb9492c7..f046c860562 100644 --- a/modules/holidBidAdapter.js +++ b/modules/holidBidAdapter.js @@ -6,7 +6,7 @@ import { triggerPixel, } from '../src/utils.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {BANNER} from '../src/mediaTypes.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; @@ -19,7 +19,7 @@ const TIME_TO_LIVE = 300 const TMAX = 500 let wurlMap = {} -events.on(CONSTANTS.EVENTS.BID_WON, bidWonHandler) +events.on(EVENTS.BID_WON, bidWonHandler) export const spec = { code: BIDDER_CODE, diff --git a/modules/id5AnalyticsAdapter.js b/modules/id5AnalyticsAdapter.js index d0f3198e03d..70da467ff7c 100644 --- a/modules/id5AnalyticsAdapter.js +++ b/modules/id5AnalyticsAdapter.js @@ -1,5 +1,5 @@ import buildAdapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import { ajax } from '../src/ajax.js'; import { logInfo, logError } from '../src/utils.js'; @@ -7,14 +7,12 @@ import * as events from '../src/events.js'; import {getGlobal} from '../src/prebidGlobal.js'; const { - EVENTS: { - AUCTION_END, - TCF2_ENFORCEMENT, - BID_WON, - BID_VIEWABLE, - AD_RENDER_FAILED - } -} = CONSTANTS + AUCTION_END, + TCF2_ENFORCEMENT, + BID_WON, + BID_VIEWABLE, + AD_RENDER_FAILED +} = EVENTS const GVLID = 131; diff --git a/modules/instreamTracking.js b/modules/instreamTracking.js index ece556d0fd2..2686feab679 100644 --- a/modules/instreamTracking.js +++ b/modules/instreamTracking.js @@ -3,7 +3,7 @@ import { config } from '../src/config.js'; import { auctionManager } from '../src/auctionManager.js'; import { INSTREAM } from '../src/video.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json' +import { EVENTS, TARGETING_KEYS, BID_STATUS } from '../src/constants.js' /** * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest @@ -11,9 +11,9 @@ import CONSTANTS from '../src/constants.json' * @typedef {import('../src/adapters/bidderFactory.js').AdUnit} AdUnit */ -const {CACHE_ID, UUID} = CONSTANTS.TARGETING_KEYS; -const {BID_WON, AUCTION_END} = CONSTANTS.EVENTS; -const {RENDERED} = CONSTANTS.BID_STATUS; +const { CACHE_ID, UUID } = TARGETING_KEYS; +const { BID_WON, AUCTION_END } = EVENTS; +const { RENDERED } = BID_STATUS; const INSTREAM_TRACKING_DEFAULT_CONFIG = { enabled: false, diff --git a/modules/invisiblyAnalyticsAdapter.js b/modules/invisiblyAnalyticsAdapter.js index a4f4eba271c..24c2c452402 100644 --- a/modules/invisiblyAnalyticsAdapter.js +++ b/modules/invisiblyAnalyticsAdapter.js @@ -6,7 +6,7 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import { generateUUID, logInfo } from '../src/utils.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; const DEFAULT_EVENT_URL = 'https://api.pymx5.com/v1/' + 'sites/events'; const analyticsType = 'endpoint'; @@ -15,22 +15,20 @@ const ajax = ajaxBuilder(0); // Events needed const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_ADJUSTMENT, - BID_TIMEOUT, - BID_REQUESTED, - BID_RESPONSE, - NO_BID, - BID_WON, - BIDDER_DONE, - SET_TARGETING, - REQUEST_BIDS, - ADD_AD_UNITS, - AD_RENDER_FAILED, - }, -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_ADJUSTMENT, + BID_TIMEOUT, + BID_REQUESTED, + BID_RESPONSE, + NO_BID, + BID_WON, + BIDDER_DONE, + SET_TARGETING, + REQUEST_BIDS, + ADD_AD_UNITS, + AD_RENDER_FAILED, +} = EVENTS; const _VERSION = 1; const _pageViewId = generateUUID(); diff --git a/modules/ixBidAdapter.js b/modules/ixBidAdapter.js index a29c1a39bff..248dbea0046 100644 --- a/modules/ixBidAdapter.js +++ b/modules/ixBidAdapter.js @@ -18,7 +18,7 @@ import { } from '../src/utils.js'; import { BANNER, VIDEO, NATIVE } from '../src/mediaTypes.js'; import { config } from '../src/config.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import { getStorageManager } from '../src/storageManager.js'; import * as events from '../src/events.js'; import { find } from '../src/polyfill.js'; @@ -1739,8 +1739,8 @@ export const spec = { */ isBidRequestValid: function (bid) { if (!hasRegisteredHandler) { - events.on(CONSTANTS.EVENTS.AUCTION_DEBUG, localStorageHandler); - events.on(CONSTANTS.EVENTS.AD_RENDER_FAILED, localStorageHandler); + events.on(EVENTS.AUCTION_DEBUG, localStorageHandler); + events.on(EVENTS.AD_RENDER_FAILED, localStorageHandler); hasRegisteredHandler = true; } diff --git a/modules/kargoAnalyticsAdapter.js b/modules/kargoAnalyticsAdapter.js index 652e105167d..f8b088eefe8 100644 --- a/modules/kargoAnalyticsAdapter.js +++ b/modules/kargoAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { logError } from '../src/utils.js'; import { ajax } from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; const EVENT_URL = 'https://krk.kargo.com/api/v1/event'; const KARGO_BIDDER_CODE = 'kargo'; @@ -23,11 +23,11 @@ var kargoAnalyticsAdapter = Object.assign( adapter({ analyticsType }), { track({ eventType, args }) { switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: { + case EVENTS.AUCTION_INIT: { _logBidResponseData.auctionTimeout = args.timeout; break; } - case CONSTANTS.EVENTS.BID_RESPONSE: { + case EVENTS.BID_RESPONSE: { handleBidResponseData(args); break; } diff --git a/modules/konduitAnalyticsAdapter.js b/modules/konduitAnalyticsAdapter.js index a1a586b25db..5316d5b22a4 100644 --- a/modules/konduitAnalyticsAdapter.js +++ b/modules/konduitAnalyticsAdapter.js @@ -4,7 +4,7 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import { targeting } from '../src/targeting.js'; import { config } from '../src/config.js'; -import CONSTANTS from '../src/constants.json'; +import {EVENTS} from '../src/constants.js'; const TRACKER_HOST = 'tracker.konduit.me'; const KONDUIT_PREBID_MODULE_VERSION = '1.0.0'; @@ -12,13 +12,13 @@ const KONDUIT_PREBID_MODULE_VERSION = '1.0.0'; const analyticsType = 'endpoint'; const eventDataComposerMap = { - [CONSTANTS.EVENTS.AUCTION_INIT]: obtainAuctionInfo, - [CONSTANTS.EVENTS.AUCTION_END]: obtainAuctionInfo, - [CONSTANTS.EVENTS.BID_REQUESTED]: obtainBidRequestsInfo, - [CONSTANTS.EVENTS.BID_TIMEOUT]: obtainBidTimeoutInfo, - [CONSTANTS.EVENTS.BID_RESPONSE]: obtainBidResponseInfo, - [CONSTANTS.EVENTS.BID_WON]: obtainWinnerBidInfo, - [CONSTANTS.EVENTS.NO_BID]: obtainNoBidInfo, + [EVENTS.AUCTION_INIT]: obtainAuctionInfo, + [EVENTS.AUCTION_END]: obtainAuctionInfo, + [EVENTS.BID_REQUESTED]: obtainBidRequestsInfo, + [EVENTS.BID_TIMEOUT]: obtainBidTimeoutInfo, + [EVENTS.BID_RESPONSE]: obtainBidResponseInfo, + [EVENTS.BID_WON]: obtainWinnerBidInfo, + [EVENTS.NO_BID]: obtainNoBidInfo, }; // This function is copy from prebid core @@ -43,7 +43,7 @@ function buildUrl(obj) { const getWinnerBidFromAggregatedEvents = () => { return konduitAnalyticsAdapter.context.aggregatedEvents - .filter(evt => evt.eventType === CONSTANTS.EVENTS.BID_WON)[0]; + .filter(evt => evt.eventType === EVENTS.BID_WON)[0]; }; const isWinnerBidDetected = () => { @@ -57,7 +57,7 @@ const konduitAnalyticsAdapter = Object.assign( adapter({ analyticsType }), { track ({ eventType, args }) { - if (CONSTANTS.EVENTS.AUCTION_INIT === eventType) { + if (EVENTS.AUCTION_INIT === eventType) { konduitAnalyticsAdapter.context.aggregatedEvents.splice(0); } @@ -68,12 +68,12 @@ const konduitAnalyticsAdapter = Object.assign( }); } - if (eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (eventType === EVENTS.AUCTION_END) { if (!isWinnerBidDetected() && isWinnerBidExist()) { - const bidWonData = eventDataComposerMap[CONSTANTS.EVENTS.BID_WON](targeting.getWinningBids()[0]); + const bidWonData = eventDataComposerMap[EVENTS.BID_WON](targeting.getWinningBids()[0]); konduitAnalyticsAdapter.context.aggregatedEvents.push({ - eventType: CONSTANTS.EVENTS.BID_WON, + eventType: EVENTS.BID_WON, data: bidWonData, }); } diff --git a/modules/liveIntentAnalyticsAdapter.js b/modules/liveIntentAnalyticsAdapter.js index 54402bcafc6..04b9e333e8a 100644 --- a/modules/liveIntentAnalyticsAdapter.js +++ b/modules/liveIntentAnalyticsAdapter.js @@ -1,7 +1,7 @@ import {ajax} from '../src/ajax.js'; import { generateUUID, logInfo, logWarn } from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import { auctionManager } from '../src/auctionManager.js'; import { getRefererInfo } from '../src/refererDetection.js'; @@ -11,7 +11,7 @@ const URL = 'https://wba.liadm.com/analytic-events'; const GVL_ID = 148; const ADAPTER_CODE = 'liveintent'; const DEFAULT_BID_WON_TIMEOUT = 2000; -const { EVENTS: { AUCTION_END } } = CONSTANTS; +const { AUCTION_END } = EVENTS; let bidWonTimeout; function handleAuctionEnd(args) { diff --git a/modules/livewrappedAnalyticsAdapter.js b/modules/livewrappedAnalyticsAdapter.js index f3ee81cae7a..2797664e954 100644 --- a/modules/livewrappedAnalyticsAdapter.js +++ b/modules/livewrappedAnalyticsAdapter.js @@ -1,7 +1,7 @@ import { timestamp, logInfo, getWindowTop } from '../src/utils.js'; import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS, STATUS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import { getGlobal } from '../src/prebidGlobal.js'; @@ -28,11 +28,11 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE logInfo('LIVEWRAPPED_EVENT:', [eventType, args]); switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: logInfo('LIVEWRAPPED_AUCTION_INIT:', args); cache.auctions[args.auctionId] = {bids: {}, bidAdUnits: {}}; break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: logInfo('LIVEWRAPPED_BID_REQUESTED:', args); cache.auctions[args.auctionId].timeStamp = args.start; @@ -73,11 +73,11 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE }); logInfo(livewrappedAnalyticsAdapter.requestEvents); break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: logInfo('LIVEWRAPPED_BID_RESPONSE:', args); let bidResponse = cache.auctions[args.auctionId].bids[args.requestId]; - bidResponse.isBid = args.getStatusCode() === CONSTANTS.STATUS.GOOD; + bidResponse.isBid = args.getStatusCode() === STATUS.GOOD; bidResponse.width = args.width; bidResponse.height = args.height; bidResponse.cpm = args.cpm; @@ -101,7 +101,7 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE }; } break; - case CONSTANTS.EVENTS.BIDDER_DONE: + case EVENTS.BIDDER_DONE: logInfo('LIVEWRAPPED_BIDDER_DONE:', args); args.bids.forEach(doneBid => { let bid = cache.auctions[doneBid.auctionId].bids[doneBid.bidId || doneBid.requestId]; @@ -111,7 +111,7 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE bid.readyToSend = 1; }); break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: logInfo('LIVEWRAPPED_BID_WON:', args); let wonBid = cache.auctions[args.auctionId].bids[args.requestId]; wonBid.won = true; @@ -123,7 +123,7 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE livewrappedAnalyticsAdapter.sendEvents(); } break; - case CONSTANTS.EVENTS.AD_RENDER_FAILED: + case EVENTS.AD_RENDER_FAILED: logInfo('LIVEWRAPPED_AD_RENDER_FAILED:', args); let adRenderFailedBid = cache.auctions[args.bid.auctionId].bids[args.bid.requestId]; adRenderFailedBid.adRenderFailed = true; @@ -133,13 +133,13 @@ let livewrappedAnalyticsAdapter = Object.assign(adapter({EMPTYURL, ANALYTICSTYPE livewrappedAnalyticsAdapter.sendEvents(); } break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: logInfo('LIVEWRAPPED_BID_TIMEOUT:', args); args.forEach(timeout => { cache.auctions[timeout.auctionId].bids[timeout.bidId].timeout = true; }); break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: logInfo('LIVEWRAPPED_AUCTION_END:', args); setTimeout(() => { livewrappedAnalyticsAdapter.sendEvents(); diff --git a/modules/magniteAnalyticsAdapter.js b/modules/magniteAnalyticsAdapter.js index 5cc45e3adbf..6d45d05cd5c 100644 --- a/modules/magniteAnalyticsAdapter.js +++ b/modules/magniteAnalyticsAdapter.js @@ -19,7 +19,7 @@ import { } from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS, REJECTION_REASON } from '../src/constants.js'; import {ajax} from '../src/ajax.js'; import {config} from '../src/config.js'; import {getGlobal} from '../src/prebidGlobal.js'; @@ -50,19 +50,17 @@ let cookieless; let prebidGlobal = getGlobal(); const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_REQUESTED, - BID_RESPONSE, - BIDDER_DONE, - BID_TIMEOUT, - BID_WON, - BILLABLE_EVENT, - SEAT_NON_BID, - BID_REJECTED - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_REQUESTED, + BID_RESPONSE, + BIDDER_DONE, + BID_TIMEOUT, + BID_WON, + BILLABLE_EVENT, + SEAT_NON_BID, + BID_REJECTED +} = EVENTS; // The saved state of rubicon specific setConfig controls export let rubiConf; @@ -921,7 +919,7 @@ magniteAdapter.track = ({ eventType, args }) => { handleBidResponse(args, 'success'); break; case BID_REJECTED: - const bidStatus = args.rejectionReason === CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET ? BID_REJECTED_IPF : 'rejected'; + const bidStatus = args.rejectionReason === REJECTION_REASON.FLOOR_NOT_MET ? BID_REJECTED_IPF : 'rejected'; handleBidResponse(args, bidStatus); break; case SEAT_NON_BID: diff --git a/modules/malltvAnalyticsAdapter.js b/modules/malltvAnalyticsAdapter.js index af903795e49..b4fad0976fb 100644 --- a/modules/malltvAnalyticsAdapter.js +++ b/modules/malltvAnalyticsAdapter.js @@ -1,6 +1,6 @@ import {ajax} from '../src/ajax.js' import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js' -import CONSTANTS from '../src/constants.json' +import { EVENTS } from '../src/constants.js' import adapterManager from '../src/adapterManager.js' import {getGlobal} from '../src/prebidGlobal.js' import {logInfo, logError, deepClone} from '../src/utils.js' @@ -10,11 +10,9 @@ export const ANALYTICS_VERSION = '1.0.0' export const DEFAULT_SERVER = 'https://central.mall.tv/analytics' const { - EVENTS: { - AUCTION_END, - BID_TIMEOUT - } -} = CONSTANTS + AUCTION_END, + BID_TIMEOUT +} = EVENTS export const BIDDER_STATUS = { BID: 1, diff --git a/modules/mediafilterRtdProvider.js b/modules/mediafilterRtdProvider.js index 8a082ad4d59..fae5c9e769b 100644 --- a/modules/mediafilterRtdProvider.js +++ b/modules/mediafilterRtdProvider.js @@ -14,7 +14,7 @@ import { submodule } from '../src/hook.js'; import { logError, generateUUID } from '../src/utils.js'; import { loadExternalScript } from '../src/adloader.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; /** The event type for Media Filter. */ export const MEDIAFILTER_EVENT_TYPE = 'com.mediatrust.pbjs.'; @@ -65,7 +65,7 @@ export const MediaFilter = { generateEventHandler: function(configurationHash) { return (windowEvent) => { if (windowEvent.data.type === MEDIAFILTER_EVENT_TYPE.concat('.', configurationHash)) { - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { + events.emit(EVENTS.BILLABLE_EVENT, { 'billingId': generateUUID(), 'configurationHash': configurationHash, 'type': 'impression', diff --git a/modules/medianetAnalyticsAdapter.js b/modules/medianetAnalyticsAdapter.js index b902727a730..68927cc6b13 100644 --- a/modules/medianetAnalyticsAdapter.js +++ b/modules/medianetAnalyticsAdapter.js @@ -12,7 +12,7 @@ import { } from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { BID_STATUS, EVENTS, TARGETING_KEYS } from '../src/constants.js'; import {ajax} from '../src/ajax.js'; import {getRefererInfo} from '../src/refererDetection.js'; import {AUCTION_COMPLETED, AUCTION_IN_PROGRESS, getPriceGranularity} from '../src/auction.js'; @@ -590,7 +590,7 @@ function bidResponseHandler(bid) { dfpbd = bid[priceGranularityKey] || cpm; } bidObj.dfpbd = dfpbd; - if (bid.status === CONSTANTS.BID_STATUS.BID_REJECTED) { + if (bid.status === BID_STATUS.BID_REJECTED) { bidObj.status = BID_FLOOR_REJECTED; } else { bidObj.status = BID_SUCCESS; @@ -660,12 +660,12 @@ function setTargetingHandler(params) { adunitObj.targeting = params[adunit]; auctionObj.setTargetingTime = Date.now(); let targetingObj = Object.keys(params[adunit]).reduce((result, key) => { - if (key.indexOf(CONSTANTS.TARGETING_KEYS.AD_ID) !== -1) { + if (key.indexOf(TARGETING_KEYS.AD_ID) !== -1) { result[key] = params[adunit][key] } return result; }, {}); - const winnerAdId = params[adunit][CONSTANTS.TARGETING_KEYS.AD_ID]; + const winnerAdId = params[adunit][TARGETING_KEYS.AD_ID]; let winningBid; let bidAdIds = Object.keys(targetingObj).map(k => targetingObj[k]); auctionObj.bidWrapper.bidObjs.filter((bid) => bidAdIds.indexOf(bid.adId) !== -1).map(function(bid) { @@ -845,35 +845,35 @@ let medianetAnalytics = Object.assign(adapter({URL, analyticsType}), { logInfo(eventType, args); } switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: { + case EVENTS.AUCTION_INIT: { auctionInitHandler(args); break; } - case CONSTANTS.EVENTS.BID_REQUESTED: { + case EVENTS.BID_REQUESTED: { bidRequestedHandler(args); break; } - case CONSTANTS.EVENTS.BID_RESPONSE: { + case EVENTS.BID_RESPONSE: { bidResponseHandler(args); break; } - case CONSTANTS.EVENTS.BID_TIMEOUT: { + case EVENTS.BID_TIMEOUT: { bidTimeoutHandler(args); break; } - case CONSTANTS.EVENTS.NO_BID: { + case EVENTS.NO_BID: { noBidResponseHandler(args); break; } - case CONSTANTS.EVENTS.AUCTION_END: { + case EVENTS.AUCTION_END: { auctionEndHandler(args); break; } - case CONSTANTS.EVENTS.SET_TARGETING : { + case EVENTS.SET_TARGETING: { setTargetingHandler(args); break; } - case CONSTANTS.EVENTS.BID_WON: { + case EVENTS.BID_WON: { bidWonHandler(args); break; } diff --git a/modules/multibid/index.js b/modules/multibid/index.js index 27b88d47cf7..d0ce2ae159e 100644 --- a/modules/multibid/index.js +++ b/modules/multibid/index.js @@ -9,7 +9,7 @@ import { logWarn, deepAccess, getUniqueIdentifierStr, deepSetValue, groupBy } from '../../src/utils.js'; import * as events from '../../src/events.js'; -import CONSTANTS from '../../src/constants.json'; +import { EVENTS } from '../../src/constants.js'; import {addBidderRequests} from '../../src/auction.js'; import {getHighestCpmBidsFromBidPool, sortByDealAndPriceBucketOrCpm} from '../../src/targeting.js'; import {PBS, registerOrtbProcessor, REQUEST} from '../../src/pbjsORTB.js'; @@ -230,7 +230,7 @@ export const resetMultibidUnits = () => multibidUnits = {}; */ function init() { // TODO: does this reset logic make sense - what about simultaneous auctions? - events.on(CONSTANTS.EVENTS.AUCTION_INIT, resetMultibidUnits); + events.on(EVENTS.AUCTION_INIT, resetMultibidUnits); setupBeforeHookFnOnce(addBidderRequests, adjustBidderRequestsHook); getHook('addBidResponse').before(addBidResponseHook, 3); setupBeforeHookFnOnce(getHighestCpmBidsFromBidPool, targetBidPoolHook); diff --git a/modules/neuwoRtdProvider.js b/modules/neuwoRtdProvider.js index 7c594e2a1c3..a2c2249285b 100644 --- a/modules/neuwoRtdProvider.js +++ b/modules/neuwoRtdProvider.js @@ -3,7 +3,7 @@ import { getRefererInfo } from '../src/refererDetection.js'; import { ajax } from '../src/ajax.js'; import { submodule } from '../src/hook.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; export const DATA_PROVIDER = 'neuwo.ai'; const SEGTAX_IAB = 6 // IAB - Content Taxonomy version 2 @@ -42,7 +42,7 @@ export function getBidRequestData(reqBidsConfigObj, callback, config, userConsen try { const jsonContent = JSON.parse(responseContent); if (jsonContent.marketing_categories) { - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, { type: 'request', billingId, vendor: neuwoRtdModule.name }) + events.emit(EVENTS.BILLABLE_EVENT, { type: 'request', billingId, vendor: neuwoRtdModule.name }) } injectTopics(jsonContent, reqBidsConfigObj, billingId) } catch (ex) { diff --git a/modules/nextMillenniumBidAdapter.js b/modules/nextMillenniumBidAdapter.js index de91b508125..65f530d9e58 100644 --- a/modules/nextMillenniumBidAdapter.js +++ b/modules/nextMillenniumBidAdapter.js @@ -14,7 +14,7 @@ import { } from '../src/utils.js'; import {getGlobal} from '../src/prebidGlobal.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {BANNER, VIDEO} from '../src/mediaTypes.js'; import {config} from '../src/config.js'; @@ -139,7 +139,7 @@ export const spec = { auctionId, }); - this.getUrlPixelMetric(CONSTANTS.EVENTS.BID_REQUESTED, bid); + this.getUrlPixelMetric(EVENTS.BID_REQUESTED, bid); }); return requests; @@ -183,7 +183,7 @@ export const spec = { bidResponses.push(bidResponse); - this.getUrlPixelMetric(CONSTANTS.EVENTS.BID_RESPONSE, bid); + this.getUrlPixelMetric(EVENTS.BID_RESPONSE, bid); }); }); @@ -263,7 +263,7 @@ export const spec = { onTimeout(bids) { for (const bid of bids) { - this.getUrlPixelMetric(CONSTANTS.EVENTS.BID_TIMEOUT, bid); + this.getUrlPixelMetric(EVENTS.BID_TIMEOUT, bid); }; }, }; diff --git a/modules/nobidAnalyticsAdapter.js b/modules/nobidAnalyticsAdapter.js index 3a272c3f796..5ae77f0cdc8 100644 --- a/modules/nobidAnalyticsAdapter.js +++ b/modules/nobidAnalyticsAdapter.js @@ -2,7 +2,7 @@ import {deepClone, logError, getParameterByName} from '../src/utils.js'; import {ajax} from '../src/ajax.js'; import {getStorageManager} from '../src/storageManager.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js'; @@ -17,16 +17,14 @@ const url = 'localhost:8383/event'; const GVLID = 816; const storage = getStorageManager({gvlid: GVLID, moduleName: MODULE_NAME, moduleType: MODULE_TYPE_ANALYTICS}); const { - EVENTS: { - AUCTION_INIT, - BID_REQUESTED, - BID_TIMEOUT, - BID_RESPONSE, - BID_WON, - AUCTION_END, - AD_RENDER_SUCCEEDED - } -} = CONSTANTS; + AUCTION_INIT, + BID_REQUESTED, + BID_TIMEOUT, + BID_RESPONSE, + BID_WON, + AUCTION_END, + AD_RENDER_SUCCEEDED +} = EVENTS; function log (msg) { // eslint-disable-next-line no-console console.log(`%cNoBid Analytics ${VERSION}`, 'padding: 2px 8px 2px 8px; background-color:#f50057; color: white', msg); diff --git a/modules/ooloAnalyticsAdapter.js b/modules/ooloAnalyticsAdapter.js index 9bc140f0536..8a6ef88a7fb 100644 --- a/modules/ooloAnalyticsAdapter.js +++ b/modules/ooloAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { _each, deepClone, pick, deepSetValue, logError, logInfo } from '../src/ import { getOrigin } from '../libraries/getOrigin/index.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js' import adapterManager from '../src/adapterManager.js' -import CONSTANTS from '../src/constants.json' +import { EVENTS } from '../src/constants.js' import { ajax } from '../src/ajax.js' import { config } from '../src/config.js' @@ -33,7 +33,7 @@ const { BID_WON, BID_TIMEOUT, AD_RENDER_FAILED -} = CONSTANTS.EVENTS +} = EVENTS const SERVER_EVENTS = { AUCTION: 'auction', diff --git a/modules/oxxionAnalyticsAdapter.js b/modules/oxxionAnalyticsAdapter.js index 25732d440ff..b3bc2d3479f 100644 --- a/modules/oxxionAnalyticsAdapter.js +++ b/modules/oxxionAnalyticsAdapter.js @@ -1,6 +1,6 @@ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import { ajax } from '../src/ajax.js'; import { getRefererInfo } from '../src/refererDetection.js'; @@ -8,14 +8,12 @@ const analyticsType = 'endpoint'; const url = 'URL_TO_SERVER_ENDPOINT'; const { - EVENTS: { - AUCTION_END, - BID_WON, - BID_RESPONSE, - BID_REQUESTED, - BID_TIMEOUT, - } -} = CONSTANTS; + AUCTION_END, + BID_WON, + BID_RESPONSE, + BID_REQUESTED, + BID_TIMEOUT, +} = EVENTS; let saveEvents = {} let allEvents = {} diff --git a/modules/paapi.js b/modules/paapi.js index 720935bd3f5..5c76b2fb327 100644 --- a/modules/paapi.js +++ b/modules/paapi.js @@ -6,7 +6,7 @@ import {getHook, module} from '../src/hook.js'; import {deepSetValue, logInfo, logWarn, mergeDeep} from '../src/utils.js'; import {IMP, PBS, registerOrtbProcessor, RESPONSE} from '../src/pbjsORTB.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import {EVENTS} from '../src/constants.js'; import {currencyCompare} from '../libraries/currencyUtils/currency.js'; import {maximum, minimum} from '../src/utils/reducers.js'; import {auctionManager} from '../src/auctionManager.js'; @@ -67,7 +67,7 @@ export function init(cfg, configNamespace) { getHook('addComponentAuction').before(addComponentAuctionHook); getHook('makeBidRequests').after(markForFledge); -events.on(CONSTANTS.EVENTS.AUCTION_END, onAuctionEnd); +events.on(EVENTS.AUCTION_END, onAuctionEnd); function getSlotSignals(bidsReceived = [], bidRequests = []) { let bidfloor, bidfloorcur; diff --git a/modules/pirIdSystem.js b/modules/pirIdSystem.js index b891e1d362a..233176028d3 100644 --- a/modules/pirIdSystem.js +++ b/modules/pirIdSystem.js @@ -44,7 +44,7 @@ export const pirIdSubmodule = { * performs action to obtain id and return a value * @function * @returns {(IdResponse|undefined)} - */ + */ getId() { const pirIdToken = readId(); diff --git a/modules/prebidServerBidAdapter/index.js b/modules/prebidServerBidAdapter/index.js index 6e4aec8ad92..037119d44a2 100644 --- a/modules/prebidServerBidAdapter/index.js +++ b/modules/prebidServerBidAdapter/index.js @@ -16,7 +16,7 @@ import { triggerPixel, uniques, } from '../../src/utils.js'; -import CONSTANTS from '../../src/constants.json'; +import { EVENTS, REJECTION_REASON, S2S } from '../../src/constants.js'; import adapterManager, {s2sActivityParams} from '../../src/adapterManager.js'; import {config} from '../../src/config.js'; import {addComponentAuction, isValid} from '../../src/adapters/bidderFactory.js'; @@ -33,7 +33,7 @@ import {ACTIVITY_TRANSMIT_UFPD} from '../../src/activities/activities.js'; const getConfig = config.getConfig; -const TYPE = CONSTANTS.S2S.SRC; +const TYPE = S2S.SRC; let _syncCount = 0; let _s2sConfigs; @@ -467,10 +467,10 @@ export function PrebidServer() { processPBSRequest(s2sBidRequest, bidRequests, ajax, { onResponse: function (isValid, requestedBidders, response) { if (isValid) { - bidRequests.forEach(bidderRequest => events.emit(CONSTANTS.EVENTS.BIDDER_DONE, bidderRequest)); + bidRequests.forEach(bidderRequest => events.emit(EVENTS.BIDDER_DONE, bidderRequest)); } if (shouldEmitNonbids(s2sBidRequest.s2sConfig, response)) { - events.emit(CONSTANTS.EVENTS.SEAT_NON_BID, { + events.emit(EVENTS.SEAT_NON_BID, { seatnonbid: response.ext.seatnonbid, auctionId: bidRequests[0].auctionId, requestedBidders, @@ -483,7 +483,7 @@ export function PrebidServer() { }, onError(msg, error) { logError(`Prebid server call failed: '${msg}'`, error); - bidRequests.forEach(bidderRequest => events.emit(CONSTANTS.EVENTS.BIDDER_ERROR, {error, bidderRequest})); + bidRequests.forEach(bidderRequest => events.emit(EVENTS.BIDDER_ERROR, { error, bidderRequest })); done(error.timedOut); }, onBid: function ({adUnit, bid}) { @@ -491,7 +491,7 @@ export function PrebidServer() { metrics.checkpoint('addBidResponse'); if ((bid.requestId == null || bid.requestBidder == null) && !s2sBidRequest.s2sConfig.allowUnknownBidderCodes) { logWarn(`PBS adapter received bid from unknown bidder (${bid.bidder}), but 's2sConfig.allowUnknownBidderCodes' is not set. Ignoring bid.`); - addBidResponse.reject(adUnit, bid, CONSTANTS.REJECTION_REASON.BIDDER_DISALLOWED); + addBidResponse.reject(adUnit, bid, REJECTION_REASON.BIDDER_DISALLOWED); } else { if (metrics.measureTime('addBidResponse.validate', () => isValid(adUnit, bid))) { addBidResponse(adUnit, bid); @@ -499,7 +499,7 @@ export function PrebidServer() { addWurl(bid.auctionId, bid.adId, bid.pbsWurl); } } else { - addBidResponse.reject(adUnit, bid, CONSTANTS.REJECTION_REASON.INVALID); + addBidResponse.reject(adUnit, bid, REJECTION_REASON.INVALID); } } }, @@ -511,7 +511,7 @@ export function PrebidServer() { }; // Listen for bid won to call wurl - events.on(CONSTANTS.EVENTS.BID_WON, bidWonHandler); + events.on(EVENTS.BID_WON, bidWonHandler); return Object.assign(this, { callBids: baseAdapter.callBids, diff --git a/modules/prebidServerBidAdapter/ortbConverter.js b/modules/prebidServerBidAdapter/ortbConverter.js index 1dd1532f423..e0f038767c2 100644 --- a/modules/prebidServerBidAdapter/ortbConverter.js +++ b/modules/prebidServerBidAdapter/ortbConverter.js @@ -11,7 +11,7 @@ import { timestamp } from '../../src/utils.js'; import {config} from '../../src/config.js'; -import CONSTANTS from '../../src/constants.json'; +import { STATUS, S2S } from '../../src/constants.js'; import {createBid} from '../../src/bidfactory.js'; import {pbsExtensions} from '../../libraries/pbsExtensions/pbsExtensions.js'; import {setImpBidParams} from '../../libraries/pbsExtensions/processors/params.js'; @@ -114,8 +114,8 @@ const PBS_CONVERTER = ortbConverter({ // because core has special treatment for PBS adapter responses, we need some additional processing bidResponse.requestTimestamp = context.requestTimestamp; return { - bid: Object.assign(createBid(CONSTANTS.STATUS.GOOD, { - src: CONSTANTS.S2S.SRC, + bid: Object.assign(createBid(STATUS.GOOD, { + src: S2S.SRC, bidId: bidRequest ? (bidRequest.bidId || bidRequest.bid_Id) : null, transactionId: context.adUnit.transactionId, adUnitId: context.adUnit.adUnitId, diff --git a/modules/prebidmanagerAnalyticsAdapter.js b/modules/prebidmanagerAnalyticsAdapter.js index b877918d16d..858e30068db 100644 --- a/modules/prebidmanagerAnalyticsAdapter.js +++ b/modules/prebidmanagerAnalyticsAdapter.js @@ -3,7 +3,7 @@ import {ajaxBuilder} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import {getStorageManager} from '../src/storageManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js'; /** @@ -208,7 +208,7 @@ function handleEvent(eventType, eventArgs) { const pmEvent = {}; switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: { + case EVENTS.AUCTION_INIT: { pmEvent.auctionId = eventArgs.auctionId; pmEvent.timeout = eventArgs.timeout; pmEvent.eventType = eventArgs.eventType; @@ -218,7 +218,7 @@ function handleEvent(eventType, eventArgs) { _bidRequestTimeout = pmEvent.timeout; break; } - case CONSTANTS.EVENTS.AUCTION_END: { + case EVENTS.AUCTION_END: { pmEvent.auctionId = eventArgs.auctionId; pmEvent.end = eventArgs.end; pmEvent.start = eventArgs.start; @@ -228,15 +228,15 @@ function handleEvent(eventType, eventArgs) { pmEvent.end = Date.now(); break; } - case CONSTANTS.EVENTS.BID_ADJUSTMENT: { + case EVENTS.BID_ADJUSTMENT: { break; } - case CONSTANTS.EVENTS.BID_TIMEOUT: { + case EVENTS.BID_TIMEOUT: { pmEvent.bidders = eventArgs && eventArgs.map ? eventArgs.map(trimBid) : eventArgs; pmEvent.duration = _bidRequestTimeout; break; } - case CONSTANTS.EVENTS.BID_REQUESTED: { + case EVENTS.BID_REQUESTED: { pmEvent.auctionId = eventArgs.auctionId; pmEvent.bidderCode = eventArgs.bidderCode; pmEvent.doneCbCallCount = eventArgs.doneCbCallCount; @@ -247,7 +247,7 @@ function handleEvent(eventType, eventArgs) { pmEvent.timeout = eventArgs.timeout; break; } - case CONSTANTS.EVENTS.BID_RESPONSE: { + case EVENTS.BID_RESPONSE: { pmEvent.bidderCode = eventArgs.bidderCode; pmEvent.width = eventArgs.width; pmEvent.height = eventArgs.height; @@ -266,7 +266,7 @@ function handleEvent(eventType, eventArgs) { pmEvent.adserverTargeting = eventArgs.adserverTargeting; break; } - case CONSTANTS.EVENTS.BID_WON: { + case EVENTS.BID_WON: { pmEvent.auctionId = eventArgs.auctionId; pmEvent.adId = eventArgs.adId; pmEvent.adserverTargeting = eventArgs.adserverTargeting; @@ -284,7 +284,7 @@ function handleEvent(eventType, eventArgs) { pmEvent.bidder = eventArgs.bidder; break; } - case CONSTANTS.EVENTS.BIDDER_DONE: { + case EVENTS.BIDDER_DONE: { pmEvent.auctionId = eventArgs.auctionId; pmEvent.auctionStart = eventArgs.auctionStart; pmEvent.bidderCode = eventArgs.bidderCode; @@ -297,16 +297,16 @@ function handleEvent(eventType, eventArgs) { pmEvent.src = eventArgs.src; break; } - case CONSTANTS.EVENTS.SET_TARGETING: { + case EVENTS.SET_TARGETING: { break; } - case CONSTANTS.EVENTS.REQUEST_BIDS: { + case EVENTS.REQUEST_BIDS: { break; } - case CONSTANTS.EVENTS.ADD_AD_UNITS: { + case EVENTS.ADD_AD_UNITS: { break; } - case CONSTANTS.EVENTS.AD_RENDER_FAILED: { + case EVENTS.AD_RENDER_FAILED: { pmEvent.bid = eventArgs.bid; pmEvent.message = eventArgs.message; pmEvent.reason = eventArgs.reason; @@ -326,7 +326,7 @@ function sendEvent(event) { _eventQueue.push(event); logInfo(`${analyticsName} Event ${event.eventType}:`, event); - if (event.eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (event.eventType === EVENTS.AUCTION_END) { flush(); } } diff --git a/modules/priceFloors.js b/modules/priceFloors.js index 70a0f9b9a14..5df8f938c3d 100644 --- a/modules/priceFloors.js +++ b/modules/priceFloors.js @@ -19,7 +19,7 @@ import {getGlobal} from '../src/prebidGlobal.js'; import {config} from '../src/config.js'; import {ajaxBuilder} from '../src/ajax.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS, REJECTION_REASON } from '../src/constants.js'; import {getHook} from '../src/hook.js'; import {find} from '../src/polyfill.js'; import {getRefererInfo} from '../src/refererDetection.js'; @@ -31,6 +31,11 @@ import {adjustCpm} from '../src/utils/cpm.js'; import {getGptSlotInfoForAdUnitCode} from '../libraries/gptUtils/gptUtils.js'; import {convertCurrency} from '../libraries/currencyUtils/currency.js'; +export const FLOOR_SKIPPED_REASON = { + NOT_FOUND: 'not_found', + RANDOM: 'random' +}; + /** * @summary This Module is intended to provide users with the ability to dynamically set and enforce price floors on a per auction basis. */ @@ -412,13 +417,13 @@ export function createFloorsDataForAuction(adUnits, auctionId) { // if we still do not have a valid floor data then floors is not on for this auction, so skip if (Object.keys(deepAccess(resolvedFloorsData, 'data.values') || {}).length === 0) { resolvedFloorsData.skipped = true; - resolvedFloorsData.skippedReason = CONSTANTS.FLOOR_SKIPPED_REASON.NOT_FOUND + resolvedFloorsData.skippedReason = FLOOR_SKIPPED_REASON.NOT_FOUND } else { // determine the skip rate now const auctionSkipRate = getParameterByName('pbjs_skipRate') || (deepAccess(resolvedFloorsData, 'data.skipRate') ?? resolvedFloorsData.skipRate); const isSkipped = Math.random() * 100 < parseFloat(auctionSkipRate); resolvedFloorsData.skipped = isSkipped; - if (isSkipped) resolvedFloorsData.skippedReason = CONSTANTS.FLOOR_SKIPPED_REASON.RANDOM + if (isSkipped) resolvedFloorsData.skippedReason = FLOOR_SKIPPED_REASON.RANDOM } // copy FloorMin to floorData.data if (resolvedFloorsData.hasOwnProperty('floorMin')) resolvedFloorsData.data.floorMin = resolvedFloorsData.floorMin; @@ -701,7 +706,7 @@ export function handleSetFloorsConfig(config) { if (!addedFloorsHook) { // register hooks / listening events // when auction finishes remove it's associated floor data after 3 seconds so we stil have it for latent responses - events.on(CONSTANTS.EVENTS.AUCTION_END, (args) => { + events.on(EVENTS.AUCTION_END, (args) => { setTimeout(() => delete _floorDataForAuction[args.auctionId], 3000); }); @@ -802,7 +807,7 @@ export const addBidResponseHook = timedBidResponseHook('priceFloors', function a // now do the compare! if (shouldFloorBid(floorData, floorInfo, bid)) { // bid fails floor -> throw it out - reject(CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET); + reject(REJECTION_REASON.FLOOR_NOT_MET); logWarn(`${MODULE_NAME}: ${bid.bidderCode}'s Bid Response for ${adUnitCode} was rejected due to floor not met (adjusted cpm: ${bid?.floorData?.cpmAfterAdjustments}, floor: ${floorInfo?.matchingFloor})`, bid); return; } diff --git a/modules/pubmaticAnalyticsAdapter.js b/modules/pubmaticAnalyticsAdapter.js index ced47086f7b..753b706e363 100755 --- a/modules/pubmaticAnalyticsAdapter.js +++ b/modules/pubmaticAnalyticsAdapter.js @@ -1,12 +1,22 @@ import {_each, isArray, isStr, logError, logWarn, pick, generateUUID} from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { BID_STATUS, EVENTS, STATUS, REJECTION_REASON } from '../src/constants.js'; import {ajax} from '../src/ajax.js'; import {config} from '../src/config.js'; import {getGlobal} from '../src/prebidGlobal.js'; import {getGptSlotInfoForAdUnitCode} from '../libraries/gptUtils/gptUtils.js'; +const FLOOR_VALUES = { + NO_DATA: 'noData', + AD_UNIT: 'adUnit', + SET_CONFIG: 'setConfig', + FETCH: 'fetch', + SUCCESS: 'success', + ERROR: 'error', + TIMEOUT: 'timeout' +}; + /// /////////// CONSTANTS ////////////// const ADAPTER_CODE = 'pubmatic'; const VENDOR_OPENWRAP = 'openwrap'; @@ -109,7 +119,7 @@ function copyRequiredBidDetails(bid) { function setBidStatus(bid, args) { switch (args.getStatusCode()) { - case CONSTANTS.STATUS.GOOD: + case STATUS.GOOD: bid.status = SUCCESS; delete bid.error; // it's possible for this to be set by a previous timeout break; @@ -346,9 +356,9 @@ function getFloorFetchStatus(floorData) { return false; } const { location, fetchStatus } = floorData?.floorRequestData; - const isDataValid = location !== CONSTANTS.FLOOR_VALUES.NO_DATA; - const isFetchSuccessful = location === CONSTANTS.FLOOR_VALUES.FETCH && fetchStatus === CONSTANTS.FLOOR_VALUES.SUCCESS; - const isAdUnitOrSetConfig = location === CONSTANTS.FLOOR_VALUES.AD_UNIT || location === CONSTANTS.FLOOR_VALUES.SET_CONFIG; + const isDataValid = location !== FLOOR_VALUES.NO_DATA; + const isFetchSuccessful = location === FLOOR_VALUES.FETCH && fetchStatus === FLOOR_VALUES.SUCCESS; + const isAdUnitOrSetConfig = location === FLOOR_VALUES.AD_UNIT || location === FLOOR_VALUES.SET_CONFIG; return isDataValid && (isAdUnitOrSetConfig || isFetchSuccessful); } @@ -404,16 +414,16 @@ function executeBidsLoggerCall(e, highestCpmBids) { if (floorData?.floorRequestData) { const { location, fetchStatus, floorProvider } = floorData?.floorRequestData; slotObject.ffs = { - [CONSTANTS.FLOOR_VALUES.SUCCESS]: 1, - [CONSTANTS.FLOOR_VALUES.ERROR]: 2, - [CONSTANTS.FLOOR_VALUES.TIMEOUT]: 4, + [FLOOR_VALUES.SUCCESS]: 1, + [FLOOR_VALUES.ERROR]: 2, + [FLOOR_VALUES.TIMEOUT]: 4, undefined: 0 }[fetchStatus]; slotObject.fsrc = { - [CONSTANTS.FLOOR_VALUES.FETCH]: 2, - [CONSTANTS.FLOOR_VALUES.NO_DATA]: 2, - [CONSTANTS.FLOOR_VALUES.AD_UNIT]: 1, - [CONSTANTS.FLOOR_VALUES.SET_CONFIG]: 1 + [FLOOR_VALUES.FETCH]: 2, + [FLOOR_VALUES.NO_DATA]: 2, + [FLOOR_VALUES.AD_UNIT]: 1, + [FLOOR_VALUES.SET_CONFIG]: 1 }[location]; slotObject.fp = floorProvider; } @@ -578,9 +588,9 @@ function bidResponseHandler(args) { function bidRejectedHandler(args) { // If bid is rejected due to floors value did not met // make cpm as 0, status as bidRejected and forward the bid for logging - if (args.rejectionReason === CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET) { + if (args.rejectionReason === REJECTION_REASON.FLOOR_NOT_MET) { args.cpm = 0; - args.status = CONSTANTS.BID_STATUS.BID_REJECTED; + args.status = BID_STATUS.BID_REJECTED; bidResponseHandler(args); } } @@ -674,28 +684,28 @@ let pubmaticAdapter = Object.assign({}, baseAdapter, { track({eventType, args}) { switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: auctionInitHandler(args); break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: bidRequestedHandler(args); break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: bidResponseHandler(args); break; - case CONSTANTS.EVENTS.BID_REJECTED: + case EVENTS.BID_REJECTED: bidRejectedHandler(args) break; - case CONSTANTS.EVENTS.BIDDER_DONE: + case EVENTS.BIDDER_DONE: bidderDoneHandler(args); break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: bidWonHandler(args); break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: auctionEndHandler(args); break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: bidTimeoutHandler(args); break; } diff --git a/modules/pubmaticBidAdapter.js b/modules/pubmaticBidAdapter.js index 846c59c1ae5..a428ba9fa6e 100644 --- a/modules/pubmaticBidAdapter.js +++ b/modules/pubmaticBidAdapter.js @@ -4,7 +4,7 @@ import { BANNER, VIDEO, NATIVE, ADPOD } from '../src/mediaTypes.js'; import { config } from '../src/config.js'; import { Renderer } from '../src/Renderer.js'; import { bidderSettings } from '../src/bidderSettings.js'; -import CONSTANTS from '../src/constants.json'; +import { NATIVE_IMAGE_TYPES, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS, NATIVE_ASSET_TYPES } from '../src/constants.js'; /** * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest @@ -331,7 +331,6 @@ const PREBID_NATIVE_DATA_KEYS_TO_ORTB = { 'displayurl': 'displayurl' }; -const { NATIVE_IMAGE_TYPES, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS, NATIVE_ASSET_TYPES } = CONSTANTS; const PREBID_NATIVE_DATA_KEY_VALUES = Object.values(PREBID_NATIVE_DATA_KEYS_TO_ORTB); // TODO remove this function when the support for 1.1 is removed diff --git a/modules/pubwiseAnalyticsAdapter.js b/modules/pubwiseAnalyticsAdapter.js index 6aed462f2d5..00d8e3ccb6a 100644 --- a/modules/pubwiseAnalyticsAdapter.js +++ b/modules/pubwiseAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { getParameterByName, logInfo, generateUUID, debugTurnedOn } from '../src import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getStorageManager} from '../src/storageManager.js'; import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js'; const MODULE_CODE = 'pubwise'; @@ -176,13 +176,13 @@ function flushEvents() { function isIngestedEvent(eventType) { const ingested = [ - CONSTANTS.EVENTS.AUCTION_INIT, - CONSTANTS.EVENTS.BID_REQUESTED, - CONSTANTS.EVENTS.BID_RESPONSE, - CONSTANTS.EVENTS.BID_WON, - CONSTANTS.EVENTS.BID_TIMEOUT, - CONSTANTS.EVENTS.AD_RENDER_FAILED, - CONSTANTS.EVENTS.TCF2_ENFORCEMENT + EVENTS.AUCTION_INIT, + EVENTS.BID_REQUESTED, + EVENTS.BID_RESPONSE, + EVENTS.BID_WON, + EVENTS.BID_TIMEOUT, + EVENTS.AD_RENDER_FAILED, + EVENTS.TCF2_ENFORCEMENT ]; return ingested.indexOf(eventType) !== -1; } @@ -278,9 +278,9 @@ pubwiseAnalytics.handleEvent = function(eventType, data) { metaData = enrichWithCustomSegments(metaData); // add data on init to the metadata container - if (eventType === CONSTANTS.EVENTS.AUCTION_INIT) { + if (eventType === EVENTS.AUCTION_INIT) { data = filterAuctionInit(data); - } else if (eventType === CONSTANTS.EVENTS.BID_RESPONSE) { + } else if (eventType === EVENTS.BID_RESPONSE) { data = filterBidResponse(data); } @@ -294,7 +294,7 @@ pubwiseAnalytics.handleEvent = function(eventType, data) { } // once the auction ends, or the event is a bid won send events - if (eventType === CONSTANTS.EVENTS.AUCTION_END || eventType === CONSTANTS.EVENTS.BID_WON) { + if (eventType === EVENTS.AUCTION_END || eventType === EVENTS.BID_WON) { flushEvents(); } }; diff --git a/modules/pubxaiAnalyticsAdapter.js b/modules/pubxaiAnalyticsAdapter.js index e97e5505768..d4a7ec70a70 100644 --- a/modules/pubxaiAnalyticsAdapter.js +++ b/modules/pubxaiAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { deepAccess, parseSizesInput, getWindowLocation, buildUrl } from '../src import { ajax } from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getGlobal} from '../src/prebidGlobal.js'; import {getGptSlotInfoForAdUnitCode} from '../libraries/gptUtils/gptUtils.js'; @@ -38,9 +38,9 @@ var pubxaiAnalyticsAdapter = Object.assign(adapter( }), { track({ eventType, args }) { if (typeof args !== 'undefined') { - if (eventType === CONSTANTS.EVENTS.BID_TIMEOUT) { + if (eventType === EVENTS.BID_TIMEOUT) { args.forEach(item => { mapBidResponse(item, 'timeout'); }); - } else if (eventType === CONSTANTS.EVENTS.AUCTION_INIT) { + } else if (eventType === EVENTS.AUCTION_INIT) { events.auctionInit = args; events.floorDetail = {}; events.bids = []; @@ -49,15 +49,15 @@ var pubxaiAnalyticsAdapter = Object.assign(adapter( Object.assign(events.floorDetail, floorData); } auctionTimestamp = args.timestamp; - } else if (eventType === CONSTANTS.EVENTS.BID_RESPONSE) { + } else if (eventType === EVENTS.BID_RESPONSE) { mapBidResponse(args, 'response'); - } else if (eventType === CONSTANTS.EVENTS.BID_WON) { + } else if (eventType === EVENTS.BID_WON) { send({ winningBid: mapBidResponse(args, 'bidwon') }, 'bidwon'); } } - if (eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (eventType === EVENTS.AUCTION_END) { send(events, 'auctionEnd'); } } diff --git a/modules/qortexRtdProvider.js b/modules/qortexRtdProvider.js index 7aa30334756..88b4339b38e 100644 --- a/modules/qortexRtdProvider.js +++ b/modules/qortexRtdProvider.js @@ -3,7 +3,7 @@ import { ajax } from '../src/ajax.js'; import { logWarn, mergeDeep, logMessage, generateUUID } from '../src/utils.js'; import { loadExternalScript } from '../src/adloader.js'; import * as events from '../src/events.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; let requestUrl; let bidderArray; @@ -128,7 +128,7 @@ export function loadScriptTag(config) { logMessage('received billable event: qx-impression') impressionIds.add(uid) billableEvent.transactionId = e.detail.uid; - events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, billableEvent); + events.emit(EVENTS.BILLABLE_EVENT, billableEvent); break; } default: diff --git a/modules/roxotAnalyticsAdapter.js b/modules/roxotAnalyticsAdapter.js index 2c3be3e1757..8e5371044a2 100644 --- a/modules/roxotAnalyticsAdapter.js +++ b/modules/roxotAnalyticsAdapter.js @@ -1,6 +1,6 @@ import {deepClone, getParameterByName, logError, logInfo} from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {includes} from '../src/polyfill.js'; import {ajaxBuilder} from '../src/ajax.js'; @@ -18,15 +18,13 @@ const DEFAULT_SERVER_CONFIG_URL = 'pa.rxthdr.com/v3'; const analyticsType = 'endpoint'; const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_REQUESTED, - BID_ADJUSTMENT, - BIDDER_DONE, - BID_WON - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_REQUESTED, + BID_ADJUSTMENT, + BIDDER_DONE, + BID_WON +} = EVENTS; const AUCTION_STATUS = { 'RUNNING': 'running', diff --git a/modules/rtdModule/index.js b/modules/rtdModule/index.js index c5308c91e18..0c654fc28b0 100644 --- a/modules/rtdModule/index.js +++ b/modules/rtdModule/index.js @@ -163,7 +163,7 @@ import {config} from '../../src/config.js'; import {getHook, module} from '../../src/hook.js'; import {logError, logInfo, logWarn} from '../../src/utils.js'; import * as events from '../../src/events.js'; -import CONSTANTS from '../../src/constants.json'; +import { EVENTS, JSON_MAPPING } from '../../src/constants.js'; import adapterManager, {gdprDataHandler, uspDataHandler, gppDataHandler} from '../../src/adapterManager.js'; import {find} from '../../src/polyfill.js'; import {timedAuctionHook} from '../../src/utils/perfMetrics.js'; @@ -213,11 +213,11 @@ const setEventsListeners = (function () { return function setEventsListeners() { if (!registered) { Object.entries({ - [CONSTANTS.EVENTS.AUCTION_INIT]: ['onAuctionInitEvent'], - [CONSTANTS.EVENTS.AUCTION_END]: ['onAuctionEndEvent', getAdUnitTargeting], - [CONSTANTS.EVENTS.BID_RESPONSE]: ['onBidResponseEvent'], - [CONSTANTS.EVENTS.BID_REQUESTED]: ['onBidRequestEvent'], - [CONSTANTS.EVENTS.BID_ACCEPTED]: ['onBidAcceptedEvent'] + [EVENTS.AUCTION_INIT]: ['onAuctionInitEvent'], + [EVENTS.AUCTION_END]: ['onAuctionEndEvent', getAdUnitTargeting], + [EVENTS.BID_RESPONSE]: ['onBidResponseEvent'], + [EVENTS.BID_REQUESTED]: ['onBidRequestEvent'], + [EVENTS.BID_ACCEPTED]: ['onBidAcceptedEvent'] }).forEach(([ev, [handler, preprocess]]) => { events.on(ev, (args) => { preprocess && preprocess(args); @@ -380,7 +380,7 @@ export function getAdUnitTargeting(auction) { return } logInfo('RTD set ad unit targeting of', kv, 'for', adUnit); - adUnit[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING] = Object.assign(adUnit[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING] || {}, kv); + adUnit[JSON_MAPPING.ADSERVER_TARGETING] = Object.assign(adUnit[JSON_MAPPING.ADSERVER_TARGETING] || {}, kv); }); return auction.adUnits; } diff --git a/modules/scaleableAnalyticsAdapter.js b/modules/scaleableAnalyticsAdapter.js index 46f9d45d84d..054ccb7db55 100644 --- a/modules/scaleableAnalyticsAdapter.js +++ b/modules/scaleableAnalyticsAdapter.js @@ -1,7 +1,7 @@ /* COPYRIGHT SCALEABLE LLC 2019 */ import { ajax } from '../src/ajax.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import { logMessage } from '../src/utils.js'; @@ -16,10 +16,10 @@ const entries = Object.entries || function(obj) { return resArray; }; -const BID_TIMEOUT = CONSTANTS.EVENTS.BID_TIMEOUT; -const AUCTION_INIT = CONSTANTS.EVENTS.AUCTION_INIT; -const BID_WON = CONSTANTS.EVENTS.BID_WON; -const AUCTION_END = CONSTANTS.EVENTS.AUCTION_END; +const BID_TIMEOUT = EVENTS.BID_TIMEOUT; +const AUCTION_INIT = EVENTS.AUCTION_INIT; +const BID_WON = EVENTS.BID_WON; +const AUCTION_END = EVENTS.AUCTION_END; const URL = 'https://auction.scaleable.ai/'; const ANALYTICS_TYPE = 'endpoint'; diff --git a/modules/sigmoidAnalyticsAdapter.js b/modules/sigmoidAnalyticsAdapter.js index 18e1e20e3e3..a9d92b67e24 100644 --- a/modules/sigmoidAnalyticsAdapter.js +++ b/modules/sigmoidAnalyticsAdapter.js @@ -2,7 +2,7 @@ Updated : 2018-03-28 */ import {includes} from '../src/polyfill.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {getStorageManager} from '../src/storageManager.js'; import {generateUUID, logError, logInfo} from '../src/utils.js'; @@ -14,12 +14,12 @@ const storage = getStorageManager({moduleType: MODULE_TYPE_ANALYTICS, moduleName const url = 'https://kinesis.us-east-1.amazonaws.com/'; const analyticsType = 'endpoint'; -const auctionInitConst = CONSTANTS.EVENTS.AUCTION_INIT; -const auctionEndConst = CONSTANTS.EVENTS.AUCTION_END; -const bidWonConst = CONSTANTS.EVENTS.BID_WON; -const bidRequestConst = CONSTANTS.EVENTS.BID_REQUESTED; -const bidAdjustmentConst = CONSTANTS.EVENTS.BID_ADJUSTMENT; -const bidResponseConst = CONSTANTS.EVENTS.BID_RESPONSE; +const auctionInitConst = EVENTS.AUCTION_INIT; +const auctionEndConst = EVENTS.AUCTION_END; +const bidWonConst = EVENTS.BID_WON; +const bidRequestConst = EVENTS.BID_REQUESTED; +const bidAdjustmentConst = EVENTS.BID_ADJUSTMENT; +const bidResponseConst = EVENTS.BID_RESPONSE; let initOptions = { publisherIds: [], utmTagData: [], adUnits: [] }; let bidWon = {options: {}, events: []}; diff --git a/modules/smaatoBidAdapter.js b/modules/smaatoBidAdapter.js index ac0422842d5..64d8765dc04 100644 --- a/modules/smaatoBidAdapter.js +++ b/modules/smaatoBidAdapter.js @@ -3,7 +3,7 @@ import {find} from '../src/polyfill.js'; import {registerBidder} from '../src/adapters/bidderFactory.js'; import {config} from '../src/config.js'; import {ADPOD, BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js'; -import CONSTANTS from '../src/constants.json'; +import { NATIVE_IMAGE_TYPES } from '../src/constants.js'; import {getAdUnitSizes} from '../libraries/sizeUtils/sizeUtils.js'; import {fill} from '../libraries/appnexusUtils/anUtils.js'; import {chunk} from '../libraries/chunk/chunk.js'; @@ -16,7 +16,6 @@ import {chunk} from '../libraries/chunk/chunk.js'; * @typedef {import('../src/adapters/bidderFactory.js').UserSync} UserSync */ -const { NATIVE_IMAGE_TYPES } = CONSTANTS; const BIDDER_CODE = 'smaato'; const SMAATO_ENDPOINT = 'https://prebid.ad.smaato.net/oapi/prebid'; const SMAATO_CLIENT = 'prebid_js_$prebid.version$_1.8' diff --git a/modules/sonobiAnalyticsAdapter.js b/modules/sonobiAnalyticsAdapter.js index 04a855b5be6..8242df7e0c5 100644 --- a/modules/sonobiAnalyticsAdapter.js +++ b/modules/sonobiAnalyticsAdapter.js @@ -1,6 +1,6 @@ import { deepClone, logInfo, logError } from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {ajaxBuilder} from '../src/ajax.js'; @@ -10,17 +10,15 @@ export const DEFAULT_EVENT_URL = 'apex.go.sonobi.com/keymaker'; const analyticsType = 'endpoint'; const QUEUE_TIMEOUT_DEFAULT = 200; const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_REQUESTED, - BID_ADJUSTMENT, - BIDDER_DONE, - BID_WON, - BID_RESPONSE, - BID_TIMEOUT - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_REQUESTED, + BID_ADJUSTMENT, + BIDDER_DONE, + BID_WON, + BID_RESPONSE, + BID_TIMEOUT +} = EVENTS; let initOptions = {}; let auctionCache = {}; diff --git a/modules/sovrnAnalyticsAdapter.js b/modules/sovrnAnalyticsAdapter.js index a72c4b1a5a5..a89b365e074 100644 --- a/modules/sovrnAnalyticsAdapter.js +++ b/modules/sovrnAnalyticsAdapter.js @@ -1,7 +1,7 @@ import {logError, timestamp} from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adaptermanager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {ajaxBuilder} from '../src/ajax.js'; import {config} from '../src/config.js'; import {find, includes} from '../src/polyfill.js'; @@ -10,14 +10,12 @@ import {getRefererInfo} from '../src/refererDetection.js'; const ajax = ajaxBuilder(0) const { - EVENTS: { - AUCTION_END, - BID_REQUESTED, - BID_ADJUSTMENT, - BID_RESPONSE, - BID_WON - } -} = CONSTANTS + AUCTION_END, + BID_REQUESTED, + BID_ADJUSTMENT, + BID_RESPONSE, + BID_WON +} = EVENTS; let pbaUrl = 'https://pba.aws.lijit.com/analytics' let currentAuctions = {}; diff --git a/modules/staqAnalyticsAdapter.js b/modules/staqAnalyticsAdapter.js index c1aaa727af5..ac5e86db19d 100644 --- a/modules/staqAnalyticsAdapter.js +++ b/modules/staqAnalyticsAdapter.js @@ -1,6 +1,6 @@ import { logInfo, logError, parseUrl, _each } from '../src/utils.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import { getRefererInfo } from '../src/refererDetection.js'; import { ajax } from '../src/ajax.js'; @@ -55,25 +55,25 @@ let analyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoint' }), { } let handler = null; switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: if (analyticsAdapter.context.queue) { analyticsAdapter.context.queue.init(); } handler = trackAuctionInit; break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: handler = trackBidRequest; break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: handler = trackBidResponse; break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: handler = trackBidWon; break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: handler = trackBidTimeout; break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: handler = trackAuctionEnd; break; } @@ -81,11 +81,11 @@ let analyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoint' }), { let events = handler(args); if (analyticsAdapter.context.queue) { analyticsAdapter.context.queue.push(events); - if (eventType === CONSTANTS.EVENTS.BID_WON) { + if (eventType === EVENTS.BID_WON) { analyticsAdapter.context.queue.updateWithWins(events); } } - if (eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (eventType === EVENTS.AUCTION_END) { sendAll(); } } diff --git a/modules/terceptAnalyticsAdapter.js b/modules/terceptAnalyticsAdapter.js index c17948d73d0..089f8d917d6 100644 --- a/modules/terceptAnalyticsAdapter.js +++ b/modules/terceptAnalyticsAdapter.js @@ -2,7 +2,7 @@ import { parseSizesInput, getWindowLocation, buildUrl } from '../src/utils.js'; import { ajax } from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import {getGlobal} from '../src/prebidGlobal.js'; const emptyUrl = ''; @@ -24,23 +24,23 @@ var terceptAnalyticsAdapter = Object.assign(adapter( }), { track({ eventType, args }) { if (typeof args !== 'undefined') { - if (eventType === CONSTANTS.EVENTS.BID_TIMEOUT) { + if (eventType === EVENTS.BID_TIMEOUT) { args.forEach(item => { mapBidResponse(item, 'timeout'); }); - } else if (eventType === CONSTANTS.EVENTS.AUCTION_INIT) { + } else if (eventType === EVENTS.AUCTION_INIT) { events.auctionInit = args; auctionTimestamp = args.timestamp; - } else if (eventType === CONSTANTS.EVENTS.BID_REQUESTED) { + } else if (eventType === EVENTS.BID_REQUESTED) { mapBidRequests(args).forEach(item => { events.bids.push(item) }); - } else if (eventType === CONSTANTS.EVENTS.BID_RESPONSE) { + } else if (eventType === EVENTS.BID_RESPONSE) { mapBidResponse(args, 'response'); - } else if (eventType === CONSTANTS.EVENTS.BID_WON) { + } else if (eventType === EVENTS.BID_WON) { send({ bidWon: mapBidResponse(args, 'win') }, 'won'); } } - if (eventType === CONSTANTS.EVENTS.AUCTION_END) { + if (eventType === EVENTS.AUCTION_END) { send(events, 'auctionEnd'); } } diff --git a/modules/ucfunnelAnalyticsAdapter.js b/modules/ucfunnelAnalyticsAdapter.js index 77fffddbaae..3b4053d3626 100644 --- a/modules/ucfunnelAnalyticsAdapter.js +++ b/modules/ucfunnelAnalyticsAdapter.js @@ -1,6 +1,6 @@ import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import {getGlobal} from '../src/prebidGlobal.js'; import {logError, logInfo, deepClone} from '../src/utils.js'; @@ -12,12 +12,10 @@ export const ANALYTICS_VERSION = '1.0.0'; const ANALYTICS_SERVER = 'https://hbwa.aralego.com'; const { - EVENTS: { - AUCTION_END, - BID_WON, - BID_TIMEOUT - } -} = CONSTANTS; + AUCTION_END, + BID_WON, + BID_TIMEOUT +} = EVENTS; export const BIDDER_STATUS = { BID: 'bid', diff --git a/modules/userId/index.js b/modules/userId/index.js index 0e1df12e1db..90d377a816e 100644 --- a/modules/userId/index.js +++ b/modules/userId/index.js @@ -131,7 +131,7 @@ import {config} from '../../src/config.js'; import * as events from '../../src/events.js'; import {getGlobal} from '../../src/prebidGlobal.js'; import adapterManager, {gdprDataHandler} from '../../src/adapterManager.js'; -import CONSTANTS from '../../src/constants.json'; +import { EVENTS } from '../../src/constants.js'; import {module, ready as hooksReady} from '../../src/hook.js'; import {buildEidPermissions, createEidsArray, EID_CONFIG} from './eids.js'; import { @@ -538,8 +538,8 @@ function idSystemInitializer({delay = GreedyPromise.timeout} = {}) { if (auctionDelay > 0) { startCallbacks.resolve(); } else { - events.on(CONSTANTS.EVENTS.AUCTION_END, function auctionEndHandler() { - events.off(CONSTANTS.EVENTS.AUCTION_END, auctionEndHandler); + events.on(EVENTS.AUCTION_END, function auctionEndHandler() { + events.off(EVENTS.AUCTION_END, auctionEndHandler); delay(syncDelay).then(startCallbacks.resolve); }); } diff --git a/modules/videoModule/index.js b/modules/videoModule/index.js index 28f5c90d326..c84d98a6d5f 100644 --- a/modules/videoModule/index.js +++ b/modules/videoModule/index.js @@ -3,7 +3,7 @@ import { find } from '../../src/polyfill.js'; import * as events from '../../src/events.js'; import {mergeDeep, logWarn, logError} from '../../src/utils.js'; import { getGlobal } from '../../src/prebidGlobal.js'; -import CONSTANTS from '../../src/constants.json'; +import { EVENTS } from '../../src/constants.js'; import { videoEvents, AUCTION_AD_LOAD_ATTEMPT, @@ -71,7 +71,7 @@ export function PbVideo(videoCore_, getConfig_, pbGlobal_, pbEvents_, videoEvent requestBids.before(beforeBidsRequested, 40); - pbEvents.on(CONSTANTS.EVENTS.BID_ADJUSTMENT, function (bid) { + pbEvents.on(EVENTS.BID_ADJUSTMENT, function (bid) { videoImpressionVerifier.trackBid(bid); }); @@ -107,7 +107,7 @@ export function PbVideo(videoCore_, getConfig_, pbGlobal_, pbEvents_, videoEvent const bidsBackHandler = bidderRequest.bidsBackHandler; if (!bidsBackHandler || typeof bidsBackHandler !== 'function') { - pbEvents.on(CONSTANTS.EVENTS.AUCTION_END, auctionEnd); + pbEvents.on(EVENTS.AUCTION_END, auctionEnd); } return nextFn.call(this, bidderRequest); @@ -192,7 +192,7 @@ export function PbVideo(videoCore_, getConfig_, pbGlobal_, pbEvents_, videoEvent renderWinningBid(adUnit); } }); - pbEvents.off(CONSTANTS.EVENTS.AUCTION_END, auctionEnd); + pbEvents.off(EVENTS.AUCTION_END, auctionEnd); } function getAdServerConfig(adUnitVideoConfig) { diff --git a/modules/yandexAnalyticsAdapter.js b/modules/yandexAnalyticsAdapter.js index ba000db6162..5150d5d7dca 100644 --- a/modules/yandexAnalyticsAdapter.js +++ b/modules/yandexAnalyticsAdapter.js @@ -1,7 +1,7 @@ import buildAdapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; import { logError, logInfo } from '../src/utils.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import * as events from '../src/events.js'; const timeoutIds = {}; @@ -32,7 +32,7 @@ const { BIDDER_DONE, AUCTION_END, BID_TIMEOUT, -} = CONSTANTS.EVENTS; +} = EVENTS; export const EVENTS_TO_TRACK = [ BID_REQUESTED, diff --git a/modules/yieldoneAnalyticsAdapter.js b/modules/yieldoneAnalyticsAdapter.js index 0663ecb3f76..23fa0e0eec9 100644 --- a/modules/yieldoneAnalyticsAdapter.js +++ b/modules/yieldoneAnalyticsAdapter.js @@ -1,7 +1,7 @@ import { isArray, deepClone } from '../src/utils.js'; import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapterManager from '../src/adapterManager.js'; import { targeting } from '../src/targeting.js'; import { auctionManager } from '../src/auctionManager.js'; @@ -14,9 +14,9 @@ const requestedBidders = {}; const requestedBids = {}; const referrers = {}; const ignoredEvents = {}; -ignoredEvents[CONSTANTS.EVENTS.BID_ADJUSTMENT] = true; -ignoredEvents[CONSTANTS.EVENTS.BIDDER_DONE] = true; -ignoredEvents[CONSTANTS.EVENTS.AUCTION_END] = true; +ignoredEvents[EVENTS.BID_ADJUSTMENT] = true; +ignoredEvents[EVENTS.BIDDER_DONE] = true; +ignoredEvents[EVENTS.AUCTION_END] = true; let currentAuctionId = ''; let url = defaultUrl; @@ -69,7 +69,7 @@ function addAdUnitName(params, map) { const yieldoneAnalytics = Object.assign(adapter({analyticsType}), { getUrl() { return url; }, track({eventType, args = {}}) { - if (eventType === CONSTANTS.EVENTS.BID_REQUESTED) { + if (eventType === EVENTS.BID_REQUESTED) { const reqBidderId = `${args.bidderCode}_${args.auctionId}`; requestedBidders[reqBidderId] = deepClone(args); requestedBidders[reqBidderId].bids = []; @@ -77,7 +77,7 @@ const yieldoneAnalytics = Object.assign(adapter({analyticsType}), { requestedBids[`${bid.bidId}_${bid.auctionId}`] = bid; }); } - if (eventType === CONSTANTS.EVENTS.BID_TIMEOUT && isArray(args)) { + if (eventType === EVENTS.BID_TIMEOUT && isArray(args)) { const eventsStorage = yieldoneAnalytics.eventsStorage; const reqBidders = {}; args.forEach((bid) => { @@ -118,7 +118,7 @@ const yieldoneAnalytics = Object.assign(adapter({analyticsType}), { } if ( - eventType === CONSTANTS.EVENTS.AUCTION_END || eventType === CONSTANTS.EVENTS.BID_WON + eventType === EVENTS.AUCTION_END || eventType === EVENTS.BID_WON ) { params.adServerTargeting = targeting.getAllTargeting( auctionManager.getAdUnitCodes(), diff --git a/modules/yuktamediaAnalyticsAdapter.js b/modules/yuktamediaAnalyticsAdapter.js index 820e6365a9f..25e4dc73b74 100644 --- a/modules/yuktamediaAnalyticsAdapter.js +++ b/modules/yuktamediaAnalyticsAdapter.js @@ -2,7 +2,7 @@ import {buildUrl, generateUUID, getWindowLocation, logError, logInfo, parseSizes import {ajax} from '../src/ajax.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS, STATUS } from '../src/constants.js'; import {getStorageManager} from '../src/storageManager.js'; import {getRefererInfo} from '../src/refererDetection.js'; import {includes as strIncludes} from '../src/polyfill.js'; @@ -100,13 +100,13 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin track({ eventType, args }) { if (typeof args !== 'undefined') { switch (eventType) { - case CONSTANTS.EVENTS.AUCTION_INIT: + case EVENTS.AUCTION_INIT: logInfo(localStoragePrefix + 'AUCTION_INIT:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { events.auctions[args.auctionId] = { bids: {} }; } break; - case CONSTANTS.EVENTS.BID_REQUESTED: + case EVENTS.BID_REQUESTED: logInfo(localStoragePrefix + 'BID_REQUESTED:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { if (typeof events.auctions[args.auctionId] === 'undefined') { @@ -135,14 +135,14 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin }); } break; - case CONSTANTS.EVENTS.BID_RESPONSE: + case EVENTS.BID_RESPONSE: logInfo(localStoragePrefix + 'BID_RESPONSE:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { if (typeof events.auctions[args.auctionId] === 'undefined') { events.auctions[args.auctionId] = { bids: {} }; } else if (Object.keys(events.auctions[args.auctionId]['bids']).length) { let bidResponse = events.auctions[args.auctionId]['bids'][args.requestId]; - bidResponse.isBid = args.getStatusCode() === CONSTANTS.STATUS.GOOD; + bidResponse.isBid = args.getStatusCode() === STATUS.GOOD; bidResponse.cpm = args.cpm; bidResponse.currency = args.currency; bidResponse.netRevenue = args.netRevenue; @@ -165,7 +165,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } } break; - case CONSTANTS.EVENTS.NO_BID: + case EVENTS.NO_BID: logInfo(localStoragePrefix + 'NO_BID:', JSON.stringify(args)); if (typeof args.auctionId !== 'undefined' && args.auctionId.length) { if (typeof events.auctions[args.auctionId] === 'undefined') { @@ -176,7 +176,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } } break; - case CONSTANTS.EVENTS.BID_WON: + case EVENTS.BID_WON: logInfo(localStoragePrefix + 'BID_WON:', JSON.stringify(args)); if (typeof initOptions.enableSession !== 'undefined' && initOptions.enableSession) { updateSessionId(); @@ -192,7 +192,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin } } break; - case CONSTANTS.EVENTS.BID_TIMEOUT: + case EVENTS.BID_TIMEOUT: logInfo(localStoragePrefix + 'BID_TIMEOUT:', JSON.stringify(args)); if (args.length) { args.forEach(timeout => { @@ -208,7 +208,7 @@ var yuktamediaAnalyticsAdapter = Object.assign(adapter({ analyticsType: 'endpoin }); } break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: logInfo(localStoragePrefix + 'AUCTION_END:', JSON.stringify(args)); if (typeof initOptions.enableSession !== 'undefined' && initOptions.enableSession) { updateSessionId(); diff --git a/modules/zeta_global_sspAnalyticsAdapter.js b/modules/zeta_global_sspAnalyticsAdapter.js index 1eb4cab93b0..f0933d2f62f 100644 --- a/modules/zeta_global_sspAnalyticsAdapter.js +++ b/modules/zeta_global_sspAnalyticsAdapter.js @@ -1,7 +1,7 @@ import {logInfo, logError} from '../src/utils.js'; import { ajax } from '../src/ajax.js'; import adapterManager from '../src/adapterManager.js'; -import CONSTANTS from '../src/constants.json'; +import { EVENTS } from '../src/constants.js'; import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js'; @@ -48,7 +48,7 @@ function getZetaParams(event) { /// /////////// ADAPTER EVENT HANDLER FUNCTIONS ////////////// function adRenderSucceededHandler(args) { - let eventType = CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED + let eventType = EVENTS.AD_RENDER_SUCCEEDED logInfo(LOG_PREFIX + 'handle ' + eventType + ' event'); const event = { @@ -88,7 +88,7 @@ function adRenderSucceededHandler(args) { } function auctionEndHandler(args) { - let eventType = CONSTANTS.EVENTS.AUCTION_END; + let eventType = EVENTS.AUCTION_END; logInfo(LOG_PREFIX + 'handle ' + eventType + ' event'); const event = { @@ -177,10 +177,10 @@ let zetaAdapter = Object.assign({}, baseAdapter, { track({ eventType, args }) { switch (eventType) { - case CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED: + case EVENTS.AD_RENDER_SUCCEEDED: adRenderSucceededHandler(args); break; - case CONSTANTS.EVENTS.AUCTION_END: + case EVENTS.AUCTION_END: auctionEndHandler(args); break; } diff --git a/src/adRendering.js b/src/adRendering.js index a6d509bea77..7d306adc9cc 100644 --- a/src/adRendering.js +++ b/src/adRendering.js @@ -1,6 +1,6 @@ import {createIframe, deepAccess, inIframe, insertElement, logError, logWarn, replaceMacros} from './utils.js'; import * as events from './events.js'; -import CONSTANTS from './constants.json'; +import { AD_RENDER_FAILED_REASON, BID_STATUS, EVENTS, MESSAGES } from './constants.js'; import {config} from './config.js'; import {executeRenderer, isRendererRequired} from './Renderer.js'; import {VIDEO} from './mediaTypes.js'; @@ -9,14 +9,14 @@ import {getCreativeRenderer} from './creativeRenderers.js'; import {hook} from './hook.js'; import {fireNativeTrackers} from './native.js'; -const {AD_RENDER_FAILED, AD_RENDER_SUCCEEDED, STALE_RENDER, BID_WON} = CONSTANTS.EVENTS; -const {EXCEPTION} = CONSTANTS.AD_RENDER_FAILED_REASON; +const { AD_RENDER_FAILED, AD_RENDER_SUCCEEDED, STALE_RENDER, BID_WON } = EVENTS; +const { EXCEPTION } = AD_RENDER_FAILED_REASON; /** * Emit the AD_RENDER_FAILED event. * * @param {Object} data - * @param data.reason one of the values in CONSTANTS.AD_RENDER_FAILED_REASON + * @param data.reason one of the values in AD_RENDER_FAILED_REASON * @param data.message failure description * @param [data.bid] bid response object that failed to render * @param [data.id] adId that failed to render @@ -52,7 +52,7 @@ export function emitAdRenderSucceeded({ doc, bid, id }) { export function handleCreativeEvent(data, bidResponse) { switch (data.event) { - case CONSTANTS.EVENTS.AD_RENDER_FAILED: + case EVENTS.AD_RENDER_FAILED: emitAdRenderFail({ bid: bidResponse, id: bidResponse.adId, @@ -60,7 +60,7 @@ export function handleCreativeEvent(data, bidResponse) { message: data.info.message }); break; - case CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED: + case EVENTS.AD_RENDER_SUCCEEDED: emitAdRenderSucceeded({ doc: null, bid: bidResponse, @@ -83,11 +83,11 @@ export function handleNativeMessage(data, bidResponse, {resizeFn, fireTrackers = } const HANDLERS = { - [CONSTANTS.MESSAGES.EVENT]: handleCreativeEvent + [MESSAGES.EVENT]: handleCreativeEvent } if (FEATURES.NATIVE) { - HANDLERS[CONSTANTS.MESSAGES.NATIVE] = handleNativeMessage; + HANDLERS[MESSAGES.NATIVE] = handleNativeMessage; } function creativeMessageHandler(deps) { @@ -115,7 +115,7 @@ export const getRenderingData = hook('sync', function (bidResponse, options) { export const doRender = hook('sync', function({renderFn, resizeFn, bidResponse, options}) { if (FEATURES.VIDEO && bidResponse.mediaType === VIDEO) { emitAdRenderFail({ - reason: CONSTANTS.AD_RENDER_FAILED_REASON.PREVENT_WRITING_ON_MAIN_DOCUMENT, + reason: AD_RENDER_FAILED_REASON.PREVENT_WRITING_ON_MAIN_DOCUMENT, message: 'Cannot render video ad', bid: bidResponse, id: bidResponse.adId @@ -145,13 +145,13 @@ doRender.before(function (next, args) { export function handleRender({renderFn, resizeFn, adId, options, bidResponse, doc}) { if (bidResponse == null) { emitAdRenderFail({ - reason: CONSTANTS.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, + reason: AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, message: `Cannot find ad '${adId}'`, id: adId }); return; } - if (bidResponse.status === CONSTANTS.BID_STATUS.RENDERED) { + if (bidResponse.status === BID_STATUS.RENDERED) { logWarn(`Ad id ${adId} has been rendered before`); events.emit(STALE_RENDER, bidResponse); if (deepAccess(config.getConfig('auctionOptions'), 'suppressStaleRender')) { @@ -162,7 +162,7 @@ export function handleRender({renderFn, resizeFn, adId, options, bidResponse, do doRender({renderFn, resizeFn, bidResponse, options, doc}); } catch (e) { emitAdRenderFail({ - reason: CONSTANTS.AD_RENDER_FAILED_REASON.EXCEPTION, + reason: AD_RENDER_FAILED_REASON.EXCEPTION, message: e.message, id: adId, bid: bidResponse @@ -198,7 +198,7 @@ export function renderAdDirect(doc, adId, options) { .then( () => emitAdRenderSucceeded({doc, bid, adId: bid.adId}), (e) => { - fail(e?.reason || CONSTANTS.AD_RENDER_FAILED_REASON.EXCEPTION, e?.message) + fail(e?.reason || AD_RENDER_FAILED_REASON.EXCEPTION, e?.message) e?.stack && logError(e); } ); @@ -209,12 +209,12 @@ export function renderAdDirect(doc, adId, options) { } try { if (!adId || !doc) { - fail(CONSTANTS.AD_RENDER_FAILED_REASON.MISSING_DOC_OR_ADID, `missing ${adId ? 'doc' : 'adId'}`); + fail(AD_RENDER_FAILED_REASON.MISSING_DOC_OR_ADID, `missing ${adId ? 'doc' : 'adId'}`); } else { bid = auctionManager.findBidByAdId(adId); if ((doc === document && !inIframe())) { - fail(CONSTANTS.AD_RENDER_FAILED_REASON.PREVENT_WRITING_ON_MAIN_DOCUMENT, `renderAd was prevented from writing to the main document.`); + fail(AD_RENDER_FAILED_REASON.PREVENT_WRITING_ON_MAIN_DOCUMENT, `renderAd was prevented from writing to the main document.`); } else { handleRender({renderFn, resizeFn, adId, options: {clickUrl: options?.clickThrough}, bidResponse: bid, doc}); } diff --git a/src/adapterManager.js b/src/adapterManager.js index 72695be0946..cbabfa4380e 100644 --- a/src/adapterManager.js +++ b/src/adapterManager.js @@ -31,7 +31,7 @@ import {adunitCounter} from './adUnits.js'; import {getRefererInfo} from './refererDetection.js'; import {GDPR_GVLIDS, gdprDataHandler, gppDataHandler, uspDataHandler, } from './consentHandler.js'; import * as events from './events.js'; -import CONSTANTS from './constants.json'; +import { EVENTS, S2S } from './constants.js'; import {useMetrics} from './utils/perfMetrics.js'; import {auctionManager} from './auctionManager.js'; import {MODULE_TYPE_ANALYTICS, MODULE_TYPE_BIDDER, MODULE_TYPE_PREBID} from './activities/modules.js'; @@ -242,7 +242,7 @@ adapterManager.makeBidRequests = hook('sync', function (adUnits, auctionStart, a * emit and pass adunits for external modification * @see {@link https://github.com/prebid/Prebid.js/issues/4149|Issue} */ - events.emit(CONSTANTS.EVENTS.BEFORE_REQUEST_BIDS, adUnits); + events.emit(EVENTS.BEFORE_REQUEST_BIDS, adUnits); if (FEATURES.NATIVE) { decorateAdUnitsWithNativeParams(adUnits); } @@ -300,10 +300,10 @@ adapterManager.makeBidRequests = hook('sync', function (adUnits, auctionStart, a auctionId, bidderRequestId, uniquePbsTid, - bids: hookedGetBids({bidderCode, auctionId, bidderRequestId, 'adUnits': deepClone(adUnitsS2SCopy), src: CONSTANTS.S2S.SRC, metrics}), + bids: hookedGetBids({ bidderCode, auctionId, bidderRequestId, 'adUnits': deepClone(adUnitsS2SCopy), src: S2S.SRC, metrics }), auctionStart: auctionStart, timeout: s2sConfig.timeout, - src: CONSTANTS.S2S.SRC, + src: S2S.SRC, refererInfo, metrics, }, s2sParams); @@ -375,7 +375,7 @@ adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, request } let [clientBidderRequests, serverBidderRequests] = bidRequests.reduce((partitions, bidRequest) => { - partitions[Number(typeof bidRequest.src !== 'undefined' && bidRequest.src === CONSTANTS.S2S.SRC)].push(bidRequest); + partitions[Number(typeof bidRequest.src !== 'undefined' && bidRequest.src === S2S.SRC)].push(bidRequest); return partitions; }, [[], []]); @@ -428,7 +428,7 @@ adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, request // fire BID_REQUESTED event for each s2s bidRequest uniqueServerRequests.forEach(bidRequest => { // add the new sourceTid - events.emit(CONSTANTS.EVENTS.BID_REQUESTED, {...bidRequest, tid: bidRequest.auctionId}); + events.emit(EVENTS.BID_REQUESTED, { ...bidRequest, tid: bidRequest.auctionId }); }); // make bid requests @@ -454,7 +454,7 @@ adapterManager.callBids = (adUnits, bidRequests, addBidResponse, doneCb, request const adapter = _bidderRegistry[bidderRequest.bidderCode]; config.runWithBidder(bidderRequest.bidderCode, () => { logMessage(`CALLING BIDDER`); - events.emit(CONSTANTS.EVENTS.BID_REQUESTED, bidderRequest); + events.emit(EVENTS.BID_REQUESTED, bidderRequest); }); let ajax = ajaxBuilder(requestBidsTimeout, requestCallbacks ? { request: requestCallbacks.request.bind(null, bidderRequest.bidderCode), @@ -630,7 +630,7 @@ function invokeBidderMethod(bidder, method, spec, fn, ...params) { } function tryCallBidderMethod(bidder, method, param) { - if (param?.src !== CONSTANTS.S2S.SRC) { + if (param?.src !== S2S.SRC) { const target = getBidderMethod(bidder, method); if (target != null) { invokeBidderMethod(bidder, method, ...target, param); diff --git a/src/adapters/bidderFactory.js b/src/adapters/bidderFactory.js index 337ae47f338..1d10c3161e5 100644 --- a/src/adapters/bidderFactory.js +++ b/src/adapters/bidderFactory.js @@ -5,7 +5,7 @@ import {createBid} from '../bidfactory.js'; import {userSync} from '../userSync.js'; import {nativeBidIsValid} from '../native.js'; import {isValidVideoBid} from '../video.js'; -import CONSTANTS from '../constants.json'; +import { EVENTS, STATUS, REJECTION_REASON } from '../constants.js'; import * as events from '../events.js'; import {includes} from '../polyfill.js'; import { @@ -256,7 +256,7 @@ export function newBidder(spec) { if (metrics.measureTime('addBidResponse.validate', () => isValid(adUnitCode, bid))) { addBidResponse(adUnitCode, bid); } else { - addBidResponse.reject(adUnitCode, bid, CONSTANTS.REJECTION_REASON.INVALID) + addBidResponse.reject(adUnitCode, bid, REJECTION_REASON.INVALID) } } @@ -266,7 +266,7 @@ export function newBidder(spec) { function afterAllResponses() { done(); config.runWithBidder(spec.code, () => { - events.emit(CONSTANTS.EVENTS.BIDDER_DONE, bidderRequest); + events.emit(EVENTS.BIDDER_DONE, bidderRequest); registerSyncs(responses, bidderRequest.gdprConsent, bidderRequest.uspConsent, bidderRequest.gppConsent); }); } @@ -288,7 +288,7 @@ export function newBidder(spec) { }); processBidderRequests(spec, validBidRequests.map(tidGuard.bidRequest), tidGuard.bidderRequest(bidderRequest), ajax, configEnabledCallback, { - onRequest: requestObject => events.emit(CONSTANTS.EVENTS.BEFORE_BIDDER_HTTP, bidderRequest, requestObject), + onRequest: requestObject => events.emit(EVENTS.BEFORE_BIDDER_HTTP, bidderRequest, requestObject), onResponse: (resp) => { onTimelyResponse(spec.code); responses.push(resp) @@ -307,7 +307,7 @@ export function newBidder(spec) { onTimelyResponse(spec.code); } adapterManager.callBidderError(spec.code, error, bidderRequest) - events.emit(CONSTANTS.EVENTS.BIDDER_ERROR, { error, bidderRequest }); + events.emit(EVENTS.BIDDER_ERROR, { error, bidderRequest }); logError(`Server call for ${spec.code} failed: ${errorMessage} ${error.status}. Continuing without bids.`); }, onBid: (bid) => { @@ -316,18 +316,18 @@ export function newBidder(spec) { bid.adapterCode = bidRequest.bidder; if (isInvalidAlternateBidder(bid.bidderCode, bidRequest.bidder)) { logWarn(`${bid.bidderCode} is not a registered partner or known bidder of ${bidRequest.bidder}, hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings.`); - addBidResponse.reject(bidRequest.adUnitCode, bid, CONSTANTS.REJECTION_REASON.BIDDER_DISALLOWED) + addBidResponse.reject(bidRequest.adUnitCode, bid, REJECTION_REASON.BIDDER_DISALLOWED) return; } // creating a copy of original values as cpm and currency are modified later bid.originalCpm = bid.cpm; bid.originalCurrency = bid.currency; bid.meta = bid.meta || Object.assign({}, bid[bidRequest.bidder]); - const prebidBid = Object.assign(createBid(CONSTANTS.STATUS.GOOD, bidRequest), bid, pick(bidRequest, TIDS)); + const prebidBid = Object.assign(createBid(STATUS.GOOD, bidRequest), bid, pick(bidRequest, TIDS)); addBidWithCode(bidRequest.adUnitCode, prebidBid); } else { logWarn(`Bidder ${spec.code} made bid for unknown request ID: ${bid.requestId}. Ignoring.`); - addBidResponse.reject(null, bid, CONSTANTS.REJECTION_REASON.INVALID_REQUEST_ID); + addBidResponse.reject(null, bid, REJECTION_REASON.INVALID_REQUEST_ID); } }, onCompletion: afterAllResponses, diff --git a/src/auction.js b/src/auction.js index 2d7d350bb7a..26845936797 100644 --- a/src/auction.js +++ b/src/auction.js @@ -94,7 +94,7 @@ import {auctionManager} from './auctionManager.js'; import {bidderSettings} from './bidderSettings.js'; import * as events from './events.js'; import adapterManager from './adapterManager.js'; -import CONSTANTS from './constants.json'; +import { EVENTS, GRANULARITY_OPTIONS, JSON_MAPPING, S2S, TARGETING_KEYS } from './constants.js'; import {defer, GreedyPromise} from './utils/promise.js'; import {useMetrics} from './utils/perfMetrics.js'; import {adjustCpm} from './utils/cpm.js'; @@ -107,7 +107,7 @@ export const AUCTION_IN_PROGRESS = 'inProgress'; export const AUCTION_COMPLETED = 'completed'; // register event for bid adjustment -events.on(CONSTANTS.EVENTS.BID_ADJUSTMENT, function (bid) { +events.on(EVENTS.BID_ADJUSTMENT, function (bid) { adjustBids(bid); }); @@ -196,7 +196,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a if (!timedOut) { clearTimeout(_timeoutTimer); } else { - events.emit(CONSTANTS.EVENTS.AUCTION_TIMEOUT, getProperties()); + events.emit(EVENTS.AUCTION_TIMEOUT, getProperties()); } if (_auctionEnd === undefined) { let timedOutRequests = []; @@ -204,7 +204,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a logMessage(`Auction ${_auctionId} timedOut`); timedOutRequests = _bidderRequests.filter(rq => !_timelyRequests.has(rq.bidderRequestId)).flatMap(br => br.bids) if (timedOutRequests.length) { - events.emit(CONSTANTS.EVENTS.BID_TIMEOUT, timedOutRequests); + events.emit(EVENTS.BID_TIMEOUT, timedOutRequests); } } @@ -215,7 +215,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a metrics.timeBetween('callBids', 'auctionEnd', 'requestBids.callBids'); done.resolve(); - events.emit(CONSTANTS.EVENTS.AUCTION_END, getProperties()); + events.emit(EVENTS.AUCTION_END, getProperties()); bidsBackCallback(_adUnits, function () { try { if (_callback != null) { @@ -293,7 +293,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a _auctionStatus = AUCTION_IN_PROGRESS; - events.emit(CONSTANTS.EVENTS.AUCTION_INIT, getProperties()); + events.emit(EVENTS.AUCTION_INIT, getProperties()); let callbacks = auctionCallbacks(auctionDone, this); adapterManager.callBids(_adUnits, bidRequests, callbacks.addBidResponse, callbacks.adapterDone, { @@ -335,7 +335,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a call.bidRequests.some(bidRequest => { let requests = 1; - let source = (typeof bidRequest.src !== 'undefined' && bidRequest.src === CONSTANTS.S2S.SRC) ? 's2s' + let source = (typeof bidRequest.src !== 'undefined' && bidRequest.src === S2S.SRC) ? 's2s' : bidRequest.bidderCode; // if we have no previous info on this source just let them through if (sourceInfo[source]) { @@ -381,7 +381,7 @@ export function newAuction({adUnits, adUnitCodes, callback, cbTimeout, labels, a adapterManager.callSetTargetingBidder(bid.adapterCode || bid.bidder, bid); } - events.on(CONSTANTS.EVENTS.SEAT_NON_BID, (event) => { + events.on(EVENTS.SEAT_NON_BID, (event) => { if (event.auctionId === _auctionId) { addNonBids(event.seatnonbid) } @@ -465,7 +465,7 @@ export function auctionCallbacks(auctionDone, auctionInstance, {index = auctionM function acceptBidResponse(adUnitCode, bid) { handleBidResponse(adUnitCode, bid, (done) => { let bidResponse = getPreparedBidForAuction(bid); - events.emit(CONSTANTS.EVENTS.BID_ACCEPTED, bidResponse); + events.emit(EVENTS.BID_ACCEPTED, bidResponse); if (FEATURES.VIDEO && bidResponse.mediaType === VIDEO) { tryAddVideoBid(auctionInstance, bidResponse, done); } else { @@ -482,7 +482,7 @@ export function auctionCallbacks(auctionDone, auctionInstance, {index = auctionM return handleBidResponse(adUnitCode, bid, (done) => { bid.rejectionReason = reason; logWarn(`Bid from ${bid.bidder || 'unknown bidder'} was rejected: ${reason}`, bid) - events.emit(CONSTANTS.EVENTS.BID_REJECTED, bid); + events.emit(EVENTS.BID_REJECTED, bid); auctionInstance.addBidRejected(bid); done(); }) @@ -507,7 +507,7 @@ export function auctionCallbacks(auctionDone, auctionInstance, {index = auctionM bidderRequest.bids.forEach(bid => { if (!bidResponseMap[bid.bidId]) { auctionInstance.addNoBid(bid); - events.emit(CONSTANTS.EVENTS.NO_BID, bid); + events.emit(EVENTS.NO_BID, bid); } }); @@ -546,7 +546,7 @@ export function addBidToAuction(auctionInstance, bidResponse) { useMetrics(bidResponse.metrics).timeSince('addBidResponse', 'addBidResponse.total'); auctionInstance.addBidReceived(bidResponse); - events.emit(CONSTANTS.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); } // Video bids may fail if the cache is down, or there's trouble on the network. @@ -672,7 +672,7 @@ function getPreparedBidForAuction(bid, {index = auctionManager.index} = {}) { // // CAREFUL: Publishers rely on certain bid properties to be available (like cpm), // but others to not be set yet (like priceStrings). See #1372 and #1389. - events.emit(CONSTANTS.EVENTS.BID_ADJUSTMENT, bid); + events.emit(EVENTS.BID_ADJUSTMENT, bid); // a publisher-defined renderer can be used to render bids const bidRenderer = index.getBidRequest(bid)?.renderer || index.getAdUnit(bid).renderer; @@ -767,17 +767,17 @@ export const getPriceGranularity = (bid, {index = auctionManager.index} = {}) => export const getPriceByGranularity = (granularity) => { return (bid) => { const bidGranularity = granularity || getPriceGranularity(bid); - if (bidGranularity === CONSTANTS.GRANULARITY_OPTIONS.AUTO) { + if (bidGranularity === GRANULARITY_OPTIONS.AUTO) { return bid.pbAg; - } else if (bidGranularity === CONSTANTS.GRANULARITY_OPTIONS.DENSE) { + } else if (bidGranularity === GRANULARITY_OPTIONS.DENSE) { return bid.pbDg; - } else if (bidGranularity === CONSTANTS.GRANULARITY_OPTIONS.LOW) { + } else if (bidGranularity === GRANULARITY_OPTIONS.LOW) { return bid.pbLg; - } else if (bidGranularity === CONSTANTS.GRANULARITY_OPTIONS.MEDIUM) { + } else if (bidGranularity === GRANULARITY_OPTIONS.MEDIUM) { return bid.pbMg; - } else if (bidGranularity === CONSTANTS.GRANULARITY_OPTIONS.HIGH) { + } else if (bidGranularity === GRANULARITY_OPTIONS.HIGH) { return bid.pbHg; - } else if (bidGranularity === CONSTANTS.GRANULARITY_OPTIONS.CUSTOM) { + } else if (bidGranularity === GRANULARITY_OPTIONS.CUSTOM) { return bid.pbCg; } } @@ -838,7 +838,6 @@ function createKeyVal(key, value) { } function defaultAdserverTargeting() { - const TARGETING_KEYS = CONSTANTS.TARGETING_KEYS; return [ createKeyVal(TARGETING_KEYS.BIDDER, 'bidderCode'), createKeyVal(TARGETING_KEYS.AD_ID, 'adId'), @@ -860,15 +859,14 @@ function defaultAdserverTargeting() { * @returns {*} */ export function getStandardBidderSettings(mediaType, bidderCode) { - const TARGETING_KEYS = CONSTANTS.TARGETING_KEYS; const standardSettings = Object.assign({}, bidderSettings.settingsFor(null)); - if (!standardSettings[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING]) { - standardSettings[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING] = defaultAdserverTargeting(); + if (!standardSettings[JSON_MAPPING.ADSERVER_TARGETING]) { + standardSettings[JSON_MAPPING.ADSERVER_TARGETING] = defaultAdserverTargeting(); } if (FEATURES.VIDEO && mediaType === 'video') { - const adserverTargeting = standardSettings[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING].slice(); - standardSettings[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING] = adserverTargeting; + const adserverTargeting = standardSettings[JSON_MAPPING.ADSERVER_TARGETING].slice(); + standardSettings[JSON_MAPPING.ADSERVER_TARGETING] = adserverTargeting; // Adding hb_uuid + hb_cache_id [TARGETING_KEYS.UUID, TARGETING_KEYS.CACHE_ID].forEach(targetingKeyVal => { @@ -906,7 +904,7 @@ export function getKeyValueTargetingPairs(bidderCode, custBidObj, {index = aucti setKeys(keyValues, standardSettings, custBidObj, bidRequest); // 2) set keys from specific bidder setting override if they exist - if (bidderCode && bidderSettings.getOwn(bidderCode, CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING)) { + if (bidderCode && bidderSettings.getOwn(bidderCode, JSON_MAPPING.ADSERVER_TARGETING)) { setKeys(keyValues, bidderSettings.ownSettingsFor(bidderCode), custBidObj, bidRequest); custBidObj.sendStandardTargeting = bidderSettings.get(bidderCode, 'sendStandardTargeting'); } @@ -920,7 +918,7 @@ export function getKeyValueTargetingPairs(bidderCode, custBidObj, {index = aucti } function setKeys(keyValues, bidderSettings, custBidObj, bidReq) { - var targeting = bidderSettings[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING]; + var targeting = bidderSettings[JSON_MAPPING.ADSERVER_TARGETING]; custBidObj.size = custBidObj.getSize(); (targeting || []).forEach(function (kvPair) { @@ -941,7 +939,7 @@ function setKeys(keyValues, bidderSettings, custBidObj, bidReq) { if ( ((typeof bidderSettings.suppressEmptyKeys !== 'undefined' && bidderSettings.suppressEmptyKeys === true) || - key === CONSTANTS.TARGETING_KEYS.DEAL || key === CONSTANTS.TARGETING_KEYS.ACAT || key === CONSTANTS.TARGETING_KEYS.DSP || key === CONSTANTS.TARGETING_KEYS.CRID) && // hb_deal & hb_acat are suppressed automatically if not set + key === TARGETING_KEYS.DEAL || key === TARGETING_KEYS.ACAT || key === TARGETING_KEYS.DSP || key === TARGETING_KEYS.CRID) && // hb_deal & hb_acat are suppressed automatically if not set ( isEmptyStr(value) || value === null || diff --git a/src/auctionManager.js b/src/auctionManager.js index 2d6e0ffbfd9..a1ab1a859da 100644 --- a/src/auctionManager.js +++ b/src/auctionManager.js @@ -23,7 +23,7 @@ import { uniques, logWarn } from './utils.js'; import { newAuction, getStandardBidderSettings, AUCTION_COMPLETED } from './auction.js'; import {AuctionIndex} from './auctionIndex.js'; -import CONSTANTS from './constants.json'; +import { BID_STATUS, JSON_MAPPING } from './constants.js'; import {useMetrics} from './utils/perfMetrics.js'; import {ttlCollection} from './utils/ttlCollection.js'; import {getTTL, onTTLBufferChange} from './bidTTL.js'; @@ -77,7 +77,7 @@ export function newAuctionManager() { metrics.timeBetween('requestBids', 'bidWon', 'render.e2e'); const auction = getAuction(bid.auctionId); if (auction) { - bid.status = CONSTANTS.BID_STATUS.RENDERED; + bid.status = BID_STATUS.RENDERED; auction.addWinningBid(bid); } else { logWarn(`Auction not found when adding winning bid`); @@ -134,14 +134,14 @@ export function newAuctionManager() { }; auctionManager.getStandardBidderAdServerTargeting = function() { - return getStandardBidderSettings()[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING]; + return getStandardBidderSettings()[JSON_MAPPING.ADSERVER_TARGETING]; }; auctionManager.setStatusForBids = function(adId, status) { let bid = auctionManager.findBidByAdId(adId); if (bid) bid.status = status; - if (bid && status === CONSTANTS.BID_STATUS.BID_TARGETING_SET) { + if (bid && status === BID_STATUS.BID_TARGETING_SET) { const auction = getAuction(bid.auctionId); if (auction) auction.setBidTargeting(bid); } diff --git a/src/bidderSettings.js b/src/bidderSettings.js index b39bf480511..4d97ed2b95e 100644 --- a/src/bidderSettings.js +++ b/src/bidderSettings.js @@ -1,6 +1,6 @@ import {deepAccess, mergeDeep} from './utils.js'; import {getGlobal} from './prebidGlobal.js'; -import CONSTANTS from './constants.json'; +import { JSON_MAPPING } from './constants.js'; export class ScopedSettings { constructor(getSettings, defaultScope) { @@ -65,4 +65,4 @@ export class ScopedSettings { } } -export const bidderSettings = new ScopedSettings(() => getGlobal().bidderSettings || {}, CONSTANTS.JSON_MAPPING.BD_SETTING_STANDARD); +export const bidderSettings = new ScopedSettings(() => getGlobal().bidderSettings || {}, JSON_MAPPING.BD_SETTING_STANDARD); diff --git a/src/config.js b/src/config.js index e3bb5f146ed..f4dd0de9612 100644 --- a/src/config.js +++ b/src/config.js @@ -27,9 +27,9 @@ import { logWarn, mergeDeep } from './utils.js'; -import CONSTANTS from './constants.json'; +import {DEBUG_MODE} from './constants.js'; -const DEFAULT_DEBUG = getParameterByName(CONSTANTS.DEBUG_MODE).toUpperCase() === 'TRUE'; +const DEFAULT_DEBUG = getParameterByName(DEBUG_MODE).toUpperCase() === 'TRUE'; const DEFAULT_BIDDER_TIMEOUT = 3000; const DEFAULT_ENABLE_SEND_ALL_BIDS = true; const DEFAULT_DISABLE_AJAX_TIMEOUT = false; diff --git a/src/constants.js b/src/constants.js new file mode 100644 index 00000000000..b40b7ddb9b0 --- /dev/null +++ b/src/constants.js @@ -0,0 +1,190 @@ +export const JSON_MAPPING = { + PL_CODE: 'code', + PL_SIZE: 'sizes', + PL_BIDS: 'bids', + BD_BIDDER: 'bidder', + BD_ID: 'paramsd', + BD_PL_ID: 'placementId', + ADSERVER_TARGETING: 'adserverTargeting', + BD_SETTING_STANDARD: 'standard' +}; + +export const DEBUG_MODE = 'pbjs_debug'; + +export const STATUS = { + GOOD: 1 +}; + +export const EVENTS = { + AUCTION_INIT: 'auctionInit', + AUCTION_TIMEOUT: 'auctionTimeout', + AUCTION_END: 'auctionEnd', + BID_ADJUSTMENT: 'bidAdjustment', + BID_TIMEOUT: 'bidTimeout', + BID_REQUESTED: 'bidRequested', + BID_RESPONSE: 'bidResponse', + BID_REJECTED: 'bidRejected', + NO_BID: 'noBid', + SEAT_NON_BID: 'seatNonBid', + BID_WON: 'bidWon', + BIDDER_DONE: 'bidderDone', + BIDDER_ERROR: 'bidderError', + SET_TARGETING: 'setTargeting', + BEFORE_REQUEST_BIDS: 'beforeRequestBids', + BEFORE_BIDDER_HTTP: 'beforeBidderHttp', + REQUEST_BIDS: 'requestBids', + ADD_AD_UNITS: 'addAdUnits', + AD_RENDER_FAILED: 'adRenderFailed', + AD_RENDER_SUCCEEDED: 'adRenderSucceeded', + TCF2_ENFORCEMENT: 'tcf2Enforcement', + AUCTION_DEBUG: 'auctionDebug', + BID_VIEWABLE: 'bidViewable', + STALE_RENDER: 'staleRender', + BILLABLE_EVENT: 'billableEvent', + BID_ACCEPTED: 'bidAccepted' +}; + +export const AD_RENDER_FAILED_REASON = { + PREVENT_WRITING_ON_MAIN_DOCUMENT: 'preventWritingOnMainDocument', + NO_AD: 'noAd', + EXCEPTION: 'exception', + CANNOT_FIND_AD: 'cannotFindAd', + MISSING_DOC_OR_ADID: 'missingDocOrAdid' +}; + +export const EVENT_ID_PATHS = { + bidWon: 'adUnitCode' +}; + +export const GRANULARITY_OPTIONS = { + LOW: 'low', + MEDIUM: 'medium', + HIGH: 'high', + AUTO: 'auto', + DENSE: 'dense', + CUSTOM: 'custom' +}; + +export const TARGETING_KEYS = { + BIDDER: 'hb_bidder', + AD_ID: 'hb_adid', + PRICE_BUCKET: 'hb_pb', + SIZE: 'hb_size', + DEAL: 'hb_deal', + SOURCE: 'hb_source', + FORMAT: 'hb_format', + UUID: 'hb_uuid', + CACHE_ID: 'hb_cache_id', + CACHE_HOST: 'hb_cache_host', + ADOMAIN: 'hb_adomain', + ACAT: 'hb_acat', + CRID: 'hb_crid', + DSP: 'hb_dsp' +}; + +export const DEFAULT_TARGETING_KEYS = { + BIDDER: 'hb_bidder', + AD_ID: 'hb_adid', + PRICE_BUCKET: 'hb_pb', + SIZE: 'hb_size', + DEAL: 'hb_deal', + FORMAT: 'hb_format', + UUID: 'hb_uuid', + CACHE_HOST: 'hb_cache_host' +}; + +export const NATIVE_KEYS = { + title: 'hb_native_title', + body: 'hb_native_body', + body2: 'hb_native_body2', + privacyLink: 'hb_native_privacy', + privacyIcon: 'hb_native_privicon', + sponsoredBy: 'hb_native_brand', + image: 'hb_native_image', + icon: 'hb_native_icon', + clickUrl: 'hb_native_linkurl', + displayUrl: 'hb_native_displayurl', + cta: 'hb_native_cta', + rating: 'hb_native_rating', + address: 'hb_native_address', + downloads: 'hb_native_downloads', + likes: 'hb_native_likes', + phone: 'hb_native_phone', + price: 'hb_native_price', + salePrice: 'hb_native_saleprice', + rendererUrl: 'hb_renderer_url', + adTemplate: 'hb_adTemplate' +}; + +export const S2S = { + SRC: 's2s', + DEFAULT_ENDPOINT: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction', + SYNCED_BIDDERS_KEY: 'pbjsSyncs' +}; + +export const BID_STATUS = { + BID_TARGETING_SET: 'targetingSet', + RENDERED: 'rendered', + BID_REJECTED: 'bidRejected' +}; + +export const REJECTION_REASON = { + INVALID: 'Bid has missing or invalid properties', + INVALID_REQUEST_ID: 'Invalid request ID', + BIDDER_DISALLOWED: 'Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes', + FLOOR_NOT_MET: 'Bid does not meet price floor', + CANNOT_CONVERT_CURRENCY: 'Unable to convert currency', + DSA_REQUIRED: 'Bid does not provide required DSA transparency info', + DSA_MISMATCH: 'Bid indicates inappropriate DSA rendering method' +}; + +export const PREBID_NATIVE_DATA_KEYS_TO_ORTB = { + body: 'desc', + body2: 'desc2', + sponsoredBy: 'sponsored', + cta: 'ctatext', + rating: 'rating', + address: 'address', + downloads: 'downloads', + likes: 'likes', + phone: 'phone', + price: 'price', + salePrice: 'saleprice', + displayUrl: 'displayurl' +}; + +export const NATIVE_ASSET_TYPES = { + sponsored: 1, + desc: 2, + rating: 3, + likes: 4, + downloads: 5, + price: 6, + saleprice: 7, + phone: 8, + address: 9, + desc2: 10, + displayurl: 11, + ctatext: 12 +}; + +export const NATIVE_IMAGE_TYPES = { + ICON: 1, + MAIN: 3 +}; + +export const NATIVE_KEYS_THAT_ARE_NOT_ASSETS = [ + 'privacyIcon', + 'clickUrl', + 'sendTargetingKeys', + 'adTemplate', + 'rendererUrl', + 'type' +]; + +export const MESSAGES = { + REQUEST: 'Prebid Request', + RESPONSE: 'Prebid Response', + NATIVE: 'Prebid Native', + EVENT: 'Prebid Event' +}; diff --git a/src/constants.json b/src/constants.json deleted file mode 100644 index ceac779a508..00000000000 --- a/src/constants.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "JSON_MAPPING": { - "PL_CODE": "code", - "PL_SIZE": "sizes", - "PL_BIDS": "bids", - "BD_BIDDER": "bidder", - "BD_ID": "paramsd", - "BD_PL_ID": "placementId", - "ADSERVER_TARGETING": "adserverTargeting", - "BD_SETTING_STANDARD": "standard" - }, - "FLOOR_SKIPPED_REASON": { - "NOT_FOUND": "not_found", - "RANDOM": "random" - }, - "DEBUG_MODE": "pbjs_debug", - "STATUS": { - "GOOD": 1 - }, - "CB": { - "TYPE": { - "ALL_BIDS_BACK": "allRequestedBidsBack", - "AD_UNIT_BIDS_BACK": "adUnitBidsBack", - "BID_WON": "bidWon", - "REQUEST_BIDS": "requestBids" - } - }, - "EVENTS": { - "AUCTION_INIT": "auctionInit", - "AUCTION_TIMEOUT": "auctionTimeout", - "AUCTION_END": "auctionEnd", - "BID_ADJUSTMENT": "bidAdjustment", - "BID_TIMEOUT": "bidTimeout", - "BID_REQUESTED": "bidRequested", - "BID_RESPONSE": "bidResponse", - "BID_REJECTED": "bidRejected", - "NO_BID": "noBid", - "SEAT_NON_BID": "seatNonBid", - "BID_WON": "bidWon", - "BIDDER_DONE": "bidderDone", - "BIDDER_ERROR": "bidderError", - "SET_TARGETING": "setTargeting", - "BEFORE_REQUEST_BIDS": "beforeRequestBids", - "BEFORE_BIDDER_HTTP": "beforeBidderHttp", - "REQUEST_BIDS": "requestBids", - "ADD_AD_UNITS": "addAdUnits", - "AD_RENDER_FAILED": "adRenderFailed", - "AD_RENDER_SUCCEEDED": "adRenderSucceeded", - "TCF2_ENFORCEMENT": "tcf2Enforcement", - "AUCTION_DEBUG": "auctionDebug", - "BID_VIEWABLE": "bidViewable", - "STALE_RENDER": "staleRender", - "BILLABLE_EVENT": "billableEvent", - "BID_ACCEPTED": "bidAccepted" - }, - "AD_RENDER_FAILED_REASON": { - "PREVENT_WRITING_ON_MAIN_DOCUMENT": "preventWritingOnMainDocument", - "NO_AD": "noAd", - "EXCEPTION": "exception", - "CANNOT_FIND_AD": "cannotFindAd", - "MISSING_DOC_OR_ADID": "missingDocOrAdid" - }, - "EVENT_ID_PATHS": { - "bidWon": "adUnitCode" - }, - "GRANULARITY_OPTIONS": { - "LOW": "low", - "MEDIUM": "medium", - "HIGH": "high", - "AUTO": "auto", - "DENSE": "dense", - "CUSTOM": "custom" - }, - "TARGETING_KEYS": { - "BIDDER": "hb_bidder", - "AD_ID": "hb_adid", - "PRICE_BUCKET": "hb_pb", - "SIZE": "hb_size", - "DEAL": "hb_deal", - "SOURCE": "hb_source", - "FORMAT": "hb_format", - "UUID": "hb_uuid", - "CACHE_ID": "hb_cache_id", - "CACHE_HOST": "hb_cache_host", - "ADOMAIN": "hb_adomain", - "ACAT": "hb_acat", - "CRID": "hb_crid", - "DSP": "hb_dsp" - }, - "DEFAULT_TARGETING_KEYS": { - "BIDDER": "hb_bidder", - "AD_ID": "hb_adid", - "PRICE_BUCKET": "hb_pb", - "SIZE": "hb_size", - "DEAL": "hb_deal", - "FORMAT": "hb_format", - "UUID": "hb_uuid", - "CACHE_HOST": "hb_cache_host" - }, - "NATIVE_KEYS": { - "title": "hb_native_title", - "body": "hb_native_body", - "body2": "hb_native_body2", - "privacyLink": "hb_native_privacy", - "privacyIcon": "hb_native_privicon", - "sponsoredBy": "hb_native_brand", - "image": "hb_native_image", - "icon": "hb_native_icon", - "clickUrl": "hb_native_linkurl", - "displayUrl": "hb_native_displayurl", - "cta": "hb_native_cta", - "rating": "hb_native_rating", - "address": "hb_native_address", - "downloads": "hb_native_downloads", - "likes": "hb_native_likes", - "phone": "hb_native_phone", - "price": "hb_native_price", - "salePrice": "hb_native_saleprice", - "rendererUrl": "hb_renderer_url", - "adTemplate": "hb_adTemplate" - }, - "S2S": { - "SRC": "s2s", - "DEFAULT_ENDPOINT": "https://prebid.adnxs.com/pbs/v1/openrtb2/auction", - "SYNCED_BIDDERS_KEY": "pbjsSyncs" - }, - "BID_STATUS": { - "BID_TARGETING_SET": "targetingSet", - "RENDERED": "rendered", - "BID_REJECTED": "bidRejected" - }, - "REJECTION_REASON": { - "INVALID": "Bid has missing or invalid properties", - "INVALID_REQUEST_ID": "Invalid request ID", - "BIDDER_DISALLOWED": "Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes", - "FLOOR_NOT_MET": "Bid does not meet price floor", - "CANNOT_CONVERT_CURRENCY": "Unable to convert currency", - "DSA_REQUIRED": "Bid does not provide required DSA transparency info", - "DSA_MISMATCH": "Bid indicates inappropriate DSA rendering method" - }, - "PREBID_NATIVE_DATA_KEYS_TO_ORTB": { - "body": "desc", - "body2": "desc2", - "sponsoredBy": "sponsored", - "cta": "ctatext", - "rating": "rating", - "address": "address", - "downloads": "downloads", - "likes": "likes", - "phone": "phone", - "price": "price", - "salePrice": "saleprice", - "displayUrl": "displayurl" - }, - "NATIVE_ASSET_TYPES": { - "sponsored": 1, - "desc": 2, - "rating": 3, - "likes": 4, - "downloads": 5, - "price": 6, - "saleprice": 7, - "phone": 8, - "address": 9, - "desc2": 10, - "displayurl": 11, - "ctatext": 12 - }, - "NATIVE_IMAGE_TYPES": { - "ICON": 1, - "MAIN": 3 - }, - "NATIVE_KEYS_THAT_ARE_NOT_ASSETS": [ - "privacyIcon", - "clickUrl", - "sendTargetingKeys", - "adTemplate", - "rendererUrl", - "type" - ], - "FLOOR_VALUES": { - "NO_DATA": "noData", - "AD_UNIT": "adUnit", - "SET_CONFIG": "setConfig", - "FETCH": "fetch", - "SUCCESS": "success", - "ERROR": "error", - "TIMEOUT": "timeout" - }, - "MESSAGES": { - "REQUEST": "Prebid Request", - "RESPONSE": "Prebid Response", - "NATIVE": "Prebid Native", - "EVENT": "Prebid Event" - } -} diff --git a/src/events.js b/src/events.js index d98991180bf..38e7f633d16 100644 --- a/src/events.js +++ b/src/events.js @@ -2,7 +2,7 @@ * events.js */ import * as utils from './utils.js' -import CONSTANTS from './constants.json'; +import { EVENTS, EVENT_ID_PATHS } from './constants.js'; import {ttlCollection} from './utils/ttlCollection.js'; import {config} from './config.js'; const TTL_CONFIG = 'eventHistoryTTL'; @@ -28,9 +28,9 @@ let slice = Array.prototype.slice; let push = Array.prototype.push; // define entire events -let allEvents = Object.values(CONSTANTS.EVENTS); +let allEvents = Object.values(EVENTS); -const idPaths = CONSTANTS.EVENT_ID_PATHS; +const idPaths = EVENT_ID_PATHS; const _public = (function () { let _handlers = {}; diff --git a/src/native.js b/src/native.js index 1b6e13c77fc..f001200000d 100644 --- a/src/native.js +++ b/src/native.js @@ -13,7 +13,7 @@ import { } from './utils.js'; import {includes} from './polyfill.js'; import {auctionManager} from './auctionManager.js'; -import CONSTANTS from './constants.json'; +import {NATIVE_ASSET_TYPES, NATIVE_IMAGE_TYPES, PREBID_NATIVE_DATA_KEYS_TO_ORTB, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS} from './constants.js'; import {NATIVE} from './mediaTypes.js'; /** @@ -23,8 +23,8 @@ import {NATIVE} from './mediaTypes.js'; export const nativeAdapters = []; -export const NATIVE_TARGETING_KEYS = Object.keys(CONSTANTS.NATIVE_KEYS).map( - key => CONSTANTS.NATIVE_KEYS[key] +export const NATIVE_TARGETING_KEYS = Object.keys(NATIVE_KEYS).map( + key => NATIVE_KEYS[key] ); export const IMAGE = { @@ -84,8 +84,6 @@ const SUPPORTED_TYPES = { image: IMAGE }; -const { NATIVE_ASSET_TYPES, NATIVE_IMAGE_TYPES, PREBID_NATIVE_DATA_KEYS_TO_ORTB, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS } = CONSTANTS; - // inverse native maps useful for converting to legacy const PREBID_NATIVE_DATA_KEYS_TO_ORTB_INVERSE = inverse(PREBID_NATIVE_DATA_KEYS_TO_ORTB); const NATIVE_ASSET_TYPES_INVERSE = inverse(NATIVE_ASSET_TYPES); @@ -425,7 +423,7 @@ export function getNativeRenderingData(bid, adUnit, keys) { const data = { ...getDefinedParams(bid.native, ['rendererUrl', 'adTemplate']), assets: getNativeAssets(bid.native, keys), - nativeKeys: CONSTANTS.NATIVE_KEYS + nativeKeys: NATIVE_KEYS }; if (bid.native.ortb) { data.ortb = bid.native.ortb; @@ -443,7 +441,7 @@ function assetsMessage(data, adObject, keys, {index = auctionManager.index} = {} }; } -const NATIVE_KEYS_INVERTED = Object.fromEntries(Object.entries(CONSTANTS.NATIVE_KEYS).map(([k, v]) => [v, k])); +const NATIVE_KEYS_INVERTED = Object.fromEntries(Object.entries(NATIVE_KEYS).map(([k, v]) => [v, k])); /** * Constructs a message object containing asset values for each of the @@ -476,7 +474,7 @@ function getNativeKeys(adUnit) { } return { - ...CONSTANTS.NATIVE_KEYS, + ...NATIVE_KEYS, ...extraNativeKeys } } diff --git a/src/prebid.js b/src/prebid.js index 750a4bdee1a..e96c0b36c9f 100644 --- a/src/prebid.js +++ b/src/prebid.js @@ -34,7 +34,7 @@ import {adunitCounter} from './adUnits.js'; import {createBid} from './bidfactory.js'; import {storageCallbacks} from './storageManager.js'; import {default as adapterManager, getS2SBidderSet} from './adapterManager.js'; -import CONSTANTS from './constants.json'; +import { BID_STATUS, EVENTS, NATIVE_KEYS } from './constants.js'; import * as events from './events.js'; import {newMetrics, useMetrics} from './utils/perfMetrics.js'; import {defer, GreedyPromise} from './utils/promise.js'; @@ -48,7 +48,7 @@ const pbjsInstance = getGlobal(); const { triggerUserSyncs } = userSync; /* private variables */ -const { ADD_AD_UNITS, REQUEST_BIDS, SET_TARGETING } = CONSTANTS.EVENTS; +const { ADD_AD_UNITS, REQUEST_BIDS, SET_TARGETING } = EVENTS; const eventValidators = { bidWon: checkDefinedPlacement @@ -143,7 +143,7 @@ function validateNativeMediaType(adUnit) { const native = validatedAdUnit.mediaTypes.native; // if native assets are specified in OpenRTB format, remove legacy assets and print a warn. if (native.ortb) { - const legacyNativeKeys = Object.keys(CONSTANTS.NATIVE_KEYS).filter(key => CONSTANTS.NATIVE_KEYS[key].includes('hb_native_')); + const legacyNativeKeys = Object.keys(NATIVE_KEYS).filter(key => NATIVE_KEYS[key].includes('hb_native_')); const nativeKeys = Object.keys(native); const intersection = nativeKeys.filter(nativeKey => legacyNativeKeys.includes(nativeKey)); if (intersection.length > 0) { @@ -173,7 +173,7 @@ function validateAdUnitPos(adUnit, mediaType) { let warning = `Value of property 'pos' on ad unit ${adUnit.code} should be of type: Number`; logWarn(warning); - events.emit(CONSTANTS.EVENTS.AUCTION_DEBUG, {type: 'WARNING', arguments: warning}); + events.emit(EVENTS.AUCTION_DEBUG, { type: 'WARNING', arguments: warning }); delete adUnit.mediaTypes[mediaType].pos; } @@ -416,7 +416,7 @@ pbjsInstance.setTargetingForGPTAsync = function (adUnit, customSlotMatching) { Object.keys(targetingSet).forEach((adUnitCode) => { Object.keys(targetingSet[adUnitCode]).forEach((targetingKey) => { if (targetingKey === 'hb_adid') { - auctionManager.setStatusForBids(targetingSet[adUnitCode][targetingKey], CONSTANTS.BID_STATUS.BID_TARGETING_SET); + auctionManager.setStatusForBids(targetingSet[adUnitCode][targetingKey], BID_STATUS.BID_TARGETING_SET); } }); }); @@ -857,7 +857,7 @@ pbjsInstance.getAllWinningBids = function () { */ pbjsInstance.getAllPrebidWinningBids = function () { return auctionManager.getBidsReceived() - .filter(bid => bid.status === CONSTANTS.BID_STATUS.BID_TARGETING_SET); + .filter(bid => bid.status === BID_STATUS.BID_TARGETING_SET); }; /** diff --git a/src/secureCreatives.js b/src/secureCreatives.js index 1880f56f474..96ace0792e4 100644 --- a/src/secureCreatives.js +++ b/src/secureCreatives.js @@ -5,16 +5,16 @@ import * as events from './events.js'; import {getAllAssetsMessage, getAssetMessage} from './native.js'; -import CONSTANTS from './constants.json'; +import { BID_STATUS, EVENTS, MESSAGES } from './constants.js'; import {isApnGetTagDefined, isGptPubadsDefined, logError, logWarn} from './utils.js'; import {auctionManager} from './auctionManager.js'; import {find, includes} from './polyfill.js'; import {handleCreativeEvent, handleNativeMessage, handleRender} from './adRendering.js'; import {getCreativeRendererSource} from './creativeRenderers.js'; -const {REQUEST, RESPONSE, NATIVE, EVENT} = CONSTANTS.MESSAGES; +const { REQUEST, RESPONSE, NATIVE, EVENT } = MESSAGES; -const BID_WON = CONSTANTS.EVENTS.BID_WON; +const BID_WON = EVENTS.BID_WON; const HANDLER_MAP = { [REQUEST]: handleRenderRequest, @@ -99,7 +99,7 @@ function handleNativeRequest(reply, data, adObject) { return; } - if (adObject.status !== CONSTANTS.BID_STATUS.RENDERED) { + if (adObject.status !== BID_STATUS.RENDERED) { auctionManager.addWinningBid(adObject); events.emit(BID_WON, adObject); } @@ -121,7 +121,7 @@ function handleEventRequest(reply, data, adObject) { logError(`Cannot find ad '${data.adId}' for x-origin event request`); return; } - if (adObject.status !== CONSTANTS.BID_STATUS.RENDERED) { + if (adObject.status !== BID_STATUS.RENDERED) { logWarn(`Received x-origin event request without corresponding render request for ad '${adObject.adId}'`); return; } diff --git a/src/targeting.js b/src/targeting.js index ddbc3cebaf3..acb3ddb09ff 100644 --- a/src/targeting.js +++ b/src/targeting.js @@ -21,7 +21,7 @@ import {ADPOD} from './mediaTypes.js'; import {hook} from './hook.js'; import {bidderSettings} from './bidderSettings.js'; import {find, includes} from './polyfill.js'; -import CONSTANTS from './constants.json'; +import { BID_STATUS, JSON_MAPPING, DEFAULT_TARGETING_KEYS, TARGETING_KEYS, NATIVE_KEYS, STATUS } from './constants.js'; import {getHighestCpm, getOldestHighestCpmBid} from './utils/reducers.js'; import {getTTL} from './bidTTL.js'; @@ -33,19 +33,19 @@ const CFG_ALLOW_TARGETING_KEYS = `targetingControls.allowTargetingKeys`; const CFG_ADD_TARGETING_KEYS = `targetingControls.addTargetingKeys`; const TARGETING_KEY_CONFIGURATION_ERROR_MSG = `Only one of "${CFG_ALLOW_TARGETING_KEYS}" or "${CFG_ADD_TARGETING_KEYS}" can be set`; -export const TARGETING_KEYS = Object.keys(CONSTANTS.TARGETING_KEYS).map( - key => CONSTANTS.TARGETING_KEYS[key] +export const TARGETING_KEYS_ARR = Object.keys(TARGETING_KEYS).map( + key => TARGETING_KEYS[key] ); // return unexpired bids const isBidNotExpired = (bid) => (bid.responseTimestamp + getTTL(bid) * 1000) > timestamp(); // return bids whose status is not set. Winning bids can only have a status of `rendered`. -const isUnusedBid = (bid) => bid && ((bid.status && !includes([CONSTANTS.BID_STATUS.RENDERED], bid.status)) || !bid.status); +const isUnusedBid = (bid) => bid && ((bid.status && !includes([BID_STATUS.RENDERED], bid.status)) || !bid.status); export let filters = { isActualBid(bid) { - return bid.getStatusCode() === CONSTANTS.STATUS.GOOD + return bid.getStatusCode() === STATUS.GOOD }, isBidNotExpired, isUnusedBid @@ -195,7 +195,7 @@ export function newTargeting(auctionManager) { */ function getDealBids(adUnitCodes, bidsReceived) { if (config.getConfig('targetingControls.alwaysIncludeDeals') === true) { - const standardKeys = FEATURES.NATIVE ? TARGETING_KEYS.concat(NATIVE_TARGETING_KEYS) : TARGETING_KEYS.slice(); + const standardKeys = FEATURES.NATIVE ? TARGETING_KEYS_ARR.concat(NATIVE_TARGETING_KEYS) : TARGETING_KEYS_ARR.slice(); // we only want the top bid from bidders who have multiple entries per ad unit code const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm); @@ -221,7 +221,7 @@ export function newTargeting(auctionManager) { * @return {targetingArray} filtered targeting */ function getAllowedTargetingKeyValues(targeting, allowedKeys) { - const defaultKeyring = Object.assign({}, CONSTANTS.TARGETING_KEYS, CONSTANTS.NATIVE_KEYS); + const defaultKeyring = Object.assign({}, TARGETING_KEYS, NATIVE_KEYS); const defaultKeys = Object.keys(defaultKeyring); const keyDispositions = {}; logInfo(`allowTargetingKeys - allowed keys [ ${allowedKeys.map(k => defaultKeyring[k]).join(', ')} ]`); @@ -282,7 +282,7 @@ export function newTargeting(auctionManager) { }); }); - const defaultKeys = Object.keys(Object.assign({}, CONSTANTS.DEFAULT_TARGETING_KEYS, CONSTANTS.NATIVE_KEYS)); + const defaultKeys = Object.keys(Object.assign({}, DEFAULT_TARGETING_KEYS, NATIVE_KEYS)); let allowedKeys = config.getConfig(CFG_ALLOW_TARGETING_KEYS); const addedKeys = config.getConfig(CFG_ADD_TARGETING_KEYS); @@ -547,7 +547,7 @@ export function newTargeting(auctionManager) { .reduce((acc, key) => { const targetingValue = [winner.adserverTargeting[key]]; const targeting = { [key.substring(0, MAX_DFP_KEYLENGTH)]: targetingValue }; - if (key === CONSTANTS.TARGETING_KEYS.DEAL) { + if (key === TARGETING_KEYS.DEAL) { const bidderCodeTargetingKey = `${key}_${winner.bidderCode}`.substring(0, MAX_DFP_KEYLENGTH); const bidderCodeTargeting = { [bidderCodeTargetingKey]: targetingValue }; return [...acc, targeting, bidderCodeTargeting]; @@ -563,7 +563,7 @@ export function newTargeting(auctionManager) { function getStandardKeys() { return auctionManager.getStandardBidderAdServerTargeting() // in case using a custom standard key set .map(targeting => targeting.key) - .concat(TARGETING_KEYS).filter(uniques); // standard keys defined in the library. + .concat(TARGETING_KEYS_ARR).filter(uniques); // standard keys defined in the library. } /** @@ -648,13 +648,13 @@ export function newTargeting(auctionManager) { * @return {targetingArray} all non-winning bids targeting */ function getBidLandscapeTargeting(adUnitCodes, bidsReceived) { - const standardKeys = FEATURES.NATIVE ? TARGETING_KEYS.concat(NATIVE_TARGETING_KEYS) : TARGETING_KEYS.slice(); + const standardKeys = FEATURES.NATIVE ? TARGETING_KEYS_ARR.concat(NATIVE_TARGETING_KEYS) : TARGETING_KEYS_ARR.slice(); const adUnitBidLimit = config.getConfig('sendBidsControl.bidLimit'); const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm, adUnitBidLimit); const allowSendAllBidsTargetingKeys = config.getConfig('targetingControls.allowSendAllBidsTargetingKeys'); const allowedSendAllBidTargeting = allowSendAllBidsTargetingKeys - ? allowSendAllBidsTargetingKeys.map((key) => CONSTANTS.TARGETING_KEYS[key]) + ? allowSendAllBidsTargetingKeys.map((key) => TARGETING_KEYS[key]) : standardKeys; // populate targeting keys for the remaining bids @@ -680,7 +680,7 @@ export function newTargeting(auctionManager) { function getAdUnitTargeting(adUnitCodes) { function getTargetingObj(adUnit) { - return deepAccess(adUnit, CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING); + return deepAccess(adUnit, JSON_MAPPING.ADSERVER_TARGETING); } function getTargetingValues(adUnit) { diff --git a/src/utils.js b/src/utils.js index c7ce5f22f9a..71cc78090a6 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,7 +1,7 @@ import {config} from './config.js'; import clone from 'just-clone'; import {includes} from './polyfill.js'; -import CONSTANTS from './constants.json'; +import { EVENTS, S2S } from './constants.js'; import {GreedyPromise} from './utils/promise.js'; import {getGlobal} from './prebidGlobal.js'; @@ -202,7 +202,7 @@ export function logWarn() { // eslint-disable-next-line no-console console.warn.apply(console, decorateLog(arguments, 'WARNING:')); } - emitEvent(CONSTANTS.EVENTS.AUCTION_DEBUG, {type: 'WARNING', arguments: arguments}); + emitEvent(EVENTS.AUCTION_DEBUG, { type: 'WARNING', arguments: arguments }); } export function logError() { @@ -210,7 +210,7 @@ export function logError() { // eslint-disable-next-line no-console console.error.apply(console, decorateLog(arguments, 'ERROR:')); } - emitEvent(CONSTANTS.EVENTS.AUCTION_DEBUG, {type: 'ERROR', arguments: arguments}); + emitEvent(EVENTS.AUCTION_DEBUG, { type: 'ERROR', arguments: arguments }); } export function prefixLog(prefix) { @@ -444,7 +444,7 @@ export function triggerPixel(url, done, timeout) { } export function callBurl({ source, burl }) { - if (source === CONSTANTS.S2S.SRC && burl) { + if (source === S2S.SRC && burl) { internal.triggerPixel(burl); } } diff --git a/test/fixtures/fixtures.js b/test/fixtures/fixtures.js index 7317ea039d1..fb6cfe036e5 100644 --- a/test/fixtures/fixtures.js +++ b/test/fixtures/fixtures.js @@ -1,17 +1,17 @@ // jscs:disable -import CONSTANTS from 'src/constants.json'; +import { TARGETING_KEYS, STATUS } from 'src/constants.js'; import {createBid} from '../../src/bidfactory.js'; const utils = require('src/utils.js'); function convertTargetingsFromOldToNew(targetings) { var mapOfOldToNew = { - 'hb_bidder': CONSTANTS.TARGETING_KEYS.BIDDER, - 'hb_adid': CONSTANTS.TARGETING_KEYS.AD_ID, - 'hb_pb': CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, - 'hb_size': CONSTANTS.TARGETING_KEYS.SIZE, - 'hb_deal': CONSTANTS.TARGETING_KEYS.DEAL, - 'hb_source': CONSTANTS.TARGETING_KEYS.SOURCE, - 'hb_format': CONSTANTS.TARGETING_KEYS.FORMAT + 'hb_bidder': TARGETING_KEYS.BIDDER, + 'hb_adid': TARGETING_KEYS.AD_ID, + 'hb_pb': TARGETING_KEYS.PRICE_BUCKET, + 'hb_size': TARGETING_KEYS.SIZE, + 'hb_deal': TARGETING_KEYS.DEAL, + 'hb_source': TARGETING_KEYS.SOURCE, + 'hb_format': TARGETING_KEYS.FORMAT }; var newTargetings = {}; utils._each(targetings, function(value, currentKey) { @@ -1018,19 +1018,19 @@ export function getAdServerTargeting() { export function getTargetingKeys() { return [ [ - CONSTANTS.TARGETING_KEYS.BIDDER, + TARGETING_KEYS.BIDDER, 'appnexus' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID, + TARGETING_KEYS.AD_ID, '233bcbee889d46d' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + TARGETING_KEYS.PRICE_BUCKET, '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE, + TARGETING_KEYS.SIZE, '300x250' ], [ @@ -1045,19 +1045,19 @@ export function getTargetingKeys() { export function getTargetingKeysBidLandscape() { return [ [ - CONSTANTS.TARGETING_KEYS.BIDDER, + TARGETING_KEYS.BIDDER, 'appnexus' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID + '_appnexus', + TARGETING_KEYS.AD_ID + '_appnexus', '233bcbee889d46d' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + TARGETING_KEYS.PRICE_BUCKET, '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE, + TARGETING_KEYS.SIZE, '300x250' ], [ @@ -1065,111 +1065,111 @@ export function getTargetingKeysBidLandscape() { ['0x0', '300x250', '300x600'] ], [ - CONSTANTS.TARGETING_KEYS.BIDDER + '_triplelift', + TARGETING_KEYS.BIDDER + '_triplelift', 'triplelift' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID + '_triplelift', + TARGETING_KEYS.AD_ID + '_triplelift', '222bb26f9e8bd' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_triplelift', + TARGETING_KEYS.PRICE_BUCKET + '_triplelift', '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE + '_triplelift', + TARGETING_KEYS.SIZE + '_triplelift', '0x0' ], [ - CONSTANTS.TARGETING_KEYS.BIDDER + '_appnexus', + TARGETING_KEYS.BIDDER + '_appnexus', 'appnexus' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_appnexus', + TARGETING_KEYS.PRICE_BUCKET + '_appnexus', '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE + '_appnexus', + TARGETING_KEYS.SIZE + '_appnexus', '300x250' ], [ - CONSTANTS.TARGETING_KEYS.BIDDER + '_pagescienc', + TARGETING_KEYS.BIDDER + '_pagescienc', 'pagescience' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID + '_pagescience', + TARGETING_KEYS.AD_ID + '_pagescience', '25bedd4813632d7' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_pagescience', + TARGETING_KEYS.PRICE_BUCKET + '_pagescience', '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE + '_pagescience', + TARGETING_KEYS.SIZE + '_pagescience', '300x250' ], [ - CONSTANTS.TARGETING_KEYS.BIDDER + '_brightcom', + TARGETING_KEYS.BIDDER + '_brightcom', 'brightcom' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID + '_brightcom', + TARGETING_KEYS.AD_ID + '_brightcom', '26e0795ab963896' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_brightcom', + TARGETING_KEYS.PRICE_BUCKET + '_brightcom', '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE + '_brightcom', + TARGETING_KEYS.SIZE + '_brightcom', '300x250' ], [ - CONSTANTS.TARGETING_KEYS.BIDDER + '_brealtime', + TARGETING_KEYS.BIDDER + '_brealtime', 'brealtime' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID + '_brealtime', + TARGETING_KEYS.AD_ID + '_brealtime', '275bd666f5a5a5d' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_brealtime', + TARGETING_KEYS.PRICE_BUCKET + '_brealtime', '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE + '_brealtime', + TARGETING_KEYS.SIZE + '_brealtime', '300x250' ], [ - CONSTANTS.TARGETING_KEYS.BIDDER + '_pubmatic', + TARGETING_KEYS.BIDDER + '_pubmatic', 'pubmatic' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID + '_pubmatic', + TARGETING_KEYS.AD_ID + '_pubmatic', '28f4039c636b6a7' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_pubmatic', + TARGETING_KEYS.PRICE_BUCKET + '_pubmatic', '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE + '_pubmatic', + TARGETING_KEYS.SIZE + '_pubmatic', '300x250' ], [ - CONSTANTS.TARGETING_KEYS.BIDDER + '_rubicon', + TARGETING_KEYS.BIDDER + '_rubicon', 'rubicon' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID + '_rubicon', + TARGETING_KEYS.AD_ID + '_rubicon', '29019e2ab586a5a' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_rubicon', + TARGETING_KEYS.PRICE_BUCKET + '_rubicon', '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE + '_rubicon', + TARGETING_KEYS.SIZE + '_rubicon', '300x600' ] ]; @@ -1262,7 +1262,7 @@ export function createBidReceived({bidder, cpm, auctionId, responseTimestamp, ad if (typeof status !== 'undefined') { bid.status = status; } - return Object.assign(createBid(CONSTANTS.STATUS.GOOD), bid); + return Object.assign(createBid(STATUS.GOOD), bid); } export function getServerTestingsAds() { diff --git a/test/helpers/analytics.js b/test/helpers/analytics.js index b376118dc6f..d36bcf44f64 100644 --- a/test/helpers/analytics.js +++ b/test/helpers/analytics.js @@ -1,12 +1,12 @@ import * as pbEvents from 'src/events.js'; -import constants from '../../src/constants.json'; +import { EVENTS } from '../../src/constants.js'; export function fireEvents(events = [ - constants.EVENTS.AUCTION_INIT, - constants.EVENTS.AUCTION_END, - constants.EVENTS.BID_REQUESTED, - constants.EVENTS.BID_RESPONSE, - constants.EVENTS.BID_WON + EVENTS.AUCTION_INIT, + EVENTS.AUCTION_END, + EVENTS.BID_REQUESTED, + EVENTS.BID_RESPONSE, + EVENTS.BID_WON ]) { return events.map((ev, i) => { ev = Array.isArray(ev) ? ev : [ev, {i: i}]; diff --git a/test/spec/AnalyticsAdapter_spec.js b/test/spec/AnalyticsAdapter_spec.js index 62c00e04403..e853fb72fa8 100644 --- a/test/spec/AnalyticsAdapter_spec.js +++ b/test/spec/AnalyticsAdapter_spec.js @@ -1,6 +1,6 @@ import {expect} from 'chai'; import * as events from 'src/events.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import {server} from 'test/mocks/xhr.js'; import {disableAjaxForAnalytics, enableAjaxForAnalytics} from '../mocks/analyticsStub.js'; import {clearEvents} from 'src/events.js'; @@ -10,8 +10,8 @@ import { setDebounceDelay } from '../../libraries/analyticsAdapter/AnalyticsAdapter.js'; -const BID_WON = CONSTANTS.EVENTS.BID_WON; -const NO_BID = CONSTANTS.EVENTS.NO_BID; +const BID_WON = EVENTS.BID_WON; +const NO_BID = EVENTS.NO_BID; const AnalyticsAdapter = require('libraries/analyticsAdapter/AnalyticsAdapter.js').default; const config = { diff --git a/test/spec/auctionmanager_spec.js b/test/spec/auctionmanager_spec.js index 06d3d538596..65c6256acdc 100644 --- a/test/spec/auctionmanager_spec.js +++ b/test/spec/auctionmanager_spec.js @@ -7,7 +7,7 @@ import { getPriceByGranularity, addBidResponse, resetAuctionState, responsesReady } from 'src/auction.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS, TARGETING_KEYS, S2S } from 'src/constants.js'; import * as auctionModule from 'src/auction.js'; import { registerBidder } from 'src/adapters/bidderFactory.js'; import { createBid } from 'src/bidfactory.js'; @@ -110,8 +110,8 @@ function mockBidRequest(bid, opts) { 'auctionId': opts && opts.auctionId, 'bidderRequestId': requestId, src: bid?._ctx?.src, - adUnitsS2SCopy: bid?._ctx?.src === CONSTANTS.S2S.SRC ? bid?._ctx?.adUnits : undefined, - uniquePbsTid: bid?._ctx?.src === CONSTANTS.S2S.SRC ? bid?._ctx?.uniquePbsTid : undefined, + adUnitsS2SCopy: bid?._ctx?.src === S2S.SRC ? bid?._ctx?.adUnits : undefined, + uniquePbsTid: bid?._ctx?.src === S2S.SRC ? bid?._ctx?.uniquePbsTid : undefined, 'bids': [ { 'bidder': bidderCode || bid.bidderCode, @@ -215,20 +215,20 @@ describe('auctionmanager.js', function () { /* return the expected response for a given bid, filter by keys if given */ function getDefaultExpected(bid, keys) { var expected = {}; - expected[ CONSTANTS.TARGETING_KEYS.BIDDER ] = bid.bidderCode; - expected[ CONSTANTS.TARGETING_KEYS.AD_ID ] = bid.adId; - expected[ CONSTANTS.TARGETING_KEYS.PRICE_BUCKET ] = bid.pbMg; - expected[ CONSTANTS.TARGETING_KEYS.SIZE ] = bid.getSize(); - expected[ CONSTANTS.TARGETING_KEYS.SOURCE ] = bid.source; - expected[ CONSTANTS.TARGETING_KEYS.FORMAT ] = bid.mediaType; - expected[ CONSTANTS.TARGETING_KEYS.ADOMAIN ] = bid.meta.advertiserDomains[0]; - expected[ CONSTANTS.TARGETING_KEYS.ACAT ] = bid.meta.primaryCatId; - expected[ CONSTANTS.TARGETING_KEYS.DSP ] = bid.meta.networkId; - expected[ CONSTANTS.TARGETING_KEYS.CRID ] = bid.creativeId; + expected[TARGETING_KEYS.BIDDER] = bid.bidderCode; + expected[TARGETING_KEYS.AD_ID] = bid.adId; + expected[TARGETING_KEYS.PRICE_BUCKET] = bid.pbMg; + expected[TARGETING_KEYS.SIZE] = bid.getSize(); + expected[TARGETING_KEYS.SOURCE] = bid.source; + expected[TARGETING_KEYS.FORMAT] = bid.mediaType; + expected[TARGETING_KEYS.ADOMAIN] = bid.meta.advertiserDomains[0]; + expected[TARGETING_KEYS.ACAT] = bid.meta.primaryCatId; + expected[TARGETING_KEYS.DSP] = bid.meta.networkId; + expected[TARGETING_KEYS.CRID] = bid.creativeId; if (bid.mediaType === 'video') { - expected[ CONSTANTS.TARGETING_KEYS.UUID ] = bid.videoCacheKey; - expected[ CONSTANTS.TARGETING_KEYS.CACHE_ID ] = bid.videoCacheKey; - expected[ CONSTANTS.TARGETING_KEYS.CACHE_HOST ] = 'prebid.adnxs.com'; + expected[TARGETING_KEYS.UUID] = bid.videoCacheKey; + expected[TARGETING_KEYS.CACHE_ID] = bid.videoCacheKey; + expected[TARGETING_KEYS.CACHE_HOST] = 'prebid.adnxs.com'; } if (!keys) { return expected; @@ -288,59 +288,59 @@ describe('auctionmanager.js', function () { standard: { adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { // change default here return bidResponse.pbHg; } }, { - key: CONSTANTS.TARGETING_KEYS.SIZE, + key: TARGETING_KEYS.SIZE, val: function (bidResponse) { return bidResponse.size; } }, { - key: CONSTANTS.TARGETING_KEYS.SOURCE, + key: TARGETING_KEYS.SOURCE, val: function (bidResponse) { return bidResponse.source; } }, { - key: CONSTANTS.TARGETING_KEYS.FORMAT, + key: TARGETING_KEYS.FORMAT, val: function (bidResponse) { return bidResponse.mediaType; } }, { - key: CONSTANTS.TARGETING_KEYS.ADOMAIN, + key: TARGETING_KEYS.ADOMAIN, val: function (bidResponse) { return bidResponse.meta.advertiserDomains[0]; } }, { - key: CONSTANTS.TARGETING_KEYS.CRID, + key: TARGETING_KEYS.CRID, val: function (bidResponse) { return bidResponse.creativeId; } }, { - key: CONSTANTS.TARGETING_KEYS.DSP, + key: TARGETING_KEYS.DSP, val: function (bidResponse) { return bidResponse.meta.networkId; } }, { - key: CONSTANTS.TARGETING_KEYS.ACAT, + key: TARGETING_KEYS.ACAT, val: function (bidResponse) { return bidResponse.meta.primaryCatId; } @@ -351,7 +351,7 @@ describe('auctionmanager.js', function () { }; var expected = getDefaultExpected(bid); - expected[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] = bid.pbHg; + expected[TARGETING_KEYS.PRICE_BUCKET] = bid.pbHg; var response = getKeyValueTargetingPairs(bid.bidderCode, bid); assert.deepEqual(response, expected); @@ -373,70 +373,70 @@ describe('auctionmanager.js', function () { standard: { adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { return bidResponse.pbMg; } }, { - key: CONSTANTS.TARGETING_KEYS.SIZE, + key: TARGETING_KEYS.SIZE, val: function (bidResponse) { return bidResponse.size; } }, { - key: CONSTANTS.TARGETING_KEYS.SOURCE, + key: TARGETING_KEYS.SOURCE, val: function (bidResponse) { return bidResponse.source; } }, { - key: CONSTANTS.TARGETING_KEYS.FORMAT, + key: TARGETING_KEYS.FORMAT, val: function (bidResponse) { return bidResponse.mediaType; } }, { - key: CONSTANTS.TARGETING_KEYS.UUID, + key: TARGETING_KEYS.UUID, val: function (bidResponse) { return bidResponse.videoCacheKey; } }, { - key: CONSTANTS.TARGETING_KEYS.CACHE_ID, + key: TARGETING_KEYS.CACHE_ID, val: function (bidResponse) { return bidResponse.videoCacheKey; } }, { - key: CONSTANTS.TARGETING_KEYS.ADOMAIN, + key: TARGETING_KEYS.ADOMAIN, val: function (bidResponse) { return bidResponse.meta.advertiserDomains[0]; } }, { - key: CONSTANTS.TARGETING_KEYS.CRID, + key: TARGETING_KEYS.CRID, val: function (bidResponse) { return bidResponse.creativeId; } }, { - key: CONSTANTS.TARGETING_KEYS.DSP, + key: TARGETING_KEYS.DSP, val: function (bidResponse) { return bidResponse.meta.networkId; } }, { - key: CONSTANTS.TARGETING_KEYS.ACAT, + key: TARGETING_KEYS.ACAT, val: function (bidResponse) { return bidResponse.meta.primaryCatId; } @@ -459,23 +459,23 @@ describe('auctionmanager.js', function () { appnexus: { adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { // change default here return bidResponse.pbHg; } }, { - key: CONSTANTS.TARGETING_KEYS.SIZE, + key: TARGETING_KEYS.SIZE, val: function (bidResponse) { return bidResponse.size; } @@ -486,7 +486,7 @@ describe('auctionmanager.js', function () { }; var expected = getDefaultExpected(bid); - expected[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] = bid.pbHg; + expected[TARGETING_KEYS.PRICE_BUCKET] = bid.pbHg; var response = getKeyValueTargetingPairs(bid.bidderCode, bid); assert.deepEqual(response, expected); @@ -498,23 +498,23 @@ describe('auctionmanager.js', function () { nonExistentBidder: { adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { // change default here return bidResponse.pbHg; } }, { - key: CONSTANTS.TARGETING_KEYS.SIZE, + key: TARGETING_KEYS.SIZE, val: function (bidResponse) { return bidResponse.size; } @@ -561,17 +561,17 @@ describe('auctionmanager.js', function () { }, adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { // change default here return 10.00; @@ -581,8 +581,8 @@ describe('auctionmanager.js', function () { } }; - var expected = getDefaultExpected(bid, [CONSTANTS.TARGETING_KEYS.BIDDER, CONSTANTS.TARGETING_KEYS.AD_ID]); - expected[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] = 10.0; + var expected = getDefaultExpected(bid, [TARGETING_KEYS.BIDDER, TARGETING_KEYS.AD_ID]); + expected[TARGETING_KEYS.PRICE_BUCKET] = 10.0; var response = getKeyValueTargetingPairs(bid.bidderCode, bid); assert.deepEqual(response, expected); @@ -618,17 +618,17 @@ describe('auctionmanager.js', function () { }, adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { // change default here return 15.00; @@ -639,24 +639,24 @@ describe('auctionmanager.js', function () { standard: { adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { // change default here return 10.00; }, }, { - key: CONSTANTS.TARGETING_KEYS.SIZE, + key: TARGETING_KEYS.SIZE, val: function (bidResponse) { return bidResponse.size; } @@ -665,8 +665,8 @@ describe('auctionmanager.js', function () { } }; - var expected = getDefaultExpected(bid, [CONSTANTS.TARGETING_KEYS.BIDDER, CONSTANTS.TARGETING_KEYS.AD_ID, CONSTANTS.TARGETING_KEYS.SIZE]); - expected[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] = 15.0; + var expected = getDefaultExpected(bid, [TARGETING_KEYS.BIDDER, TARGETING_KEYS.AD_ID, TARGETING_KEYS.SIZE]); + expected[TARGETING_KEYS.PRICE_BUCKET] = 15.0; var response = getKeyValueTargetingPairs(bid.bidderCode, bid); assert.deepEqual(response, expected); @@ -679,17 +679,17 @@ describe('auctionmanager.js', function () { sendStandardTargeting: false, adserverTargeting: [ { - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function (bidResponse) { return bidResponse.bidderCode; } }, { - key: CONSTANTS.TARGETING_KEYS.AD_ID, + key: TARGETING_KEYS.AD_ID, val: function (bidResponse) { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function (bidResponse) { return bidResponse.pbHg; } @@ -698,7 +698,7 @@ describe('auctionmanager.js', function () { } }; var expected = getDefaultExpected(bid); - expected[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] = 5.57; + expected[TARGETING_KEYS.PRICE_BUCKET] = 5.57; var response = getKeyValueTargetingPairs(bid.bidderCode, bid); assert.deepEqual(response, expected); @@ -830,7 +830,7 @@ describe('auctionmanager.js', function () { } const auction = auctionManager.createAuction({adUnits, ortb2Fragments}); expect(auction.getNonBids()[0]).to.equal(undefined); - events.emit(CONSTANTS.EVENTS.SEAT_NON_BID, { + events.emit(EVENTS.SEAT_NON_BID, { auctionId: auction.getAuctionId(), seatnonbid: ['test'] }); @@ -990,7 +990,7 @@ describe('auctionmanager.js', function () { auction.callBids(); let registeredBid = auction.getBidsReceived().pop(); - assert.equal(registeredBid.adserverTargeting[CONSTANTS.TARGETING_KEYS.DEAL], 'test deal', 'dealId placed in adserverTargeting'); + assert.equal(registeredBid.adserverTargeting[TARGETING_KEYS.DEAL], 'test deal', 'dealId placed in adserverTargeting'); }); it('should pass through default adserverTargeting sent from adapter', function () { @@ -999,7 +999,7 @@ describe('auctionmanager.js', function () { auction.callBids(); let registeredBid = auction.getBidsReceived().pop(); - assert.equal(registeredBid.adserverTargeting[CONSTANTS.TARGETING_KEYS.BIDDER], BIDDER_CODE); + assert.equal(registeredBid.adserverTargeting[TARGETING_KEYS.BIDDER], BIDDER_CODE); assert.equal(registeredBid.adserverTargeting.extra, 'stuff'); }); it('should add the bidResponse to the collection before calling BID_RESPONSE', function () { @@ -1008,9 +1008,9 @@ describe('auctionmanager.js', function () { const storedBid = auction.getBidsReceived().pop(); hasBid = storedBid === bid; } - events.on(CONSTANTS.EVENTS.BID_RESPONSE, eventHandler); + events.on(EVENTS.BID_RESPONSE, eventHandler); auction.callBids(); - events.off(CONSTANTS.EVENTS.BID_RESPONSE, eventHandler); + events.off(EVENTS.BID_RESPONSE, eventHandler); assert.ok(hasBid, 'Bid not available'); }); @@ -1231,10 +1231,10 @@ describe('auctionmanager.js', function () { let handler; beforeEach(() => { handler = sinon.spy(); - events.on(CONSTANTS.EVENTS.AUCTION_TIMEOUT, handler); + events.on(EVENTS.AUCTION_TIMEOUT, handler); }) afterEach(() => { - events.off(CONSTANTS.EVENTS.AUCTION_TIMEOUT, handler); + events.off(EVENTS.AUCTION_TIMEOUT, handler); }); Object.entries({ @@ -1257,14 +1257,14 @@ describe('auctionmanager.js', function () { it('should emit BID_TIMEOUT and AUCTION_END for timed out bids', function () { const pm = runAuction().then(() => { - const bidTimeoutCall = eventsEmitSpy.withArgs(CONSTANTS.EVENTS.BID_TIMEOUT).getCalls()[0]; + const bidTimeoutCall = eventsEmitSpy.withArgs(EVENTS.BID_TIMEOUT).getCalls()[0]; const timedOutBids = bidTimeoutCall.args[1]; assert.equal(timedOutBids.length, 1); assert.equal(timedOutBids[0].bidder, BIDDER_CODE1); // Check that additional properties are available assert.equal(timedOutBids[0].params[0].placementId, 'id'); - const auctionEndCall = eventsEmitSpy.withArgs(CONSTANTS.EVENTS.AUCTION_END).getCalls()[0]; + const auctionEndCall = eventsEmitSpy.withArgs(EVENTS.AUCTION_END).getCalls()[0]; const auctionProps = auctionEndCall.args[1]; assert.equal(auctionProps.adUnits, adUnits); assert.equal(auctionProps.timeout, 20); @@ -1276,7 +1276,7 @@ describe('auctionmanager.js', function () { it('should NOT emit BID_TIMEOUT when all bidders responded in time', function () { const pm = runAuction().then(() => { - assert.ok(eventsEmitSpy.withArgs(CONSTANTS.EVENTS.BID_TIMEOUT).notCalled, 'did not emit event BID_TIMEOUT'); + assert.ok(eventsEmitSpy.withArgs(EVENTS.BID_TIMEOUT).notCalled, 'did not emit event BID_TIMEOUT'); }); respondToRequest(0); respondToRequest(1); @@ -1285,7 +1285,7 @@ describe('auctionmanager.js', function () { it('should NOT emit BID_TIMEOUT for bidders which responded in time but with an empty bid', function () { const pm = runAuction().then(() => { - const bidTimeoutCall = eventsEmitSpy.withArgs(CONSTANTS.EVENTS.BID_TIMEOUT).getCalls()[0]; + const bidTimeoutCall = eventsEmitSpy.withArgs(EVENTS.BID_TIMEOUT).getCalls()[0]; const timedOutBids = bidTimeoutCall.args[1]; assert.equal(timedOutBids.length, 1); assert.equal(timedOutBids[0].bidder, BIDDER_CODE1); @@ -1314,8 +1314,8 @@ describe('auctionmanager.js', function () { adUnits[0].bids.push({bidder: 'mock-s2s-1'}, {bidder: 'mock-s2s-2'}) const s2sAdUnits = deepClone(adUnits); bids.unshift( - mockBid({bidderCode: 'mock-s2s-1', src: CONSTANTS.S2S.SRC, adUnits: s2sAdUnits, uniquePbsTid: '1'}), - mockBid({bidderCode: 'mock-s2s-2', src: CONSTANTS.S2S.SRC, adUnits: s2sAdUnits, uniquePbsTid: '2'}) + mockBid({ bidderCode: 'mock-s2s-1', src: S2S.SRC, adUnits: s2sAdUnits, uniquePbsTid: '1' }), + mockBid({ bidderCode: 'mock-s2s-2', src: S2S.SRC, adUnits: s2sAdUnits, uniquePbsTid: '2' }) ); Object.assign(s2sAdUnits[0], { mediaTypes: { @@ -1336,7 +1336,7 @@ describe('auctionmanager.js', function () { }) const pm = runAuction().then(() => { - const toBids = eventsEmitSpy.withArgs(CONSTANTS.EVENTS.BID_TIMEOUT).getCalls()[0].args[1] + const toBids = eventsEmitSpy.withArgs(EVENTS.BID_TIMEOUT).getCalls()[0].args[1] expect(toBids.map(bid => bid.bidder)).to.eql([ 'mock-s2s-2', BIDDER_CODE, @@ -1906,12 +1906,12 @@ describe('auctionmanager.js', function () { before(() => { addBidResponse.before(rejectHook, 999); - events.on(CONSTANTS.EVENTS.BID_REJECTED, onBidRejected); + events.on(EVENTS.BID_REJECTED, onBidRejected); }); after(() => { addBidResponse.getHooks({hook: rejectHook}).remove(); - events.off(CONSTANTS.EVENTS.BID_REJECTED, onBidRejected); + events.off(EVENTS.BID_REJECTED, onBidRejected); }); beforeEach(() => { diff --git a/test/spec/modules/33acrossAnalyticsAdapter_spec.js b/test/spec/modules/33acrossAnalyticsAdapter_spec.js index 9e0d928cd97..5089f12a461 100644 --- a/test/spec/modules/33acrossAnalyticsAdapter_spec.js +++ b/test/spec/modules/33acrossAnalyticsAdapter_spec.js @@ -4,10 +4,9 @@ import { log } from 'modules/33acrossAnalyticsAdapter.js'; import * as mockGpt from 'test/spec/integration/faker/googletag.js'; import * as events from 'src/events.js'; import * as faker from 'faker'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import { gdprDataHandler, gppDataHandler, uspDataHandler } from '../../../src/adapterManager'; import { DEFAULT_ENDPOINT, POST_GAM_TIMEOUT, locals } from '../../../modules/33acrossAnalyticsAdapter'; -const { EVENTS, BID_STATUS } = CONSTANTS; describe('33acrossAnalyticsAdapter:', function () { let sandbox; diff --git a/test/spec/modules/adWMGAnalyticsAdapter_spec.js b/test/spec/modules/adWMGAnalyticsAdapter_spec.js index 1e0da1bb3c8..92e1fcbe4db 100644 --- a/test/spec/modules/adWMGAnalyticsAdapter_spec.js +++ b/test/spec/modules/adWMGAnalyticsAdapter_spec.js @@ -2,9 +2,9 @@ import adWMGAnalyticsAdapter from 'modules/adWMGAnalyticsAdapter.js'; import { expect } from 'chai'; import { server } from 'test/mocks/xhr.js'; import {expectEvents} from '../../helpers/analytics.js'; +import {EVENTS} from 'src/constants.js'; let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); describe('adWMG Analytics', function () { let timestamp = new Date() - 256; @@ -142,31 +142,31 @@ describe('adWMG Analytics', function () { }); expectEvents([ - [constants.EVENTS.AUCTION_INIT, {timestamp, auctionId, timeout, adUnits}], - [constants.EVENTS.BID_REQUESTED, {}], - [constants.EVENTS.BID_RESPONSE, bidResponse], - [constants.EVENTS.NO_BID, {}], - [constants.EVENTS.BID_TIMEOUT, bidTimeoutArgs], - [constants.EVENTS.AUCTION_END, {}], - [constants.EVENTS.BID_WON, wonRequest], + [EVENTS.AUCTION_INIT, {timestamp, auctionId, timeout, adUnits}], + [EVENTS.BID_REQUESTED, {}], + [EVENTS.BID_RESPONSE, bidResponse], + [EVENTS.NO_BID, {}], + [EVENTS.BID_TIMEOUT, bidTimeoutArgs], + [EVENTS.AUCTION_END, {}], + [EVENTS.BID_WON, wonRequest], ]).to.beTrackedBy(adWMGAnalyticsAdapter.track); }); it('should be two xhr requests', function () { - events.emit(constants.EVENTS.AUCTION_END, {}); - events.emit(constants.EVENTS.BID_WON, wonRequest); + events.emit(EVENTS.AUCTION_END, {}); + events.emit(EVENTS.BID_WON, wonRequest); expect(server.requests.length).to.equal(2); }); it('second request should be bidWon', function () { - events.emit(constants.EVENTS.AUCTION_END, {}); - events.emit(constants.EVENTS.BID_WON, wonRequest); + events.emit(EVENTS.AUCTION_END, {}); + events.emit(EVENTS.BID_WON, wonRequest); expect(JSON.parse(server.requests[1].requestBody).events[0].status).to.equal(expectedBidWonData.events[0].status); }); it('check bidWon data', function () { - events.emit(constants.EVENTS.AUCTION_END, {}); - events.emit(constants.EVENTS.BID_WON, wonRequest); + events.emit(EVENTS.AUCTION_END, {}); + events.emit(EVENTS.BID_WON, wonRequest); let realBidWonData = JSON.parse(server.requests[1].requestBody); expect(realBidWonData.publisher_id).to.equal(expectedBidWonData.publisher_id); expect(realBidWonData.site).to.equal(expectedBidWonData.site); diff --git a/test/spec/modules/adagioAnalyticsAdapter_spec.js b/test/spec/modules/adagioAnalyticsAdapter_spec.js index 64740f32b06..c14393e267b 100644 --- a/test/spec/modules/adagioAnalyticsAdapter_spec.js +++ b/test/spec/modules/adagioAnalyticsAdapter_spec.js @@ -3,10 +3,10 @@ import { expect } from 'chai'; import * as utils from 'src/utils.js'; import { server } from 'test/mocks/xhr.js'; import * as prebidGlobal from 'src/prebidGlobal.js'; +import { EVENTS } from 'src/constants.js'; let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); describe('adagio analytics adapter - adagio.js', () => { let sandbox; @@ -86,9 +86,9 @@ describe('adagio analytics adapter - adagio.js', () => { }; const testEvents = { - [constants.EVENTS.BID_REQUESTED]: bidRequest, - [constants.EVENTS.BID_RESPONSE]: bidResponse, - [constants.EVENTS.AUCTION_END]: {} + [EVENTS.BID_REQUESTED]: bidRequest, + [EVENTS.BID_RESPONSE]: bidResponse, + [EVENTS.AUCTION_END]: {} }; // Step 1-3: Send events @@ -162,13 +162,13 @@ describe('adagio analytics adapter - adagio.js', () => { }; // Step 1: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, bidRequest); + events.emit(EVENTS.BID_REQUESTED, bidRequest); // Step 2: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); // Step 3: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, {}); + events.emit(EVENTS.AUCTION_END, {}); utils.getWindowTop.restore(); @@ -661,12 +661,12 @@ describe('adagio analytics adapter', () => { } }); - events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another); - events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END.another); - events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON.another); - events.emit(constants.EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another); + events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another); + events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END.another); + events.emit(EVENTS.BID_WON, MOCK.BID_WON.another); + events.emit(EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another); expect(server.requests.length).to.equal(3, 'requests count'); { @@ -733,13 +733,13 @@ describe('adagio analytics adapter', () => { } }); - events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.bidcached); - events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another); - events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END.another_nobid); - events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON.bidcached); - events.emit(constants.EVENTS.AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED.bidcached); + events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.bidcached); + events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another); + events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END.another_nobid); + events.emit(EVENTS.BID_WON, MOCK.BID_WON.bidcached); + events.emit(EVENTS.AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED.bidcached); expect(server.requests.length).to.equal(5, 'requests count'); { @@ -831,12 +831,12 @@ describe('adagio analytics adapter', () => { it('send an "empty" cpm when adserver currency != USD and convertCurrency() is undefined', () => { sandbox.stub(prebidGlobal, 'getGlobal').returns({}); - events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another); - events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END.another); - events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON.another); - events.emit(constants.EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another); + events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another); + events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END.another); + events.emit(EVENTS.BID_WON, MOCK.BID_WON.another); + events.emit(EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another); expect(server.requests.length).to.equal(3, 'requests count'); diff --git a/test/spec/modules/adkernelAdnAnalytics_spec.js b/test/spec/modules/adkernelAdnAnalytics_spec.js index 7af96c9321c..fc6cba5176b 100644 --- a/test/spec/modules/adkernelAdnAnalytics_spec.js +++ b/test/spec/modules/adkernelAdnAnalytics_spec.js @@ -1,7 +1,7 @@ import analyticsAdapter, {ExpiringQueue, getUmtSource, storage} from 'modules/adkernelAdnAnalyticsAdapter'; import {expect} from 'chai'; import adapterManager from 'src/adapterManager'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; const events = require('../../../src/events'); @@ -230,21 +230,21 @@ describe('', function () { }); it('should handle auction init event', function () { - events.emit(CONSTANTS.EVENTS.AUCTION_INIT, {config: {}, bidderRequests: [REQUEST], timeout: 3000}); + events.emit(EVENTS.AUCTION_INIT, {config: {}, bidderRequests: [REQUEST], timeout: 3000}); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(1); expect(ev[0]).to.be.eql({event: 'auctionInit'}); }); it('should handle bid request event', function () { - events.emit(CONSTANTS.EVENTS.BID_REQUESTED, REQUEST); + events.emit(EVENTS.BID_REQUESTED, REQUEST); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(2); expect(ev[1]).to.be.eql({event: 'bidRequested', adapter: 'adapter', tagid: 'container-1'}); }); it('should handle bid response event', function () { - events.emit(CONSTANTS.EVENTS.BID_RESPONSE, RESPONSE); + events.emit(EVENTS.BID_RESPONSE, RESPONSE); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(3); expect(ev[2]).to.be.eql({ @@ -258,7 +258,7 @@ describe('', function () { it('should handle auction end event', function () { timer.tick(447); - events.emit(CONSTANTS.EVENTS.AUCTION_END, RESPONSE); + events.emit(EVENTS.AUCTION_END, RESPONSE); let ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(0); expect(ajaxStub.calledOnce).to.be.equal(true); @@ -267,7 +267,7 @@ describe('', function () { }); it('should handle winning bid', function () { - events.emit(CONSTANTS.EVENTS.BID_WON, RESPONSE); + events.emit(EVENTS.BID_WON, RESPONSE); timer.tick(4500); expect(ajaxStub.calledTwice).to.be.equal(true); let ev = JSON.parse(ajaxStub.secondCall.args[0]).hb_ev; diff --git a/test/spec/modules/adlooxAnalyticsAdapter_spec.js b/test/spec/modules/adlooxAnalyticsAdapter_spec.js index 8acd02c7f26..450dd83f86d 100644 --- a/test/spec/modules/adlooxAnalyticsAdapter_spec.js +++ b/test/spec/modules/adlooxAnalyticsAdapter_spec.js @@ -3,7 +3,7 @@ import analyticsAdapter, { command as analyticsCommand, COMMAND } from 'modules/ import { AUCTION_COMPLETED } from 'src/auction.js'; import { expect } from 'chai'; import * as events from 'src/events.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import * as utils from 'src/utils.js'; import { loadExternalScriptStub } from 'test/mocks/adloaderStub.js'; @@ -143,10 +143,10 @@ describe('Adloox Analytics Adapter', function () { return arg.tagName === 'LINK' && arg.getAttribute('rel') === 'preload' && arg.getAttribute('as') === 'script' && href_uri.href === uri.href; }; - events.emit(CONSTANTS.EVENTS.AUCTION_END, auctionDetails); + events.emit(EVENTS.AUCTION_END, auctionDetails); expect(insertElementStub.calledWith(sinon.match(isLinkPreloadAsScript))).to.true; - events.emit(CONSTANTS.EVENTS.AUCTION_END, auctionDetails); + events.emit(EVENTS.AUCTION_END, auctionDetails); expect(insertElementStub.callCount).to.equal(1); done(); @@ -167,7 +167,7 @@ describe('Adloox Analytics Adapter', function () { const querySelectorStub = sandbox.stub(document, 'querySelector'); querySelectorStub.withArgs(`#${bid.adUnitCode}`).returns(slot); - events.emit(CONSTANTS.EVENTS.BID_WON, bid); + events.emit(EVENTS.BID_WON, bid); const [urlInserted, moduleCode] = loadExternalScriptStub.getCall(0).args; @@ -196,7 +196,7 @@ describe('Adloox Analytics Adapter', function () { const querySelectorStub = sandbox.stub(document, 'querySelector'); querySelectorStub.withArgs(`#${bid.adUnitCode}`).returns(slot); - events.emit(CONSTANTS.EVENTS.BID_WON, bidIgnore); + events.emit(EVENTS.BID_WON, bidIgnore); expect(parent.querySelector('script')).is.null; @@ -238,7 +238,7 @@ describe('Adloox Analytics Adapter', function () { it('should inject tracking event', function (done) { const data = { - eventType: CONSTANTS.EVENTS.BID_WON, + eventType: EVENTS.BID_WON, args: bid }; diff --git a/test/spec/modules/adomikAnalyticsAdapter_spec.js b/test/spec/modules/adomikAnalyticsAdapter_spec.js index d872d6f8e08..703e6ed8992 100644 --- a/test/spec/modules/adomikAnalyticsAdapter_spec.js +++ b/test/spec/modules/adomikAnalyticsAdapter_spec.js @@ -1,9 +1,9 @@ import adomikAnalytics from 'modules/adomikAnalyticsAdapter.js'; import { expect } from 'chai'; +import {EVENTS} from 'src/constants.js'; let events = require('src/events'); let adapterManager = require('src/adapterManager').default; -let constants = require('src/constants.json'); describe('Adomik Prebid Analytic', function () { let sendEventStub; @@ -70,7 +70,7 @@ describe('Adomik Prebid Analytic', function () { }); // Step 2: Send init auction event - events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, auctionId: 'test-test-test'}); + events.emit(EVENTS.AUCTION_INIT, {config: initOptions, auctionId: 'test-test-test'}); expect(adomikAnalytics.currentContext).to.deep.equal({ uid: '123456', @@ -81,7 +81,7 @@ describe('Adomik Prebid Analytic', function () { }); // Step 3: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, { bids: [bid] }); + events.emit(EVENTS.BID_REQUESTED, { bids: [bid] }); expect(adomikAnalytics.bucketEvents.length).to.equal(1); expect(adomikAnalytics.bucketEvents[0]).to.deep.equal({ @@ -93,7 +93,7 @@ describe('Adomik Prebid Analytic', function () { }); // Step 4: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, bid); + events.emit(EVENTS.BID_RESPONSE, bid); expect(adomikAnalytics.bucketEvents.length).to.equal(2); expect(adomikAnalytics.bucketEvents[1]).to.deep.equal({ @@ -114,17 +114,17 @@ describe('Adomik Prebid Analytic', function () { }); // Step 5: Send bid won event - events.emit(constants.EVENTS.BID_WON, bid); + events.emit(EVENTS.BID_WON, bid); expect(adomikAnalytics.bucketEvents.length).to.equal(2); // Step 6: Send bid timeout event - events.emit(constants.EVENTS.BID_TIMEOUT, {}); + events.emit(EVENTS.BID_TIMEOUT, {}); expect(adomikAnalytics.currentContext.timeouted).to.equal(true); // Step 7: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, {}); + events.emit(EVENTS.AUCTION_END, {}); setTimeout(function() { sinon.assert.callCount(sendEventStub, 1); diff --git a/test/spec/modules/adxcgAnalyticsAdapter_spec.js b/test/spec/modules/adxcgAnalyticsAdapter_spec.js index a796e7e966d..40e1347bce3 100644 --- a/test/spec/modules/adxcgAnalyticsAdapter_spec.js +++ b/test/spec/modules/adxcgAnalyticsAdapter_spec.js @@ -2,9 +2,9 @@ import adxcgAnalyticsAdapter from 'modules/adxcgAnalyticsAdapter.js'; import { expect } from 'chai'; import adapterManager from 'src/adapterManager.js'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('adxcg analytics adapter', function () { beforeEach(function () { @@ -171,21 +171,21 @@ describe('adxcg analytics adapter', function () { it('builds and sends auction data', function () { // Step 1: Send auction init event - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { timestamp: auctionTimestamp }); // Step 2: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, bidRequest); + events.emit(EVENTS.BID_REQUESTED, bidRequest); // Step 3: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); // Step 4: Send bid time out event - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); + events.emit(EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); // Step 5: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, {}); + events.emit(EVENTS.AUCTION_END, {}); expect(server.requests.length).to.equal(1); @@ -196,7 +196,7 @@ describe('adxcg analytics adapter', function () { expect(realAfterBid.bidTimeout).to.deep.equal(['bidderOne', 'bidderTwo']); // Step 6: Send auction bid won event - events.emit(constants.EVENTS.BID_WON, wonRequest); + events.emit(EVENTS.BID_WON, wonRequest); expect(server.requests.length).to.equal(2); let winEventData = JSON.parse(server.requests[1].requestBody); diff --git a/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js b/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js index fd698e9e1fd..fe453a1c208 100644 --- a/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js +++ b/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js @@ -3,9 +3,9 @@ import { testSend } from 'modules/adxpremiumAnalyticsAdapter.js'; import { expect } from 'chai'; import adapterManager from 'src/adapterManager.js'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('AdxPremium analytics adapter', function () { beforeEach(function () { @@ -378,19 +378,19 @@ describe('AdxPremium analytics adapter', function () { it('builds and sends auction data', function () { // Step 1: Send auction init event - events.emit(constants.EVENTS.AUCTION_INIT, auctionInit); + events.emit(EVENTS.AUCTION_INIT, auctionInit); // Step 2: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, bidRequest); + events.emit(EVENTS.BID_REQUESTED, bidRequest); // Step 3: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); // Step 4: Send bid time out event - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); + events.emit(EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); // Step 5: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, {}); + events.emit(EVENTS.AUCTION_END, {}); testSend(); @@ -404,7 +404,7 @@ describe('AdxPremium analytics adapter', function () { expect(realAfterBid).to.deep.equal(expectedAfterTimeout); // Step 6: Send auction bid won event - events.emit(constants.EVENTS.BID_WON, wonRequest); + events.emit(EVENTS.BID_WON, wonRequest); expect(server.requests.length).to.equal(3); let winEventData = JSON.parse(server.requests[1].requestBody); diff --git a/test/spec/modules/agmaAnalyticsAdapter_spec.js b/test/spec/modules/agmaAnalyticsAdapter_spec.js index df18e7bcf45..227acacde12 100644 --- a/test/spec/modules/agmaAnalyticsAdapter_spec.js +++ b/test/spec/modules/agmaAnalyticsAdapter_spec.js @@ -7,7 +7,7 @@ import agmaAnalyticsAdapter, { import { gdprDataHandler } from '../../../src/adapterManager.js'; import { expect } from 'chai'; import * as events from '../../../src/events.js'; -import constants from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import { generateUUID } from '../../../src/utils.js'; import { server } from '../../mocks/xhr.js'; import { config } from 'src/config.js'; @@ -281,22 +281,22 @@ describe('AGMA Analytics Adapter', () => { auctionId: generateUUID(), }; - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { auctionId: generateUUID('1'), auction, }); clock.tick(200); - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { auctionId: generateUUID('2'), auction, }); - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { auctionId: generateUUID('3'), auction, }); - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { auctionId: generateUUID('4'), auction, }); @@ -307,7 +307,7 @@ describe('AGMA Analytics Adapter', () => { const requestBody = JSON.parse(request.requestBody); expect(request.url).to.equal(INGEST_URL); expect(requestBody).to.have.all.keys(extendedKey); - expect(requestBody.triggerEvent).to.equal(constants.EVENTS.AUCTION_INIT); + expect(requestBody.triggerEvent).to.equal(EVENTS.AUCTION_INIT); expect(server.requests).to.have.length(1); }); @@ -327,14 +327,14 @@ describe('AGMA Analytics Adapter', () => { auctionId: generateUUID(), }; - events.emit(constants.EVENTS.AUCTION_INIT, auction); + events.emit(EVENTS.AUCTION_INIT, auction); clock.tick(1100); const [request] = server.requests; const requestBody = JSON.parse(request.requestBody); expect(request.url).to.equal(INGEST_URL); expect(requestBody).to.have.all.keys(extendedKey); - expect(requestBody.triggerEvent).to.equal(constants.EVENTS.AUCTION_INIT); + expect(requestBody.triggerEvent).to.equal(EVENTS.AUCTION_INIT); expect(requestBody.deviceWidth).to.equal(screen.width); expect(requestBody.deviceHeight).to.equal(screen.height); expect(server.requests).to.have.length(1); @@ -351,13 +351,13 @@ describe('AGMA Analytics Adapter', () => { auctionId: generateUUID(), }; - events.emit(constants.EVENTS.AUCTION_INIT, auction); + events.emit(EVENTS.AUCTION_INIT, auction); clock.tick(1000); const [request] = server.requests; const requestBody = JSON.parse(request.requestBody); expect(request.url).to.equal(INGEST_URL); - expect(requestBody.triggerEvent).to.equal(constants.EVENTS.AUCTION_INIT); + expect(requestBody.triggerEvent).to.equal(EVENTS.AUCTION_INIT); expect(server.requests).to.have.length(1); expect(agmaAnalyticsAdapter.auctionIds).to.have.length(0); }); @@ -369,22 +369,22 @@ describe('AGMA Analytics Adapter', () => { provider: 'agma', options: { code: 'test', - triggerEvent: constants.EVENTS.AUCTION_END + triggerEvent: EVENTS.AUCTION_END }, }); const auction = { auctionId: generateUUID(), }; - events.emit(constants.EVENTS.AUCTION_INIT, auction); - events.emit(constants.EVENTS.AUCTION_END, auction); + events.emit(EVENTS.AUCTION_INIT, auction); + events.emit(EVENTS.AUCTION_END, auction); clock.tick(1000); const [request] = server.requests; const requestBody = JSON.parse(request.requestBody); expect(request.url).to.equal(INGEST_URL); expect(requestBody.auctionIds).to.have.length(1); - expect(requestBody.triggerEvent).to.equal(constants.EVENTS.AUCTION_END); + expect(requestBody.triggerEvent).to.equal(EVENTS.AUCTION_END); expect(server.requests).to.have.length(1); expect(agmaAnalyticsAdapter.auctionIds).to.have.length(0); }); diff --git a/test/spec/modules/appierAnalyticsAdapter_spec.js b/test/spec/modules/appierAnalyticsAdapter_spec.js index cd026f64d49..e380672b73c 100644 --- a/test/spec/modules/appierAnalyticsAdapter_spec.js +++ b/test/spec/modules/appierAnalyticsAdapter_spec.js @@ -4,7 +4,7 @@ import { } from 'modules/appierAnalyticsAdapter.js'; import {expect} from 'chai'; const events = require('src/events'); -const constants = require('src/constants.json'); +const constants = require('src/constants.js'); const affiliateId = 'WhctHaViHtI'; const configId = 'd9cc9a9be9b240eda17cf1c9a8a4b29c'; diff --git a/test/spec/modules/asteriobidAnalyticsAdapter_spec.js b/test/spec/modules/asteriobidAnalyticsAdapter_spec.js index 9be6c1dedac..7c336d2a885 100644 --- a/test/spec/modules/asteriobidAnalyticsAdapter_spec.js +++ b/test/spec/modules/asteriobidAnalyticsAdapter_spec.js @@ -3,9 +3,9 @@ import {expect} from 'chai'; import {server} from 'test/mocks/xhr.js'; import * as utils from 'src/utils.js'; import {expectEvents} from '../../helpers/analytics.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('AsterioBid Analytics Adapter', function () { let bidWonEvent = { @@ -66,7 +66,7 @@ describe('AsterioBid Analytics Adapter', function () { } }); - events.emit(constants.EVENTS.BID_WON, bidWonEvent); + events.emit(EVENTS.BID_WON, bidWonEvent); asteriobidAnalytics.flush(); expect(server.requests.length).to.equal(1); diff --git a/test/spec/modules/atsAnalyticsAdapter_spec.js b/test/spec/modules/atsAnalyticsAdapter_spec.js index 2316f96ec8e..3440cb1efbb 100644 --- a/test/spec/modules/atsAnalyticsAdapter_spec.js +++ b/test/spec/modules/atsAnalyticsAdapter_spec.js @@ -5,10 +5,10 @@ import {server} from '../../mocks/xhr.js'; import {parseBrowser} from '../../../modules/atsAnalyticsAdapter.js'; import {getCoreStorageManager, getStorageManager} from '../../../src/storageManager.js'; import {analyticsUrl} from '../../../modules/atsAnalyticsAdapter.js'; -let utils = require('src/utils'); +import {EVENTS} from 'src/constants.js'; +let utils = require('src/utils'); let events = require('src/events'); -let constants = require('src/constants.json'); const storage = getCoreStorageManager(); let sandbox; @@ -160,22 +160,22 @@ describe('ats analytics adapter', function () { }); // Step 1: Send auction init event - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { timestamp: auctionTimestamp }); // Step 2: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, bidRequest); + events.emit(EVENTS.BID_REQUESTED, bidRequest); // Step 3: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); // Step 4: Send bid time out event - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); + events.emit(EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); // Step 5: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, {}); + events.emit(EVENTS.AUCTION_END, {}); // Step 6: Send bid won event - events.emit(constants.EVENTS.BID_WON, wonRequest); + events.emit(EVENTS.BID_WON, wonRequest); sandbox.stub($$PREBID_GLOBAL$$, 'getAllWinningBids').callsFake((key) => { return [wonRequest] diff --git a/test/spec/modules/automatadAnalyticsAdapter_spec.js b/test/spec/modules/automatadAnalyticsAdapter_spec.js index a7dd28a8dc0..8b566280cc6 100644 --- a/test/spec/modules/automatadAnalyticsAdapter_spec.js +++ b/test/spec/modules/automatadAnalyticsAdapter_spec.js @@ -3,7 +3,7 @@ import * as utils from 'src/utils.js'; import spec, {self as exports} from 'modules/automatadAnalyticsAdapter.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import { expect } from 'chai'; const obj = { @@ -28,7 +28,7 @@ const { BID_TIMEOUT, BID_WON, NO_BID -} = CONSTANTS.EVENTS +} = EVENTS const CONFIG_WITH_DEBUG = { provider: 'atmtdAnalyticsAdapter', diff --git a/test/spec/modules/bidViewabilityIO_spec.js b/test/spec/modules/bidViewabilityIO_spec.js index 5b4944082bc..e18d3bdca58 100644 --- a/test/spec/modules/bidViewabilityIO_spec.js +++ b/test/spec/modules/bidViewabilityIO_spec.js @@ -3,7 +3,7 @@ import * as events from 'src/events.js'; import * as utils from 'src/utils.js'; import * as sinon from 'sinon'; import { expect } from 'chai'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; describe('#bidViewabilityIO', function() { const makeElement = (id) => { @@ -97,7 +97,7 @@ describe('#bidViewabilityIO', function() { expect(mockObserver.unobserve.calledOnce).to.be.true; expect(emitSpy.calledOnce).to.be.true; // expect(emitSpy.firstCall.args).to.be.false; - expect(emitSpy.firstCall.args[0]).to.eq(CONSTANTS.EVENTS.BID_VIEWABLE); + expect(emitSpy.firstCall.args[0]).to.eq(EVENTS.BID_VIEWABLE); }); }) diff --git a/test/spec/modules/bidViewability_spec.js b/test/spec/modules/bidViewability_spec.js index 2d2e51abbe1..1df9aecf73a 100644 --- a/test/spec/modules/bidViewability_spec.js +++ b/test/spec/modules/bidViewability_spec.js @@ -5,7 +5,7 @@ import * as utils from 'src/utils.js'; import * as sinon from 'sinon'; import {expect, spy} from 'chai'; import * as prebidGlobal from 'src/prebidGlobal.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import adapterManager, { gdprDataHandler, uspDataHandler } from 'src/adapterManager.js'; import parse from 'url-parse'; @@ -292,9 +292,9 @@ describe('#bidViewability', function() { let call = callBidViewableBidderSpy.getCall(0); expect(call.args[0]).to.equal(PBJS_WINNING_BID.bidder); expect(call.args[1]).to.deep.equal(PBJS_WINNING_BID); - // CONSTANTS.EVENTS.BID_VIEWABLE is triggered + // EVENTS.BID_VIEWABLE is triggered call = eventsEmitSpy.getCall(0); - expect(call.args[0]).to.equal(CONSTANTS.EVENTS.BID_VIEWABLE); + expect(call.args[0]).to.equal(EVENTS.BID_VIEWABLE); expect(call.args[1]).to.deep.equal(PBJS_WINNING_BID); }); @@ -303,7 +303,7 @@ describe('#bidViewability', function() { expect(triggerPixelSpy.callCount).to.equal(0); // adapterManager.callBidViewableBidder is NOT called expect(callBidViewableBidderSpy.callCount).to.equal(0); - // CONSTANTS.EVENTS.BID_VIEWABLE is NOT triggered + // EVENTS.BID_VIEWABLE is NOT triggered expect(eventsEmitSpy.callCount).to.equal(0); }); diff --git a/test/spec/modules/bidwatchAnalyticsAdapter_spec.js b/test/spec/modules/bidwatchAnalyticsAdapter_spec.js index be1ffb06c76..d934a6c611b 100644 --- a/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +++ b/test/spec/modules/bidwatchAnalyticsAdapter_spec.js @@ -2,9 +2,10 @@ import bidwatchAnalytics from 'modules/bidwatchAnalyticsAdapter.js'; import {dereferenceWithoutRenderer} from 'modules/bidwatchAnalyticsAdapter.js'; import { expect } from 'chai'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; + let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); describe('BidWatch Analytics', function () { let timestamp = new Date() - 256; @@ -301,10 +302,10 @@ describe('BidWatch Analytics', function () { } }); - events.emit(constants.EVENTS.BID_REQUESTED, auctionEnd['bidderRequests'][0]); - events.emit(constants.EVENTS.BID_RESPONSE, auctionEnd['bidsReceived'][0]); - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); - events.emit(constants.EVENTS.AUCTION_END, auctionEnd); + events.emit(EVENTS.BID_REQUESTED, auctionEnd['bidderRequests'][0]); + events.emit(EVENTS.BID_RESPONSE, auctionEnd['bidsReceived'][0]); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.AUCTION_END, auctionEnd); expect(server.requests.length).to.equal(1); let message = JSON.parse(server.requests[0].requestBody); expect(message).to.have.property('auctionEnd').exist; @@ -331,7 +332,7 @@ describe('BidWatch Analytics', function () { domain: 'test' } }); - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.BID_WON, bidWon); expect(server.requests.length).to.equal(1); let message = JSON.parse(server.requests[0].requestBody); expect(message).not.to.have.property('ad'); diff --git a/test/spec/modules/byDataAnalyticsAdapter_spec.js b/test/spec/modules/byDataAnalyticsAdapter_spec.js index c680c687a71..b98b5cb7039 100644 --- a/test/spec/modules/byDataAnalyticsAdapter_spec.js +++ b/test/spec/modules/byDataAnalyticsAdapter_spec.js @@ -1,8 +1,9 @@ import ascAdapter from 'modules/byDataAnalyticsAdapter'; import { expect } from 'chai'; +import {EVENTS} from 'src/constants.js'; + let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); let auctionId = 'b70ef967-5c5b-4602-831e-f2cf16e59af2'; const initOptions = { clientId: 'asc00000', @@ -176,9 +177,9 @@ describe('byData Analytics Adapter ', () => { }); }); it('sends and formatted auction data ', function () { - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeoutArgs); - events.emit(constants.EVENTS.NO_BID, noBidArgs); - events.emit(constants.EVENTS.BID_WON, bidWonArgs) + events.emit(EVENTS.BID_TIMEOUT, bidTimeoutArgs); + events.emit(EVENTS.NO_BID, noBidArgs); + events.emit(EVENTS.BID_WON, bidWonArgs) var userToken = ascAdapter.getVisitorData(userData); var newAuData = ascAdapter.dataProcess(auctionEndArgs); var newBwData = ascAdapter.getBidWonData(bidWonArgs); diff --git a/test/spec/modules/cleanioRtdProvider_spec.js b/test/spec/modules/cleanioRtdProvider_spec.js index 1d21fbd8457..3145108c373 100644 --- a/test/spec/modules/cleanioRtdProvider_spec.js +++ b/test/spec/modules/cleanioRtdProvider_spec.js @@ -2,7 +2,7 @@ import { loadExternalScriptStub } from 'test/mocks/adloaderStub.js'; import * as utils from '../../../src/utils.js'; import * as hook from '../../../src/hook.js' import * as events from '../../../src/events.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import { __TEST__ } from '../../../modules/cleanioRtdProvider.js'; @@ -193,16 +193,16 @@ describe('clean.io RTD module', function () { const eventCounter = { registerCleanioBillingEvent: function() {} }; sinon.spy(eventCounter, 'registerCleanioBillingEvent'); - events.on(CONSTANTS.EVENTS.BILLABLE_EVENT, (evt) => { + events.on(EVENTS.BILLABLE_EVENT, (evt) => { if (evt.vendor === 'clean.io') { eventCounter.registerCleanioBillingEvent() } }); - events.emit(CONSTANTS.EVENTS.BID_WON, {}); - events.emit(CONSTANTS.EVENTS.BID_WON, {}); - events.emit(CONSTANTS.EVENTS.BID_WON, {}); - events.emit(CONSTANTS.EVENTS.BID_WON, {}); + events.emit(EVENTS.BID_WON, {}); + events.emit(EVENTS.BID_WON, {}); + events.emit(EVENTS.BID_WON, {}); + events.emit(EVENTS.BID_WON, {}); sinon.assert.callCount(eventCounter.registerCleanioBillingEvent, 4); }); diff --git a/test/spec/modules/concertAnalyticsAdapter_spec.js b/test/spec/modules/concertAnalyticsAdapter_spec.js index 1df73ae04fe..7cb6db1b1a0 100644 --- a/test/spec/modules/concertAnalyticsAdapter_spec.js +++ b/test/spec/modules/concertAnalyticsAdapter_spec.js @@ -1,10 +1,11 @@ import concertAnalytics from 'modules/concertAnalyticsAdapter.js'; import { expect } from 'chai'; import {expectEvents} from '../../helpers/analytics.js'; +import { EVENTS } from 'src/constants.js'; + const sinon = require('sinon'); let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); describe('ConcertAnalyticsAdapter', function() { let sandbox; @@ -147,10 +148,10 @@ describe('ConcertAnalyticsAdapter', function() { } function fireBidEvents(events) { - events.emit(constants.EVENTS.AUCTION_INIT, {timestamp, auctionId, timeout, adUnits}); - events.emit(constants.EVENTS.BID_REQUESTED, {bidder: 'concert'}); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); - events.emit(constants.EVENTS.AUCTION_END, {}); - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.AUCTION_INIT, { timestamp, auctionId, timeout, adUnits }); + events.emit(EVENTS.BID_REQUESTED, { bidder: 'concert' }); + events.emit(EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.AUCTION_END, {}); + events.emit(EVENTS.BID_WON, bidWon); } }); diff --git a/test/spec/modules/confiantRtdProvider_spec.js b/test/spec/modules/confiantRtdProvider_spec.js index 8f9fcd0ba98..f9b86046f3a 100644 --- a/test/spec/modules/confiantRtdProvider_spec.js +++ b/test/spec/modules/confiantRtdProvider_spec.js @@ -1,7 +1,7 @@ import * as utils from '../../../src/utils.js'; import * as hook from '../../../src/hook.js' import * as events from '../../../src/events.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import confiantModule from '../../../modules/confiantRtdProvider.js'; @@ -48,7 +48,7 @@ describe('Confiant RTD module', function () { let billableEventsCounter = 0; const propertyId = 'fff'; - events.on(CONSTANTS.EVENTS.BILLABLE_EVENT, (e) => { + events.on(EVENTS.BILLABLE_EVENT, (e) => { if (e.vendor === 'confiant') { billableEventsCounter++; expect(e.type).to.equal('impression'); diff --git a/test/spec/modules/conversantAnalyticsAdapter_spec.js b/test/spec/modules/conversantAnalyticsAdapter_spec.js index f425535ce73..75cb63b02f6 100644 --- a/test/spec/modules/conversantAnalyticsAdapter_spec.js +++ b/test/spec/modules/conversantAnalyticsAdapter_spec.js @@ -1,13 +1,13 @@ import sinon from 'sinon'; -import {expect} from 'chai'; -import {default as conversantAnalytics, CNVR_CONSTANTS, cnvrHelper} from 'modules/conversantAnalyticsAdapter'; +import { expect } from 'chai'; +import { default as conversantAnalytics, CNVR_CONSTANTS, cnvrHelper } from 'modules/conversantAnalyticsAdapter'; import * as utils from 'src/utils.js'; import * as prebidGlobal from 'src/prebidGlobal'; -import {server} from '../../mocks/xhr.js'; +import { server } from '../../mocks/xhr.js'; -import constants from 'src/constants.json' +import {EVENTS} from 'src/constants.js' -let events = require('src/events'); +const events = require('src/events'); describe('Conversant analytics adapter tests', function() { let sandbox; // sinon sandbox to make restoring all stubbed objects easier @@ -39,7 +39,7 @@ describe('Conversant analytics adapter tests', function() { requests = server.requests; sandbox = sinon.sandbox.create(); sandbox.stub(events, 'getEvents').returns([]); // need to stub this otherwise unwanted events seem to get fired during testing - let getGlobalStub = { + const getGlobalStub = { version: PREBID_VERSION, getUserIds: function() { // userIdTargeting.js init() gets called on AUCTION_END so we need to mock this function. return {}; @@ -98,7 +98,7 @@ describe('Conversant analytics adapter tests', function() { it('should NOT sample when sampling set to 0', function() { sandbox.stub(utils, 'logError'); const NEVER_SAMPLE_CONFIG = utils.deepClone(VALID_ALWAYS_SAMPLE_CONFIG); - NEVER_SAMPLE_CONFIG['options'].cnvr_sampling = 0; + NEVER_SAMPLE_CONFIG.options.cnvr_sampling = 0; conversantAnalytics.disableAnalytics(); conversantAnalytics.enableAnalytics(NEVER_SAMPLE_CONFIG); expect(utils.logError.called).to.equal(false); @@ -110,17 +110,17 @@ describe('Conversant analytics adapter tests', function() { it('should cleanup up cache objects', function() { conversantAnalytics.enableAnalytics(VALID_CONFIGURATION); - cnvrHelper.adIdLookup['keep'] = {timeReceived: DATESTAMP + 1}; - cnvrHelper.adIdLookup['delete'] = {timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE}; + cnvrHelper.adIdLookup.keep = { timeReceived: DATESTAMP + 1 }; + cnvrHelper.adIdLookup.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE }; - cnvrHelper.timeoutCache['keep'] = {timeReceived: DATESTAMP + 1}; - cnvrHelper.timeoutCache['delete'] = {timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE}; + cnvrHelper.timeoutCache.keep = { timeReceived: DATESTAMP + 1 }; + cnvrHelper.timeoutCache.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE }; - cnvrHelper.auctionIdTimestampCache['keep'] = {timeReceived: DATESTAMP + 1}; - cnvrHelper.auctionIdTimestampCache['delete'] = {timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE}; + cnvrHelper.auctionIdTimestampCache.keep = { timeReceived: DATESTAMP + 1 }; + cnvrHelper.auctionIdTimestampCache.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE }; - cnvrHelper.bidderErrorCache['keep'] = {timeReceived: DATESTAMP + 1, errors: []}; - cnvrHelper.bidderErrorCache['delete'] = {timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE, errors: []}; + cnvrHelper.bidderErrorCache.keep = { timeReceived: DATESTAMP + 1, errors: [] }; + cnvrHelper.bidderErrorCache.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE, errors: [] }; expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(2); expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(2); @@ -145,12 +145,12 @@ describe('Conversant analytics adapter tests', function() { it('createBid() should return correct object', function() { const EVENT_CODE = 1; const TIME = 2; - let bid = cnvrHelper.createBid(EVENT_CODE, 2); - expect(bid).to.deep.equal({'eventCodes': [EVENT_CODE], 'timeToRespond': TIME}); + const bid = cnvrHelper.createBid(EVENT_CODE, 2); + expect(bid).to.deep.equal({ eventCodes: [EVENT_CODE], timeToRespond: TIME }); }); it('createAdUnit() should return correct object', function() { - let adUnit = cnvrHelper.createAdUnit(); + const adUnit = cnvrHelper.createAdUnit(); expect(adUnit).to.deep.equal({ sizes: [], mediaTypes: [], @@ -160,13 +160,13 @@ describe('Conversant analytics adapter tests', function() { it('createAdSize() should return correct object', function() { let adSize = cnvrHelper.createAdSize(1, 2); - expect(adSize).to.deep.equal({w: 1, h: 2}); + expect(adSize).to.deep.equal({ w: 1, h: 2 }); adSize = cnvrHelper.createAdSize(); - expect(adSize).to.deep.equal({w: -1, h: -1}); + expect(adSize).to.deep.equal({ w: -1, h: -1 }); adSize = cnvrHelper.createAdSize('foo', 'bar'); - expect(adSize).to.deep.equal({w: -1, h: -1}); + expect(adSize).to.deep.equal({ w: -1, h: -1 }); }); it('getLookupKey() should return correct object', function() { @@ -183,7 +183,7 @@ describe('Conversant analytics adapter tests', function() { const myDate = Date.now(); conversantAnalytics.enableAnalytics(VALID_ALWAYS_SAMPLE_CONFIG); - let payload = cnvrHelper.createPayload(REQUEST_TYPE, AUCTION_ID, myDate); + const payload = cnvrHelper.createPayload(REQUEST_TYPE, AUCTION_ID, myDate); expect(payload).to.deep.equal({ bidderErrors: [], cnvrSampleRate: 1, @@ -200,7 +200,7 @@ describe('Conversant analytics adapter tests', function() { }); it('keyExistsAndIsObject() should return correct data', function() { - let data = { + const data = { a: [], b: 1, c: 'foo', @@ -216,21 +216,21 @@ describe('Conversant analytics adapter tests', function() { }); it('deduplicateArray() should return correct data', function () { - let arrayOfObjects = [{w: 1, h: 2}, {w: 2, h: 3}, {w: 1, h: 2}]; - let array = [3, 2, 1, 1, 2, 3]; + const arrayOfObjects = [{ w: 1, h: 2 }, { w: 2, h: 3 }, { w: 1, h: 2 }]; + const array = [3, 2, 1, 1, 2, 3]; let empty; - let notArray = 3; - let emptyArray = []; + const notArray = 3; + const emptyArray = []; expect(JSON.stringify(cnvrHelper.deduplicateArray(array))).to.equal(JSON.stringify([3, 2, 1])); - expect(JSON.stringify(cnvrHelper.deduplicateArray(arrayOfObjects))).to.equal(JSON.stringify([{w: 1, h: 2}, {w: 2, h: 3}])); + expect(JSON.stringify(cnvrHelper.deduplicateArray(arrayOfObjects))).to.equal(JSON.stringify([{ w: 1, h: 2 }, { w: 2, h: 3 }])); expect(JSON.stringify(cnvrHelper.deduplicateArray(emptyArray))).to.equal(JSON.stringify([])); expect(cnvrHelper.deduplicateArray(empty)).to.be.undefined; expect(cnvrHelper.deduplicateArray(notArray)).to.equal(notArray); }); it('getSampleRate() should return correct data', function () { - let obj = { + const obj = { sampling: 1, cnvr_sampling: 0.5, too_big: 1.2, @@ -249,7 +249,7 @@ describe('Conversant analytics adapter tests', function() { }); it('getPageUrl() should return correct data', function() { - let url = cnvrHelper.getPageUrl(); + const url = cnvrHelper.getPageUrl(); expect(url.length).to.be.above(1); }); @@ -313,20 +313,20 @@ describe('Conversant analytics adapter tests', function() { describe('Bid Timeout Event Tests', function() { const BID_TIMEOUT_PAYLOAD = [{ - 'bidId': '80882409358b8a8', - 'bidder': 'conversant', - 'adUnitCode': 'MedRect', - 'auctionId': 'afbd6e0b-e45b-46ab-87bf-c0bac0cb8881' + bidId: '80882409358b8a8', + bidder: 'conversant', + adUnitCode: 'MedRect', + auctionId: 'afbd6e0b-e45b-46ab-87bf-c0bac0cb8881' }, { - 'bidId': '9da4c107a6f24c8', - 'bidder': 'conversant', - 'adUnitCode': 'Leaderboard', - 'auctionId': 'afbd6e0b-e45b-46ab-87bf-c0bac0cb8881' + bidId: '9da4c107a6f24c8', + bidder: 'conversant', + adUnitCode: 'Leaderboard', + auctionId: 'afbd6e0b-e45b-46ab-87bf-c0bac0cb8881' }]; it('should put both items in timeout cache', function() { expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(0); - events.emit(constants.EVENTS.BID_TIMEOUT, BID_TIMEOUT_PAYLOAD); + events.emit(EVENTS.BID_TIMEOUT, BID_TIMEOUT_PAYLOAD); expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(2); BID_TIMEOUT_PAYLOAD.forEach(timeoutBid => { @@ -358,7 +358,7 @@ describe('Conversant analytics adapter tests', function() { }; expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1); - events.emit(constants.EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD); + events.emit(EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD); expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0); // object should be removed expect(requests).to.have.lengthOf(1); const data = JSON.parse(requests[0].requestBody); @@ -366,8 +366,8 @@ describe('Conversant analytics adapter tests', function() { expect(data.auction.auctionId).to.equal('auctionId'); expect(data.auction.preBidVersion).to.equal(PREBID_VERSION); expect(data.auction.sid).to.equal(SITE_ID); - expect(data.adUnits['adUnitCode'].bids['bidderCode'][0].eventCodes.includes(CNVR_CONSTANTS.RENDER_FAILED)).to.be.true; - expect(data.adUnits['adUnitCode'].bids['bidderCode'][0].message).to.have.lengthOf.above(0); + expect(data.adUnits.adUnitCode.bids.bidderCode[0].eventCodes.includes(CNVR_CONSTANTS.RENDER_FAILED)).to.be.true; + expect(data.adUnits.adUnitCode.bids.bidderCode[0].message).to.have.lengthOf.above(0); }); it('should not send data if no adId', function() { @@ -379,14 +379,14 @@ describe('Conversant analytics adapter tests', function() { }; expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1); - events.emit(constants.EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD_NO_ADID); + events.emit(EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD_NO_ADID); expect(requests).to.have.lengthOf(1); expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1); // same object in cache as before... no change expect(cnvrHelper.adIdLookup[RENDER_FAILED_PAYLOAD.adId]).to.not.be.undefined; expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors'); const data = JSON.parse(requests[0].requestBody); - expect(data.event).to.be.equal(constants.EVENTS.AD_RENDER_FAILED); + expect(data.event).to.be.equal(EVENTS.AD_RENDER_FAILED); expect(data.siteId).to.be.equal(SITE_ID); expect(data.message).to.not.be.undefined; expect(data.prebidVersion).to.not.be.undefined; @@ -402,13 +402,13 @@ describe('Conversant analytics adapter tests', function() { }; expect(requests).to.have.lengthOf(0); expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1); - events.emit(constants.EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD); + events.emit(EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD); expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0); // object should be removed but no call made to send data expect(requests).to.have.lengthOf(1); expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors'); const data = JSON.parse(requests[0].requestBody); - expect(data.event).to.be.equal(constants.EVENTS.AD_RENDER_FAILED); + expect(data.event).to.be.equal(EVENTS.AD_RENDER_FAILED); expect(data.siteId).to.be.equal(SITE_ID); expect(data.message).to.not.be.undefined; expect(data.prebidVersion).to.not.be.undefined; @@ -492,14 +492,14 @@ describe('Conversant analytics adapter tests', function() { it('should not send data or put a record in adIdLookup when bad data provided', function() { expect(requests).to.have.lengthOf(0); expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0); - events.emit(constants.EVENTS.BID_WON, BAD_BID_WON_ARGS); + events.emit(EVENTS.BID_WON, BAD_BID_WON_ARGS); expect(requests).to.have.lengthOf(1); expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0); // check for error event expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors'); const data = JSON.parse(requests[0].requestBody); - expect(data.event).to.be.equal(constants.EVENTS.BID_WON); + expect(data.event).to.be.equal(EVENTS.BID_WON); expect(data.siteId).to.be.equal(SITE_ID); expect(data.message).to.not.be.undefined; expect(data.prebidVersion).to.not.be.undefined; @@ -509,11 +509,11 @@ describe('Conversant analytics adapter tests', function() { it('should send data and put a record in adIdLookup', function() { const myAuctionStart = Date.now(); - cnvrHelper.auctionIdTimestampCache[GOOD_BID_WON_ARGS.auctionId] = {timeReceived: myAuctionStart}; + cnvrHelper.auctionIdTimestampCache[GOOD_BID_WON_ARGS.auctionId] = { timeReceived: myAuctionStart }; expect(requests).to.have.lengthOf(0); expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0); - events.emit(constants.EVENTS.BID_WON, GOOD_BID_WON_ARGS); + events.emit(EVENTS.BID_WON, GOOD_BID_WON_ARGS); // Check that adIdLookup was set correctly expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1); @@ -914,16 +914,16 @@ describe('Conversant analytics adapter tests', function() { it('should not do anything when auction id doesnt exist', function() { sandbox.stub(utils, 'logError'); - let BAD_ARGS = JSON.parse(JSON.stringify(AUCTION_END_PAYLOAD)); + const BAD_ARGS = JSON.parse(JSON.stringify(AUCTION_END_PAYLOAD)); delete BAD_ARGS.auctionId; expect(requests).to.have.lengthOf(0); - events.emit(constants.EVENTS.AUCTION_END, BAD_ARGS); + events.emit(EVENTS.AUCTION_END, BAD_ARGS); expect(requests).to.have.lengthOf(1); // check for error event expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors'); const data = JSON.parse(requests[0].requestBody); - expect(data.event).to.be.equal(constants.EVENTS.AUCTION_END); + expect(data.event).to.be.equal(EVENTS.AUCTION_END); expect(data.siteId).to.be.equal(SITE_ID); expect(data.message).to.not.be.undefined; expect(data.prebidVersion).to.not.be.undefined; @@ -961,7 +961,7 @@ describe('Conversant analytics adapter tests', function() { expect(Object.keys(cnvrHelper.auctionIdTimestampCache)).to.have.lengthOf(0); expect(Object.keys(cnvrHelper.bidderErrorCache)).to.have.lengthOf(1); - events.emit(constants.EVENTS.AUCTION_END, AUCTION_END_PAYLOAD); + events.emit(EVENTS.AUCTION_END, AUCTION_END_PAYLOAD); expect(utils.logError.called).to.equal(false); expect(requests).to.have.lengthOf(1); expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(0); @@ -993,7 +993,7 @@ describe('Conversant analytics adapter tests', function() { expect(data.adUnits[AD_UNIT_CODE_NATIVE].sizes).to.have.lengthOf(0); expect(Object.keys(data.adUnits[AD_UNIT_CODE].bids)).to.have.lengthOf(2); - const cnvrBidsArray = data.adUnits[AD_UNIT_CODE].bids['conversant']; + const cnvrBidsArray = data.adUnits[AD_UNIT_CODE].bids.conversant; // testing multiple bids from same bidder expect(cnvrBidsArray).to.have.lengthOf(2); expect(cnvrBidsArray[0].eventCodes.includes(CNVR_CONSTANTS.BID)).to.be.true; @@ -1014,7 +1014,7 @@ describe('Conversant analytics adapter tests', function() { expect(cnvrBidsArray[1].adSize.h).to.equal(100); expect(cnvrBidsArray[1].mediaType).to.equal('banner'); - const apnBidsArray = data.adUnits[AD_UNIT_CODE].bids['appnexus']; + const apnBidsArray = data.adUnits[AD_UNIT_CODE].bids.appnexus; expect(apnBidsArray).to.have.lengthOf(2); let apnBid = apnBidsArray[0]; expect(apnBid.originalCpm).to.be.undefined; @@ -1034,7 +1034,7 @@ describe('Conversant analytics adapter tests', function() { expect(apnBid.mediaType).to.be.undefined; expect(Object.keys(data.adUnits[AD_UNIT_CODE_NATIVE].bids)).to.have.lengthOf(1); - const apnNativeBidsArray = data.adUnits[AD_UNIT_CODE_NATIVE].bids['appnexus']; + const apnNativeBidsArray = data.adUnits[AD_UNIT_CODE_NATIVE].bids.appnexus; expect(apnNativeBidsArray).to.have.lengthOf(1); const apnNativeBid = apnNativeBidsArray[0]; expect(apnNativeBid.eventCodes.includes(CNVR_CONSTANTS.BID)).to.be.true; @@ -1075,7 +1075,7 @@ describe('Conversant analytics adapter tests', function() { bidderCode: 'myBidderCode', bidderRequestId: '15246a574e859f', bids: [{}], - gdprConsent: {consentString: 'BOtmiBKOtmiBKABABAENAFAAAAACeAAA', vendorData: {}, gdprApplies: true}, + gdprConsent: { consentString: 'BOtmiBKOtmiBKABABAENAFAAAAACeAAA', vendorData: {}, gdprApplies: true }, refererInfo: { canonicalUrl: null, page: 'http://mypage.org?pbjs_debug=true', @@ -1089,12 +1089,12 @@ describe('Conversant analytics adapter tests', function() { }; it('should record error when bidder_error called', function() { - let warnStub = sandbox.stub(utils, 'logWarn'); + const warnStub = sandbox.stub(utils, 'logWarn'); expect(requests).to.have.lengthOf(0); expect(Object.keys(cnvrHelper.bidderErrorCache)).to.have.lengthOf(0); expect(warnStub.calledOnce).to.be.false; - events.emit(constants.EVENTS.BIDDER_ERROR, {'error': XHR_ERROR_MOCK, 'bidderRequest': MOCK_BID_REQUEST}); + events.emit(EVENTS.BIDDER_ERROR, { error: XHR_ERROR_MOCK, bidderRequest: MOCK_BID_REQUEST }); expect(Object.keys(cnvrHelper.bidderErrorCache)).to.have.lengthOf(1); expect(warnStub.calledOnce).to.be.true; @@ -1105,7 +1105,7 @@ describe('Conversant analytics adapter tests', function() { expect(errorObj.errors[0].bidderCode).to.equal(MOCK_BID_REQUEST.bidderCode); expect(errorObj.errors[0].url).to.not.be.undefined; - events.emit(constants.EVENTS.BIDDER_ERROR, {'error': XHR_ERROR_MOCK, 'bidderRequest': MOCK_BID_REQUEST}); + events.emit(EVENTS.BIDDER_ERROR, { error: XHR_ERROR_MOCK, bidderRequest: MOCK_BID_REQUEST }); errorObj = cnvrHelper.bidderErrorCache[MOCK_BID_REQUEST.auctionId]; expect(errorObj.errors).to.have.lengthOf(2); }); diff --git a/test/spec/modules/currency_spec.js b/test/spec/modules/currency_spec.js index fa44b7daa7a..e96867f4e84 100644 --- a/test/spec/modules/currency_spec.js +++ b/test/spec/modules/currency_spec.js @@ -13,7 +13,7 @@ import { responseReady } from 'modules/currency.js'; import {createBid} from '../../../src/bidfactory.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS, STATUS, REJECTION_REASON } from '../../../src/constants.js'; import {server} from '../../mocks/xhr.js'; import * as events from 'src/events.js'; @@ -28,7 +28,7 @@ describe('currency', function () { let fn = sinon.spy(); function makeBid(bidProps) { - return Object.assign(createBid(CONSTANTS.STATUS.GOOD), bidProps); + return Object.assign(createBid(STATUS.GOOD), bidProps); } beforeEach(function () { @@ -335,7 +335,7 @@ describe('currency', function () { addBidResponseHook(addBidResponse, 'au', bid, reject); fakeCurrencyFileServer.respond(); sinon.assert.notCalled(addBidResponse); - sinon.assert.calledWith(reject, CONSTANTS.REJECTION_REASON.CANNOT_CONVERT_CURRENCY); + sinon.assert.calledWith(reject, REJECTION_REASON.CANNOT_CONVERT_CURRENCY); }); it('attempts to load rates again on the next auction', () => { @@ -344,7 +344,7 @@ describe('currency', function () { }); fakeCurrencyFileServer.respond(); fakeCurrencyFileServer.respondWith(JSON.stringify(getCurrencyRates())); - events.emit(CONSTANTS.EVENTS.AUCTION_INIT, {}); + events.emit(EVENTS.AUCTION_INIT, {}); addBidResponseHook(addBidResponse, 'au', bid, reject); fakeCurrencyFileServer.respond(); sinon.assert.calledWith(addBidResponse, 'au', bid, reject); @@ -462,12 +462,12 @@ describe('currency', function () { const addBidResponse = sinon.spy(); addBidResponseHook(addBidResponse, 'au', bid, reject); addBidResponseHook(addBidResponse, 'au', noConversionBid, reject); - events.emit(CONSTANTS.EVENTS.AUCTION_TIMEOUT, {auctionId: 'aid'}); + events.emit(EVENTS.AUCTION_TIMEOUT, { auctionId: 'aid' }); fakeCurrencyFileServer.respond(); sinon.assert.calledOnce(addBidResponse); sinon.assert.calledWith(addBidResponse, 'au', noConversionBid, reject); sinon.assert.calledOnce(reject); - sinon.assert.calledWith(reject, CONSTANTS.REJECTION_REASON.CANNOT_CONVERT_CURRENCY); + sinon.assert.calledWith(reject, REJECTION_REASON.CANNOT_CONVERT_CURRENCY); }) it('should return 1 when currency support is enabled and same currency code is requested as is set to adServerCurrency', function () { diff --git a/test/spec/modules/dsaControl_spec.js b/test/spec/modules/dsaControl_spec.js index 0d7c52b5efd..45392d58c04 100644 --- a/test/spec/modules/dsaControl_spec.js +++ b/test/spec/modules/dsaControl_spec.js @@ -1,5 +1,5 @@ import {addBidResponseHook, setMetaDsa, reset} from '../../../modules/dsaControl.js'; -import CONSTANTS from 'src/constants.json'; +import { REJECTION_REASON } from 'src/constants.js'; import {auctionManager} from '../../../src/auctionManager.js'; import {AuctionIndex} from '../../../src/auctionIndex.js'; @@ -51,7 +51,7 @@ describe('DSA transparency', () => { }); it('should reject bids that have no meta.dsa', () => { - expectRejection(CONSTANTS.REJECTION_REASON.DSA_REQUIRED); + expectRejection(REJECTION_REASON.DSA_REQUIRED); }); it('should accept bids that do', () => { @@ -66,7 +66,7 @@ describe('DSA transparency', () => { it('should reject bids with adrender = 0 (advertiser will not render)', () => { bid.meta = {dsa: {adrender: 0}}; - expectRejection(CONSTANTS.REJECTION_REASON.DSA_MISMATCH); + expectRejection(REJECTION_REASON.DSA_MISMATCH); }); it('should accept bids with adrender = 1 (advertiser will render)', () => { @@ -81,7 +81,7 @@ describe('DSA transparency', () => { it('should reject bids with adrender = 1 (advertiser will render)', () => { bid.meta = {dsa: {adrender: 1}}; - expectRejection(CONSTANTS.REJECTION_REASON.DSA_MISMATCH); + expectRejection(REJECTION_REASON.DSA_MISMATCH); }); it('should accept bids with adrender = 0 (advertiser will not render)', () => { diff --git a/test/spec/modules/eplanningAnalyticsAdapter_spec.js b/test/spec/modules/eplanningAnalyticsAdapter_spec.js index 419181de983..dddc248b409 100644 --- a/test/spec/modules/eplanningAnalyticsAdapter_spec.js +++ b/test/spec/modules/eplanningAnalyticsAdapter_spec.js @@ -3,9 +3,10 @@ import {includes} from 'src/polyfill.js'; import { expect } from 'chai'; import { parseUrl } from 'src/utils.js'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; + let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); describe('eplanning analytics adapter', function () { beforeEach(function () { @@ -82,22 +83,22 @@ describe('eplanning analytics adapter', function () { // Emit the events with the "real" arguments // Step 1: Send auction init event - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { auctionId: pauctionId, timestamp: auctionTimestamp }); // Step 2: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, bidRequest); + events.emit(EVENTS.BID_REQUESTED, bidRequest); // Step 3: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); // Step 4: Send bid time out event - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); // Step 5: Send auction bid won event - events.emit(constants.EVENTS.BID_WON, { + events.emit(EVENTS.BID_WON, { adId: 'adIdData', ad: 'adContent', auctionId: pauctionId, @@ -106,7 +107,7 @@ describe('eplanning analytics adapter', function () { }); // Step 6: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, {auctionId: pauctionId}); + events.emit(EVENTS.AUCTION_END, { auctionId: pauctionId }); // Step 7: Find the request data sent (filtering other hosts) let requests = server.requests.filter(req => { @@ -127,22 +128,28 @@ describe('eplanning analytics adapter', function () { // Step 9 verify that we only receive the parameters we need let expectedEventValues = [ // AUCTION INIT - {ec: constants.EVENTS.AUCTION_INIT, + { + ec: EVENTS.AUCTION_INIT, p: {auctionId: pauctionId, time: auctionTimestamp}}, // BID REQ - {ec: constants.EVENTS.BID_REQUESTED, + { + ec: EVENTS.BID_REQUESTED, p: {auctionId: pauctionId, time: 1509369418389, bidder: pbidderCode, bids: [{time: 1509369418389, sizes: [[300, 250]], bidder: pbidderCode, placementCode: 'container-1', auctionId: pauctionId}]}}, // BID RESP - {ec: constants.EVENTS.BID_RESPONSE, + { + ec: EVENTS.BID_RESPONSE, p: {auctionId: pauctionId, bidder: pbidderCode, cpm: 0.015, size: '300x250', time: 1509369418832}}, // BID T.O. - {ec: constants.EVENTS.BID_TIMEOUT, + { + ec: EVENTS.BID_TIMEOUT, p: [{auctionId: pauctionId, bidder: pbidderCode}]}, // BID WON - {ec: constants.EVENTS.BID_WON, + { + ec: EVENTS.BID_WON, p: {auctionId: pauctionId, size: '300x250'}}, // AUCTION END - {ec: constants.EVENTS.AUCTION_END, + { + ec: EVENTS.AUCTION_END, p: {auctionId: pauctionId}} ]; diff --git a/test/spec/modules/fintezaAnalyticsAdapter_spec.js b/test/spec/modules/fintezaAnalyticsAdapter_spec.js index cddffc63554..1e4c5cbcdd3 100644 --- a/test/spec/modules/fintezaAnalyticsAdapter_spec.js +++ b/test/spec/modules/fintezaAnalyticsAdapter_spec.js @@ -3,10 +3,10 @@ import {includes} from 'src/polyfill.js'; import { expect } from 'chai'; import { parseUrl } from 'src/utils.js'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); function setCookie(name, value, expires) { document.cookie = name + '=' + value + @@ -74,7 +74,7 @@ describe('finteza analytics adapter', function () { }; // Emit the events with the "real" arguments - events.emit(constants.EVENTS.BID_REQUESTED, bidRequest); + events.emit(EVENTS.BID_REQUESTED, bidRequest); expect(server.requests.length).to.equal(1); @@ -117,7 +117,7 @@ describe('finteza analytics adapter', function () { }; // Emit the events with the "real" arguments - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); expect(server.requests[0].method).to.equal('GET'); expect(server.requests[0].withCredentials).to.equal(true); @@ -171,7 +171,7 @@ describe('finteza analytics adapter', function () { } // Emit the events with the "real" arguments - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.BID_WON, bidWon); expect(server.requests[0].method).to.equal('GET'); expect(server.requests[0].withCredentials).to.equal(true); @@ -211,7 +211,7 @@ describe('finteza analytics adapter', function () { ]; // Emit the events with the "real" arguments - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); expect(server.requests[0].method).to.equal('GET'); expect(server.requests[0].withCredentials).to.equal(true); diff --git a/test/spec/modules/genericAnalyticsAdapter_spec.js b/test/spec/modules/genericAnalyticsAdapter_spec.js index 79874f5d756..2d9c7b4ae45 100644 --- a/test/spec/modules/genericAnalyticsAdapter_spec.js +++ b/test/spec/modules/genericAnalyticsAdapter_spec.js @@ -1,8 +1,8 @@ import {defaultHandler, GenericAnalytics} from '../../../modules/genericAnalyticsAdapter.js'; import * as events from 'src/events.js'; -import * as CONSTANTS from 'src/constants.json'; +import {EVENTS} from 'src/constants.js'; -const {AUCTION_INIT, BID_RESPONSE} = CONSTANTS.EVENTS; +const {AUCTION_INIT, BID_RESPONSE} = EVENTS; describe('Generic analytics', () => { describe('adapter', () => { diff --git a/test/spec/modules/geoedgeRtdProvider_spec.js b/test/spec/modules/geoedgeRtdProvider_spec.js index 211a3efa3c6..ecc24bce6b5 100644 --- a/test/spec/modules/geoedgeRtdProvider_spec.js +++ b/test/spec/modules/geoedgeRtdProvider_spec.js @@ -1,11 +1,11 @@ import * as utils from '../../../src/utils.js'; -import {loadExternalScript} from '../../../src/adloader.js'; +import { loadExternalScript } from '../../../src/adloader.js'; import * as geoedgeRtdModule from '../../../modules/geoedgeRtdProvider.js'; -import {server} from '../../../test/mocks/xhr.js'; +import { server } from '../../../test/mocks/xhr.js'; import * as events from '../../../src/events.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; -let { +const { geoedgeSubmodule, getClientUrl, getInPageUrl, @@ -17,35 +17,35 @@ let { markAsLoaded } = geoedgeRtdModule; -let key = '123123123'; +const key = '123123123'; function makeConfig(gpt) { return { name: 'geoedge', params: { wap: false, - key: key, + key, bidders: { bidderA: true, bidderB: false }, - gpt: gpt + gpt } }; } function mockBid(bidderCode) { return { - 'ad': '', - 'adId': '1234', - 'cpm': '1.00', - 'width': 300, - 'height': 250, - 'bidderCode': bidderCode, - 'requestId': utils.getUniqueIdentifierStr(), - 'creativeId': 'id', - 'currency': 'USD', - 'netRevenue': true, - 'ttl': 360 + ad: '', + adId: '1234', + cpm: '1.00', + width: 300, + height: 250, + bidderCode, + requestId: utils.getUniqueIdentifierStr(), + creativeId: 'id', + currency: 'USD', + netRevenue: true, + ttl: 360 }; } @@ -58,7 +58,7 @@ function mockMessageFromClient(key) { }; } -let mockWrapper = `${htmlPlaceholder}`; +const mockWrapper = `${htmlPlaceholder}`; describe('Geoedge RTD module', function () { describe('submodule', function () { @@ -75,8 +75,8 @@ describe('Geoedge RTD module', function () { geoedgeRtdModule.preloadClient.restore(); }); it('should return false when missing params or key', function () { - let missingParams = geoedgeSubmodule.init({}); - let missingKey = geoedgeSubmodule.init({ params: {} }); + const missingParams = geoedgeSubmodule.init({}); + const missingKey = geoedgeSubmodule.init({ params: {} }); expect(missingParams || missingKey).to.equal(false); }); it('should return true when params are ok', function () { @@ -84,8 +84,8 @@ describe('Geoedge RTD module', function () { }); it('should fetch the wrapper', function () { geoedgeSubmodule.init(makeConfig(false)); - let request = server.requests[0]; - let isWrapperRequest = request && request.url && request.url && request.url === WRAPPER_URL; + const request = server.requests[0]; + const isWrapperRequest = request && request.url && request.url && request.url === WRAPPER_URL; expect(isWrapperRequest).to.equal(true); }); it('should call preloadClient', function () { @@ -93,7 +93,7 @@ describe('Geoedge RTD module', function () { }); it('should emit billable events with applicable winning bids', function (done) { let counter = 0; - events.on(CONSTANTS.EVENTS.BILLABLE_EVENT, function (event) { + events.on(EVENTS.BILLABLE_EVENT, function (event) { if (event.vendor === geoedgeSubmodule.name && event.type === 'impression') { counter += 1; } @@ -104,28 +104,28 @@ describe('Geoedge RTD module', function () { }); it('should load the in page code when gpt params is true', function () { geoedgeSubmodule.init(makeConfig(true)); - let isInPageUrl = arg => arg === getInPageUrl(key); + const isInPageUrl = arg => arg === getInPageUrl(key); expect(loadExternalScript.calledWith(sinon.match(isInPageUrl))).to.equal(true); }); it('should set the window.grumi config object when gpt params is true', function () { - let hasGrumiObj = typeof window.grumi === 'object'; + const hasGrumiObj = typeof window.grumi === 'object'; expect(hasGrumiObj && window.grumi.key === key && window.grumi.fromPrebid).to.equal(true); }); }); describe('preloadClient', function () { let iframe; preloadClient(key); - let loadExternalScriptCall = loadExternalScript.getCall(0); + const loadExternalScriptCall = loadExternalScript.getCall(0); it('should create an invisible iframe and insert it to the DOM', function () { iframe = document.getElementById('grumiFrame'); expect(iframe && iframe.style.display === 'none'); }); it('should assign params object to the iframe\'s window', function () { - let grumi = iframe.contentWindow.grumi; + const grumi = iframe.contentWindow.grumi; expect(grumi.key).to.equal(key); }); it('should preload the client into the iframe', function () { - let isClientUrl = arg => arg === getClientUrl(key); + const isClientUrl = arg => arg === getClientUrl(key); expect(loadExternalScriptCall.calledWithMatch(isClientUrl)).to.equal(true); }); }); @@ -137,28 +137,28 @@ describe('Geoedge RTD module', function () { }); describe('getMacros', function () { it('return a dictionary of macros replaced with values from bid object', function () { - let bid = mockBid('testBidder'); - let dict = getMacros(bid, key); - let hasCpm = dict['%_hbCpm!'] === bid.cpm; - let hasCurrency = dict['%_hbCurrency!'] === bid.currency; + const bid = mockBid('testBidder'); + const dict = getMacros(bid, key); + const hasCpm = dict['%_hbCpm!'] === bid.cpm; + const hasCurrency = dict['%_hbCurrency!'] === bid.currency; expect(hasCpm && hasCurrency); }); }); describe('onBidResponseEvent', function () { - let bidFromA = mockBid('bidderA'); + const bidFromA = mockBid('bidderA'); it('should wrap bid html when bidder is configured', function () { geoedgeSubmodule.onBidResponseEvent(bidFromA, makeConfig(false)); expect(bidFromA.ad.indexOf('')).to.equal(0); }); it('should not wrap bid html when bidder is not configured', function () { - let bidFromB = mockBid('bidderB'); + const bidFromB = mockBid('bidderB'); geoedgeSubmodule.onBidResponseEvent(bidFromB, makeConfig(false)); expect(bidFromB.ad.indexOf('')).to.equal(-1); }); it('should only muatate the bid ad porperty', function () { - let copy = Object.assign({}, bidFromA); + const copy = Object.assign({}, bidFromA); delete copy.ad; - let equalsOriginal = Object.keys(copy).every(key => copy[key] === bidFromA[key]); + const equalsOriginal = Object.keys(copy).every(key => copy[key] === bidFromA[key]); expect(equalsOriginal).to.equal(true); }); }); diff --git a/test/spec/modules/greenbidsAnalyticsAdapter_spec.js b/test/spec/modules/greenbidsAnalyticsAdapter_spec.js index 7b68b0dea46..efaeb06ae53 100644 --- a/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +++ b/test/spec/modules/greenbidsAnalyticsAdapter_spec.js @@ -10,7 +10,7 @@ import {expect} from 'chai'; import sinon from 'sinon'; const events = require('src/events'); -const constants = require('src/constants.json'); +const constants = require('src/constants.js'); const pbuid = 'pbuid-AA778D8A796AEA7A0843E2BBEB677766'; const auctionId = 'b0b39610-b941-4659-a87c-de9f62d3e13e'; diff --git a/test/spec/modules/greenbidsRtdProvider_spec.js b/test/spec/modules/greenbidsRtdProvider_spec.js index d0083d4dc7a..ae63a0b00a0 100644 --- a/test/spec/modules/greenbidsRtdProvider_spec.js +++ b/test/spec/modules/greenbidsRtdProvider_spec.js @@ -8,7 +8,7 @@ import { } from 'modules/greenbidsRtdProvider.js'; import { server } from '../../mocks/xhr.js'; import * as events from '../../../src/events.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; describe('greenbidsRtdProvider', () => { const endPoint = 't.greenbids.ai'; @@ -332,7 +332,7 @@ describe('greenbidsRtdProvider', () => { it('should emit billable event if greenbids has set the adunit.ext value', function (done) { let counter = 0; - events.on(CONSTANTS.EVENTS.BILLABLE_EVENT, function (event) { + events.on(EVENTS.BILLABLE_EVENT, function (event) { if (event.vendor === 'greenbidsRtdProvider' && event.type === 'auction') { counter += 1; } diff --git a/test/spec/modules/growthCodeAnalyticsAdapter_spec.js b/test/spec/modules/growthCodeAnalyticsAdapter_spec.js index cd9c12a729c..266bc104fd8 100644 --- a/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +++ b/test/spec/modules/growthCodeAnalyticsAdapter_spec.js @@ -2,7 +2,7 @@ import adapterManager from '../../../src/adapterManager.js'; import growthCodeAnalyticsAdapter from '../../../modules/growthCodeAnalyticsAdapter.js'; import { expect } from 'chai'; import * as events from '../../../src/events.js'; -import constants from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import { generateUUID } from '../../../src/utils.js'; import { server } from 'test/mocks/xhr.js'; @@ -58,7 +58,7 @@ describe('growthCode analytics adapter', () => { adUnitCodes: ['usr1234'] }], }; - events.emit(constants.EVENTS.AUCTION_END, auction); + events.emit(EVENTS.AUCTION_END, auction); assert(server.requests.length > 0) const body = JSON.parse(server.requests[0].requestBody); var eventTypes = []; diff --git a/test/spec/modules/hadronAnalyticsAdapter_spec.js b/test/spec/modules/hadronAnalyticsAdapter_spec.js index bea131fb78f..68e5bc3aecb 100644 --- a/test/spec/modules/hadronAnalyticsAdapter_spec.js +++ b/test/spec/modules/hadronAnalyticsAdapter_spec.js @@ -2,7 +2,7 @@ import adapterManager from '../../../src/adapterManager.js'; import hadronAnalyticsAdapter from '../../../modules/hadronAnalyticsAdapter.js'; import { expect } from 'chai'; import * as events from '../../../src/events.js'; -import constants from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import { generateUUID } from '../../../src/utils.js'; import { server } from 'test/mocks/xhr.js'; @@ -48,13 +48,13 @@ describe('Hadron analytics adapter', () => { adUnitCodes: ['usr1234'] }], }; - events.emit(constants.EVENTS.AUCTION_END, auction); + events.emit(EVENTS.AUCTION_END, auction); assert(server.requests.length > 0) const body = JSON.parse(server.requests[0].requestBody); var eventTypes = []; body.events.forEach(e => eventTypes.push(e.eventType)); assert(eventTypes.length > 0) - assert(eventTypes.indexOf(constants.EVENTS.AUCTION_END) > -1); + assert(eventTypes.indexOf(EVENTS.AUCTION_END) > -1); hadronAnalyticsAdapter.disableAnalytics(); }); }); diff --git a/test/spec/modules/id5AnalyticsAdapter_spec.js b/test/spec/modules/id5AnalyticsAdapter_spec.js index 9cb7233ce7c..c9d21daa4e0 100644 --- a/test/spec/modules/id5AnalyticsAdapter_spec.js +++ b/test/spec/modules/id5AnalyticsAdapter_spec.js @@ -2,7 +2,7 @@ import adapterManager from '../../../src/adapterManager.js'; import id5AnalyticsAdapter from '../../../modules/id5AnalyticsAdapter.js'; import { expect } from 'chai'; import * as events from '../../../src/events.js'; -import constants from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import { generateUUID } from '../../../src/utils.js'; import {server} from '../../mocks/xhr.js'; @@ -98,7 +98,7 @@ describe('ID5 analytics adapter', () => { it('sends auction end events to the backend', () => { id5AnalyticsAdapter.enableAnalytics(config); server.respond(); - events.emit(constants.EVENTS.AUCTION_END, auction); + events.emit(EVENTS.AUCTION_END, auction); server.respond(); // Why 3? 1: config, 2: tcfEnforcement, 3: auctionEnd @@ -307,7 +307,7 @@ describe('ID5 analytics adapter', () => { id5AnalyticsAdapter.enableAnalytics(config); server.respond(); - events.emit(constants.EVENTS.AUCTION_END, auction); + events.emit(EVENTS.AUCTION_END, auction); server.respond(); expect(server.requests).to.have.length(3); @@ -360,7 +360,7 @@ describe('ID5 analytics adapter', () => { ]); id5AnalyticsAdapter.enableAnalytics(config); server.respond(); - events.emit(constants.EVENTS.AUCTION_END, auction); + events.emit(EVENTS.AUCTION_END, auction); server.respond(); expect(server.requests).to.have.length(2); @@ -441,7 +441,7 @@ describe('ID5 analytics adapter', () => { ]); id5AnalyticsAdapter.enableAnalytics(config); server.respond(); - events.emit(constants.EVENTS.AUCTION_END, auction); + events.emit(EVENTS.AUCTION_END, auction); server.respond(); expect(server.requests).to.have.length(3); diff --git a/test/spec/modules/id5IdSystem_spec.js b/test/spec/modules/id5IdSystem_spec.js index af468f2fe4d..fd5d24295f5 100644 --- a/test/spec/modules/id5IdSystem_spec.js +++ b/test/spec/modules/id5IdSystem_spec.js @@ -8,7 +8,7 @@ import { } from '../../../modules/userId/index.js'; import {config} from '../../../src/config.js'; import * as events from '../../../src/events.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import * as utils from '../../../src/utils.js'; import {uspDataHandler, gppDataHandler} from '../../../src/adapterManager.js'; import '../../../src/prebid.js'; @@ -1004,7 +1004,7 @@ describe('ID5 ID System', function () { }, {adUnits}); }).then(() => { expect(xhrServerMock.hasReceivedAnyRequest()).is.false; - events.emit(CONSTANTS.EVENTS.AUCTION_END, {}); + events.emit(EVENTS.AUCTION_END, {}); return xhrServerMock.expectFetchRequest(); }).then(request => { const requestBody = JSON.parse(request.requestBody); diff --git a/test/spec/modules/invisiblyAnalyticsAdapter_spec.js b/test/spec/modules/invisiblyAnalyticsAdapter_spec.js index a8828515ffd..e866d2404f3 100644 --- a/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +++ b/test/spec/modules/invisiblyAnalyticsAdapter_spec.js @@ -2,8 +2,8 @@ import invisiblyAdapter from 'modules/invisiblyAnalyticsAdapter.js'; import { expect } from 'chai'; import {expectEvents} from '../../helpers/analytics.js'; import {server} from '../../mocks/xhr.js'; +import { EVENTS, STATUS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('Invisibly Analytics Adapter test suite', function () { let xhr; @@ -26,7 +26,7 @@ describe('Invisibly Analytics Adapter test suite', function () { hb_source: 'client', }, getStatusCode() { - return CONSTANTS.STATUS.GOOD; + return STATUS.GOOD; }, }; @@ -54,7 +54,7 @@ describe('Invisibly Analytics Adapter test suite', function () { hb_source: 'server', }, getStatusCode() { - return CONSTANTS.STATUS.GOOD; + return STATUS.GOOD; }, }; @@ -204,11 +204,11 @@ describe('Invisibly Analytics Adapter test suite', function () { options: {}, }); - events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT); - events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END); - events.emit(constants.EVENTS.BID_REQUESTED, MOCK.BID_REQUESTED); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE); - events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON); + events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT); + events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END); + events.emit(EVENTS.BID_REQUESTED, MOCK.BID_REQUESTED); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE); + events.emit(EVENTS.BID_WON, MOCK.BID_WON); invisiblyAdapter.flush(); sinon.assert.callCount(invisiblyAdapter.track, 0); }); @@ -230,7 +230,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for auction init event it('auction init event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT); + events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -252,7 +252,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for bid adjustment event it('bid adjustment event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.BID_ADJUSTMENT, MOCK.BID_ADJUSTMENT); + events.emit(EVENTS.BID_ADJUSTMENT, MOCK.BID_ADJUSTMENT); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -274,7 +274,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for bid timeout event it('bid timeout event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.BID_TIMEOUT, MOCK.BID_TIMEOUT); + events.emit(EVENTS.BID_TIMEOUT, MOCK.BID_TIMEOUT); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -296,7 +296,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for bid requested event it('bid requested event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.BID_REQUESTED, MOCK.BID_REQUESTED); + events.emit(EVENTS.BID_REQUESTED, MOCK.BID_REQUESTED); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -318,7 +318,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for bid response event it('bid response event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -338,7 +338,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for no bid event it('no bid event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.NO_BID, MOCK.NO_BID); + events.emit(EVENTS.NO_BID, MOCK.NO_BID); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -360,7 +360,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for bid won event it('bid won event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON); + events.emit(EVENTS.BID_WON, MOCK.BID_WON); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -378,7 +378,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for bidder done event it('bidder done event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.BIDDER_DONE, MOCK.BIDDER_DONE); + events.emit(EVENTS.BIDDER_DONE, MOCK.BIDDER_DONE); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -403,7 +403,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for set targeting event it('set targeting event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.SET_TARGETING, MOCK.SET_TARGETING); + events.emit(EVENTS.SET_TARGETING, MOCK.SET_TARGETING); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -428,7 +428,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for request bids event it('request bids event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.REQUEST_BIDS, MOCK.REQUEST_BIDS); + events.emit(EVENTS.REQUEST_BIDS, MOCK.REQUEST_BIDS); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -450,7 +450,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for add ad units event it('add ad units event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.ADD_AD_UNITS, MOCK.ADD_AD_UNITS); + events.emit(EVENTS.ADD_AD_UNITS, MOCK.ADD_AD_UNITS); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -472,7 +472,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for ad render failed event it('ad render failed event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED); + events.emit(EVENTS.AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -494,7 +494,7 @@ describe('Invisibly Analytics Adapter test suite', function () { // spec for auction end event it('auction end event', function () { invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END); + events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END); invisiblyAdapter.flush(); const invisiblyEvents = JSON.parse( @@ -516,7 +516,7 @@ describe('Invisibly Analytics Adapter test suite', function () { it('it should not call sendEvent for this event emit', function () { sinon.spy(invisiblyAdapter, 'sendEvent'); invisiblyAdapter.enableAnalytics(MOCK.config); - events.emit(constants.EVENTS.INVALID_EVENT, MOCK.INVALID_EVENT); + events.emit(EVENTS.INVALID_EVENT, MOCK.INVALID_EVENT); invisiblyAdapter.flush(); expect(requests.length).to.equal(0); @@ -529,19 +529,19 @@ describe('Invisibly Analytics Adapter test suite', function () { invisiblyAdapter.enableAnalytics(MOCK.config); expectEvents([ - constants.EVENTS.AUCTION_INIT, - constants.EVENTS.AUCTION_END, - constants.EVENTS.BID_ADJUSTMENT, - constants.EVENTS.BID_TIMEOUT, - constants.EVENTS.BID_REQUESTED, - constants.EVENTS.BID_RESPONSE, - constants.EVENTS.NO_BID, - constants.EVENTS.BID_WON, - constants.EVENTS.BIDDER_DONE, - constants.EVENTS.SET_TARGETING, - constants.EVENTS.REQUEST_BIDS, - constants.EVENTS.ADD_AD_UNITS, - constants.EVENTS.AD_RENDER_FAILED + EVENTS.AUCTION_INIT, + EVENTS.AUCTION_END, + EVENTS.BID_ADJUSTMENT, + EVENTS.BID_TIMEOUT, + EVENTS.BID_REQUESTED, + EVENTS.BID_RESPONSE, + EVENTS.NO_BID, + EVENTS.BID_WON, + EVENTS.BIDDER_DONE, + EVENTS.SET_TARGETING, + EVENTS.REQUEST_BIDS, + EVENTS.ADD_AD_UNITS, + EVENTS.AD_RENDER_FAILED ]).to.beTrackedBy(invisiblyAdapter.track); }); }); @@ -558,11 +558,11 @@ describe('Invisibly Analytics Adapter test suite', function () { }, }); - events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT); - events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END); - events.emit(constants.EVENTS.BID_REQUESTED, MOCK.BID_REQUESTED); - events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE); - events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON); + events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT); + events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END); + events.emit(EVENTS.BID_REQUESTED, MOCK.BID_REQUESTED); + events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE); + events.emit(EVENTS.BID_WON, MOCK.BID_WON); invisiblyAdapter.flush(); sinon.assert.callCount(invisiblyAdapter.sendEvent, 0); diff --git a/test/spec/modules/kargoAnalyticsAdapter_spec.js b/test/spec/modules/kargoAnalyticsAdapter_spec.js index c27c8499aa1..c2acd86defa 100644 --- a/test/spec/modules/kargoAnalyticsAdapter_spec.js +++ b/test/spec/modules/kargoAnalyticsAdapter_spec.js @@ -1,8 +1,8 @@ import kargoAnalyticsAdapter from 'modules/kargoAnalyticsAdapter.js'; import { expect } from 'chai'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('Kargo Analytics Adapter', function () { const adapterConfig = { @@ -30,10 +30,10 @@ describe('Kargo Analytics Adapter', function () { timeToRespond: 192, }; - events.emit(constants.EVENTS.AUCTION_INIT, { + events.emit(EVENTS.AUCTION_INIT, { timeout: 1000 }); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.BID_RESPONSE, bidResponse); expect(server.requests.length).to.equal(1); expect(server.requests[0].url).to.equal('https://krk.kargo.com/api/v1/event/auction-data?aid=66529d4c-8998-47c2-ab3e-5b953490b98f&ato=1000&rt=192&it=0'); diff --git a/test/spec/modules/konduitAnalyticsAdapter_spec.js b/test/spec/modules/konduitAnalyticsAdapter_spec.js index e79ae2feeeb..496dd171afa 100644 --- a/test/spec/modules/konduitAnalyticsAdapter_spec.js +++ b/test/spec/modules/konduitAnalyticsAdapter_spec.js @@ -2,19 +2,19 @@ import konduitAnalyticsAdapter from 'modules/konduitAnalyticsAdapter'; import { expect } from 'chai'; import { config } from '../../../src/config.js'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); let adapterManager = require('src/adapterManager').default; -let CONSTANTS = require('src/constants.json'); const eventsData = { - [CONSTANTS.EVENTS.AUCTION_INIT]: { + [EVENTS.AUCTION_INIT]: { 'auctionId': 'test_auction_id', 'timestamp': Date.now(), 'auctionStatus': 'inProgress', 'adUnitCodes': ['video-test'], 'timeout': 700 }, - [CONSTANTS.EVENTS.BID_REQUESTED]: { + [EVENTS.BID_REQUESTED]: { 'bidderCode': 'test_bidder_code', 'time': Date.now(), 'bids': [{ @@ -25,13 +25,13 @@ const eventsData = { 'params': { 'testParam': 'test_param' } }] }, - [CONSTANTS.EVENTS.NO_BID]: { + [EVENTS.NO_BID]: { 'bidderCode': 'test_bidder_code2', 'transactionId': 'test_transaction_id', 'adUnitCode': 'video-test', 'bidId': 'test_bid_id' }, - [CONSTANTS.EVENTS.BID_RESPONSE]: { + [EVENTS.BID_RESPONSE]: { 'bidderCode': 'test_bidder_code', 'adUnitCode': 'video-test', 'statusMessage': 'Bid available', @@ -44,7 +44,7 @@ const eventsData = { 'requestId': 'test_request_id', 'creativeId': 144876543 }, - [CONSTANTS.EVENTS.AUCTION_END]: { + [EVENTS.AUCTION_END]: { 'auctionId': 'test_auction_id', 'timestamp': Date.now(), 'auctionEnd': Date.now() + 400, @@ -52,7 +52,7 @@ const eventsData = { 'adUnitCodes': ['video-test'], 'timeout': 700 }, - [CONSTANTS.EVENTS.BID_WON]: { + [EVENTS.BID_WON]: { 'bidderCode': 'test_bidder_code', 'adUnitCode': 'video-test', 'statusMessage': 'Bid available', @@ -99,12 +99,12 @@ describe(`Konduit Analytics Adapter`, () => { expect(konduitAnalyticsAdapter.context.aggregatedEvents).to.be.an('array'); const eventTypes = [ - CONSTANTS.EVENTS.AUCTION_INIT, - CONSTANTS.EVENTS.BID_REQUESTED, - CONSTANTS.EVENTS.NO_BID, - CONSTANTS.EVENTS.BID_RESPONSE, - CONSTANTS.EVENTS.BID_WON, - CONSTANTS.EVENTS.AUCTION_END, + EVENTS.AUCTION_INIT, + EVENTS.BID_REQUESTED, + EVENTS.NO_BID, + EVENTS.BID_RESPONSE, + EVENTS.BID_WON, + EVENTS.AUCTION_END, ]; const args = eventTypes.map(eventType => eventsData[eventType]); diff --git a/test/spec/modules/lemmaDigitalBidAdapter_spec.js b/test/spec/modules/lemmaDigitalBidAdapter_spec.js index d50728dce3c..ab4c3259671 100644 --- a/test/spec/modules/lemmaDigitalBidAdapter_spec.js +++ b/test/spec/modules/lemmaDigitalBidAdapter_spec.js @@ -2,7 +2,7 @@ import { expect } from 'chai'; import { spec } from 'modules/lemmaDigitalBidAdapter.js'; import * as utils from 'src/utils.js'; import { config } from 'src/config.js'; -const constants = require('src/constants.json'); +const constants = require('src/constants.js'); describe('lemmaDigitalBidAdapter', function () { let bidRequests; diff --git a/test/spec/modules/liveIntentAnalyticsAdapter_spec.js b/test/spec/modules/liveIntentAnalyticsAdapter_spec.js index d00bfbc7bb5..e833440bf03 100644 --- a/test/spec/modules/liveIntentAnalyticsAdapter_spec.js +++ b/test/spec/modules/liveIntentAnalyticsAdapter_spec.js @@ -3,6 +3,7 @@ import { expect } from 'chai'; import { server } from 'test/mocks/xhr.js'; import { auctionManager } from 'src/auctionManager.js'; import {expectEvents} from '../../helpers/analytics.js'; +import { EVENTS } from 'src/constants.js'; let utils = require('src/utils'); let refererDetection = require('src/refererDetection'); @@ -13,7 +14,6 @@ let clock; let now = new Date(); let events = require('src/events'); -let constants = require('src/constants.json'); let auctionId = '99abbc81-c1f1-41cd-8f25-f7149244c897' const configWithSamplingAll = { @@ -286,7 +286,7 @@ describe('LiveIntent Analytics Adapter ', () => { sandbox.stub(utils, 'generateUUID').returns(instanceId); sandbox.stub(refererDetection, 'getRefererInfo').returns({page: url}); sandbox.stub(auctionManager.index, 'getAuction').withArgs(auctionId).returns({ getWinningBids: () => winningBids }); - events.emit(constants.EVENTS.AUCTION_END, args); + events.emit(EVENTS.AUCTION_END, args); clock.tick(2000); expect(server.requests.length).to.equal(1); @@ -305,7 +305,7 @@ describe('LiveIntent Analytics Adapter ', () => { sandbox.stub(utils, 'generateUUID').returns(instanceId); sandbox.stub(refererDetection, 'getRefererInfo').returns({page: url}); sandbox.stub(auctionManager.index, 'getAuction').withArgs(auctionId).returns({ getWinningBids: () => winningBids }); - events.emit(constants.EVENTS.AUCTION_END, args); + events.emit(EVENTS.AUCTION_END, args); clock.tick(2000); expect(server.requests.length).to.equal(0); }); diff --git a/test/spec/modules/livewrappedAnalyticsAdapter_spec.js b/test/spec/modules/livewrappedAnalyticsAdapter_spec.js index d07b48752c6..f82cc4c4f52 100644 --- a/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +++ b/test/spec/modules/livewrappedAnalyticsAdapter_spec.js @@ -1,5 +1,5 @@ import livewrappedAnalyticsAdapter, { BID_WON_TIMEOUT } from 'modules/livewrappedAnalyticsAdapter.js'; -import CONSTANTS from 'src/constants.json'; +import { AD_RENDER_FAILED_REASON, EVENTS, STATUS } from 'src/constants.js'; import { config } from 'src/config.js'; import { server } from 'test/mocks/xhr.js'; import { setConfig } from 'modules/currency.js'; @@ -9,21 +9,16 @@ let utils = require('src/utils'); let adapterManager = require('src/adapterManager').default; const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_REQUESTED, - BID_RESPONSE, - BIDDER_DONE, - BID_WON, - BID_TIMEOUT, - SET_TARGETING, - AD_RENDER_FAILED - }, - STATUS: { - GOOD - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_REQUESTED, + BID_RESPONSE, + BIDDER_DONE, + BID_WON, + BID_TIMEOUT, + SET_TARGETING, + AD_RENDER_FAILED +} = EVENTS; const BID1 = { width: 980, @@ -43,7 +38,7 @@ const BID1 = { }, dealId: 'dealid', getStatusCode() { - return CONSTANTS.STATUS.GOOD; + return STATUS.GOOD; } }; @@ -71,7 +66,7 @@ const BID3 = { auctionId: '25c6d7f5-699a-4bfc-87c9-996f915341fa', mediaType: 'banner', getStatusCode() { - return CONSTANTS.STATUS.GOOD; + return STATUS.GOOD; } }; @@ -135,7 +130,7 @@ const MOCK = { AD_RENDER_FAILED: [ { 'bidId': '2ecff0db240757', - 'reason': CONSTANTS.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, + 'reason': AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, 'message': 'message', 'bid': BID1 } @@ -275,7 +270,7 @@ const ANALYTICS_MESSAGE = { adUnitId: 'adunitid', bidder: 'livewrapped', auctionId: 0, - rsn: CONSTANTS.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, + rsn: AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, msg: 'message' }, ] diff --git a/test/spec/modules/magniteAnalyticsAdapter_spec.js b/test/spec/modules/magniteAnalyticsAdapter_spec.js index 397ee4a8577..1798c96c341 100644 --- a/test/spec/modules/magniteAnalyticsAdapter_spec.js +++ b/test/spec/modules/magniteAnalyticsAdapter_spec.js @@ -6,7 +6,7 @@ import magniteAdapter, { detectBrowserFromUa, callPrebidCacheHook } from '../../../modules/magniteAnalyticsAdapter.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import { config } from 'src/config.js'; import { server } from 'test/mocks/xhr.js'; import * as mockGpt from '../integration/faker/googletag.js'; @@ -17,19 +17,17 @@ let events = require('src/events.js'); let utils = require('src/utils.js'); const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_REQUESTED, - BID_RESPONSE, - BIDDER_DONE, - BID_WON, - BID_TIMEOUT, - BILLABLE_EVENT, - SEAT_NON_BID, - BID_REJECTED - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_REQUESTED, + BID_RESPONSE, + BIDDER_DONE, + BID_WON, + BID_TIMEOUT, + BILLABLE_EVENT, + SEAT_NON_BID, + BID_REJECTED +} = EVENTS; const STUBBED_UUID = '12345678-1234-1234-1234-123456789abc'; diff --git a/test/spec/modules/malltvAnalyticsAdapter_spec.js b/test/spec/modules/malltvAnalyticsAdapter_spec.js index c96069df0f9..2be9fe4b09f 100644 --- a/test/spec/modules/malltvAnalyticsAdapter_spec.js +++ b/test/spec/modules/malltvAnalyticsAdapter_spec.js @@ -5,7 +5,7 @@ import { import { expect } from 'chai' import { getCpmInEur } from '../../../modules/malltvAnalyticsAdapter' import * as events from 'src/events' -import constants from 'src/constants.json' +import { EVENTS } from 'src/constants.js' const auctionId = 'b0b39610-b941-4659-a87c-de9f62d3e13e' const propertyId = '123456' @@ -481,14 +481,14 @@ describe('Malltv Prebid AnalyticsAdapter Testing', function () { it('should call handleBidTimeout as BID_TIMEOUT trigger event', function() { sinon.spy(malltvAnalyticsAdapter, 'handleBidTimeout') - events.emit(constants.EVENTS.BID_TIMEOUT, {}) + events.emit(EVENTS.BID_TIMEOUT, {}) sinon.assert.callCount(malltvAnalyticsAdapter.handleBidTimeout, 1) malltvAnalyticsAdapter.handleBidTimeout.restore() }) it('should call handleAuctionEnd as AUCTION_END trigger event', function() { sinon.spy(malltvAnalyticsAdapter, 'handleAuctionEnd') - events.emit(constants.EVENTS.AUCTION_END, {}) + events.emit(EVENTS.AUCTION_END, {}) sinon.assert.callCount(malltvAnalyticsAdapter.handleAuctionEnd, 1) malltvAnalyticsAdapter.handleAuctionEnd.restore() }) diff --git a/test/spec/modules/mediafilterRtdProvider_spec.js b/test/spec/modules/mediafilterRtdProvider_spec.js index 3395c7be691..fe9fb855629 100644 --- a/test/spec/modules/mediafilterRtdProvider_spec.js +++ b/test/spec/modules/mediafilterRtdProvider_spec.js @@ -1,7 +1,7 @@ import * as utils from '../../../src/utils.js'; import * as hook from '../../../src/hook.js' import * as events from '../../../src/events.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import { MediaFilter, @@ -121,7 +121,7 @@ describe('The Media Filter RTD module', function () { eventHandler(mockEvent); - expect(eventsEmitSpy.calledWith(CONSTANTS.EVENTS.BILLABLE_EVENT, { + expect(eventsEmitSpy.calledWith(EVENTS.BILLABLE_EVENT, { 'billingId': sinon.match.string, 'configurationHash': configurationHash, 'type': 'impression', diff --git a/test/spec/modules/medianetAnalyticsAdapter_spec.js b/test/spec/modules/medianetAnalyticsAdapter_spec.js index e19c27cc2d3..7c3cf88dace 100644 --- a/test/spec/modules/medianetAnalyticsAdapter_spec.js +++ b/test/spec/modules/medianetAnalyticsAdapter_spec.js @@ -1,13 +1,13 @@ import { expect } from 'chai'; import medianetAnalytics from 'modules/medianetAnalyticsAdapter.js'; import * as utils from 'src/utils.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import * as events from 'src/events.js'; import {clearEvents} from 'src/events.js'; const { - EVENTS: { AUCTION_INIT, BID_REQUESTED, BID_RESPONSE, NO_BID, BID_TIMEOUT, AUCTION_END, SET_TARGETING, BID_WON } -} = CONSTANTS; + AUCTION_INIT, BID_REQUESTED, BID_RESPONSE, NO_BID, BID_TIMEOUT, AUCTION_END, SET_TARGETING, BID_WON +} = EVENTS; const ERROR_WINNING_BID_ABSENT = 'winning_bid_absent'; diff --git a/test/spec/modules/nobidAnalyticsAdapter_spec.js b/test/spec/modules/nobidAnalyticsAdapter_spec.js index f6c741bb7ff..07823d3536f 100644 --- a/test/spec/modules/nobidAnalyticsAdapter_spec.js +++ b/test/spec/modules/nobidAnalyticsAdapter_spec.js @@ -1,9 +1,9 @@ import nobidAnalytics from 'modules/nobidAnalyticsAdapter.js'; import {expect} from 'chai'; import {server} from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); let adapterManager = require('src/adapterManager').default; -let constants = require('src/constants.json'); const TOP_LOCATION = 'https://www.somesite.com'; const SITE_ID = 1234; @@ -46,7 +46,7 @@ describe('NoBid Prebid Analytic', function () { }); // Step 2: Send init auction event - events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, + events.emit(EVENTS.AUCTION_INIT, {config: initOptions, auctionId: '13', timestamp: Date.now(), bidderRequests: [{refererInfo: {topmostLocation: TOP_LOCATION}}]}); @@ -77,27 +77,27 @@ describe('NoBid Prebid Analytic', function () { }); // Step 2: Send init auction event - events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, + events.emit(EVENTS.AUCTION_INIT, {config: initOptions, auctionId: '13', timestamp: Date.now(), bidderRequests: [{refererInfo: {topmostLocation: TOP_LOCATION}}]}); - events.emit(constants.EVENTS.BID_WON, {}); + events.emit(EVENTS.BID_WON, {}); clock.tick(5000); expect(server.requests).to.have.length(1); - events.emit(constants.EVENTS.BID_REQUESTED, {}); + events.emit(EVENTS.BID_REQUESTED, {}); clock.tick(5000); expect(server.requests).to.have.length(1); - events.emit(constants.EVENTS.BID_RESPONSE, {}); + events.emit(EVENTS.BID_RESPONSE, {}); clock.tick(5000); expect(server.requests).to.have.length(1); - events.emit(constants.EVENTS.BID_TIMEOUT, {}); + events.emit(EVENTS.BID_TIMEOUT, {}); clock.tick(5000); expect(server.requests).to.have.length(1); - events.emit(constants.EVENTS.AD_RENDER_SUCCEEDED, {}); + events.emit(EVENTS.AD_RENDER_SUCCEEDED, {}); clock.tick(5000); expect(server.requests).to.have.length(1); @@ -191,13 +191,13 @@ describe('NoBid Prebid Analytic', function () { }); // Step 2: Send init auction event - events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, + events.emit(EVENTS.AUCTION_INIT, {config: initOptions, auctionId: '13', timestamp: Date.now(), bidderRequests: [{refererInfo: {topmostLocation: TOP_LOCATION}}]}); // Step 3: Send bid won event - events.emit(constants.EVENTS.BID_WON, requestIncoming); + events.emit(EVENTS.BID_WON, requestIncoming); clock.tick(5000); expect(server.requests).to.have.length(1); const bidWonRequest = JSON.parse(server.requests[0].requestBody); @@ -388,13 +388,13 @@ describe('NoBid Prebid Analytic', function () { }); // Step 2: Send init auction event - events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, + events.emit(EVENTS.AUCTION_INIT, {config: initOptions, auctionId: '13', timestamp: Date.now(), bidderRequests: [{refererInfo: {topmostLocation: `${TOP_LOCATION}_something`}}]}); // Step 3: Send bid won event - events.emit(constants.EVENTS.AUCTION_END, requestIncoming); + events.emit(EVENTS.AUCTION_END, requestIncoming); clock.tick(5000); expect(server.requests).to.have.length(1); const auctionEndRequest = JSON.parse(server.requests[0].requestBody); @@ -428,22 +428,22 @@ describe('NoBid Prebid Analytic', function () { nobidAnalytics.processServerResponse(JSON.stringify({disabled: 0})); disabled = nobidAnalytics.isAnalyticsDisabled(); expect(disabled).to.equal(false); - events.emit(constants.EVENTS.AUCTION_END, {auctionId: '1234567890'}); + events.emit(EVENTS.AUCTION_END, {auctionId: '1234567890'}); clock.tick(1000); expect(server.requests).to.have.length(1); - events.emit(constants.EVENTS.AUCTION_END, {auctionId: '12345678901'}); + events.emit(EVENTS.AUCTION_END, {auctionId: '12345678901'}); clock.tick(1000); expect(server.requests).to.have.length(2); nobidAnalytics.processServerResponse('disabled: true'); - events.emit(constants.EVENTS.AUCTION_END, {auctionId: '12345678902'}); + events.emit(EVENTS.AUCTION_END, {auctionId: '12345678902'}); clock.tick(1000); expect(server.requests).to.have.length(3); nobidAnalytics.processServerResponse(JSON.stringify({disabled: 1})); disabled = nobidAnalytics.isAnalyticsDisabled(); expect(disabled).to.equal(true); - events.emit(constants.EVENTS.AUCTION_END, {auctionId: '12345678902'}); + events.emit(EVENTS.AUCTION_END, {auctionId: '12345678902'}); clock.tick(5000); expect(server.requests).to.have.length(3); @@ -481,7 +481,7 @@ describe('NoBid Prebid Analytic', function () { nobidAnalytics.enableAnalytics(initOptions); adapterManager.enableAnalytics({ provider: 'nobid', options: initOptions }); - let eventType = constants.EVENTS.AUCTION_END; + let eventType = EVENTS.AUCTION_END; let disabled; nobidAnalytics.processServerResponse(JSON.stringify({disabled: 0})); disabled = nobidAnalytics.isAnalyticsDisabled(); @@ -508,14 +508,14 @@ describe('NoBid Prebid Analytic', function () { nobidAnalytics.processServerResponse(JSON.stringify({disabled_auctionEnd: 0})); disabled = nobidAnalytics.isAnalyticsDisabled(eventType); expect(disabled).to.equal(false); - events.emit(constants.EVENTS.AUCTION_END, {auctionId: '1234567890'}); + events.emit(EVENTS.AUCTION_END, {auctionId: '1234567890'}); clock.tick(1000); expect(server.requests).to.have.length(1); server.requests.length = 0; expect(server.requests).to.have.length(0); - eventType = constants.EVENTS.BID_WON; + eventType = EVENTS.BID_WON; nobidAnalytics.processServerResponse(JSON.stringify({disabled_bidWon: 1})); disabled = nobidAnalytics.isAnalyticsDisabled(eventType); expect(disabled).to.equal(true); @@ -526,7 +526,7 @@ describe('NoBid Prebid Analytic', function () { server.requests.length = 0; expect(server.requests).to.have.length(0); - eventType = constants.EVENTS.AUCTION_END; + eventType = EVENTS.AUCTION_END; nobidAnalytics.processServerResponse(JSON.stringify({disabled: 1})); disabled = nobidAnalytics.isAnalyticsDisabled(eventType); expect(disabled).to.equal(true); @@ -537,16 +537,16 @@ describe('NoBid Prebid Analytic', function () { server.requests.length = 0; expect(server.requests).to.have.length(0); - eventType = constants.EVENTS.AUCTION_END; + eventType = EVENTS.AUCTION_END; nobidAnalytics.processServerResponse(JSON.stringify({disabled_auctionEnd: 1, disabled_bidWon: 0})); disabled = nobidAnalytics.isAnalyticsDisabled(eventType); expect(disabled).to.equal(true); events.emit(eventType, {auctionId: '1234567890'}); clock.tick(1000); expect(server.requests).to.have.length(0); - disabled = nobidAnalytics.isAnalyticsDisabled(constants.EVENTS.BID_WON); + disabled = nobidAnalytics.isAnalyticsDisabled(EVENTS.BID_WON); expect(disabled).to.equal(false); - events.emit(constants.EVENTS.BID_WON, {bidderCode: 'nobid'}); + events.emit(EVENTS.BID_WON, {bidderCode: 'nobid'}); clock.tick(1000); expect(server.requests).to.have.length(1); diff --git a/test/spec/modules/ooloAnalyticsAdapter_spec.js b/test/spec/modules/ooloAnalyticsAdapter_spec.js index 1224c3f0740..f5b3cebf307 100644 --- a/test/spec/modules/ooloAnalyticsAdapter_spec.js +++ b/test/spec/modules/ooloAnalyticsAdapter_spec.js @@ -1,7 +1,7 @@ import ooloAnalytics, { PAGEVIEW_ID } from 'modules/ooloAnalyticsAdapter.js'; import {expect} from 'chai'; import {server} from 'test/mocks/xhr.js'; -import constants from 'src/constants.json' +import { EVENTS } from 'src/constants.js' import * as events from 'src/events' import { config } from 'src/config'; import { buildAuctionData, generatePageViewId } from 'modules/ooloAnalyticsAdapter'; @@ -151,12 +151,12 @@ const bidWon = { } function simulateAuction () { - events.emit(constants.EVENTS.AUCTION_INIT, auctionInit); - events.emit(constants.EVENTS.BID_REQUESTED, bidRequested); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); - events.emit(constants.EVENTS.NO_BID, noBid); - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); - events.emit(constants.EVENTS.AUCTION_END, auctionEnd); + events.emit(EVENTS.AUCTION_INIT, auctionInit); + events.emit(EVENTS.BID_REQUESTED, bidRequested); + events.emit(EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.NO_BID, noBid); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.AUCTION_END, auctionEnd); } describe('oolo Prebid Analytic', () => { @@ -321,16 +321,16 @@ describe('oolo Prebid Analytic', () => { } }) - events.emit(constants.EVENTS.AUCTION_INIT, auctionInit); - events.emit(constants.EVENTS.BID_REQUESTED, bidRequested); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponse); + events.emit(EVENTS.AUCTION_INIT, auctionInit); + events.emit(EVENTS.BID_REQUESTED, bidRequested); + events.emit(EVENTS.BID_RESPONSE, bidResponse); // configuration returned in an arbitrary moment server.requests[0].respond(500) - events.emit(constants.EVENTS.NO_BID, noBid); - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); - events.emit(constants.EVENTS.AUCTION_END, auctionEnd); + events.emit(EVENTS.NO_BID, noBid); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.AUCTION_END, auctionEnd); clock.tick(1500) @@ -442,7 +442,7 @@ describe('oolo Prebid Analytic', () => { server.requests[0].respond(500) simulateAuction() - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.BID_WON, bidWon); clock.tick(1500) // no bidWon @@ -466,7 +466,7 @@ describe('oolo Prebid Analytic', () => { })) simulateAuction() - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.BID_WON, bidWon); clock.tick(499) // no auction data @@ -491,7 +491,7 @@ describe('oolo Prebid Analytic', () => { server.requests[0].respond(500) simulateAuction() clock.tick(1500) - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.BID_WON, bidWon); expect(server.requests).to.have.length(5) @@ -516,7 +516,7 @@ describe('oolo Prebid Analytic', () => { server.requests[0].respond(500) simulateAuction() clock.tick(1500) - events.emit(constants.EVENTS.AD_RENDER_FAILED, { bidId: 'abcdef', reason: 'exception' }); + events.emit(EVENTS.AD_RENDER_FAILED, { bidId: 'abcdef', reason: 'exception' }); expect(server.requests).to.have.length(5) @@ -557,12 +557,12 @@ describe('oolo Prebid Analytic', () => { } })) - events.emit(constants.EVENTS.AUCTION_INIT, { ...auctionInit }); - events.emit(constants.EVENTS.BID_REQUESTED, { ...bidRequested, bids: bidRequested.bids.map(b => { b.transactionId = '123'; return b }) }); - events.emit(constants.EVENTS.NO_BID, { ...noBid, src: 'client' }); - events.emit(constants.EVENTS.BID_RESPONSE, { ...bidResponse, adUrl: '...' }); - events.emit(constants.EVENTS.AUCTION_END, { ...auctionEnd, winningBids: [] }); - events.emit(constants.EVENTS.BID_WON, { ...bidWon, statusMessage: 'msg2' }); + events.emit(EVENTS.AUCTION_INIT, { ...auctionInit }); + events.emit(EVENTS.BID_REQUESTED, { ...bidRequested, bids: bidRequested.bids.map(b => { b.transactionId = '123'; return b }) }); + events.emit(EVENTS.NO_BID, { ...noBid, src: 'client' }); + events.emit(EVENTS.BID_RESPONSE, { ...bidResponse, adUrl: '...' }); + events.emit(EVENTS.AUCTION_END, { ...auctionEnd, winningBids: [] }); + events.emit(EVENTS.BID_WON, { ...bidWon, statusMessage: 'msg2' }); clock.tick(1500) @@ -596,12 +596,12 @@ describe('oolo Prebid Analytic', () => { } })) - events.emit(constants.EVENTS.AUCTION_INIT, { ...auctionInit, custom_1: true }); - events.emit(constants.EVENTS.BID_REQUESTED, { ...bidRequested, bids: bidRequested.bids.map(b => { b.custom_2 = true; return b }) }); - events.emit(constants.EVENTS.NO_BID, { ...noBid, custom_3: true }); - events.emit(constants.EVENTS.BID_RESPONSE, { ...bidResponse, custom_4: true }); - events.emit(constants.EVENTS.AUCTION_END, { ...auctionEnd }); - events.emit(constants.EVENTS.BID_WON, { ...bidWon, custom_5: true }); + events.emit(EVENTS.AUCTION_INIT, { ...auctionInit, custom_1: true }); + events.emit(EVENTS.BID_REQUESTED, { ...bidRequested, bids: bidRequested.bids.map(b => { b.custom_2 = true; return b }) }); + events.emit(EVENTS.NO_BID, { ...noBid, custom_3: true }); + events.emit(EVENTS.BID_RESPONSE, { ...bidResponse, custom_4: true }); + events.emit(EVENTS.AUCTION_END, { ...auctionEnd }); + events.emit(EVENTS.BID_WON, { ...bidWon, custom_5: true }); clock.tick(1500) @@ -633,7 +633,7 @@ describe('oolo Prebid Analytic', () => { } })) - events.emit(constants.EVENTS.AUCTION_INIT, { ...auctionInit, custom_1: true }); + events.emit(EVENTS.AUCTION_INIT, { ...auctionInit, custom_1: true }); clock.tick(1500) @@ -661,7 +661,7 @@ describe('oolo Prebid Analytic', () => { } })) - events.emit(constants.EVENTS.AUCTION_INIT, { ...auctionInit }); + events.emit(EVENTS.AUCTION_INIT, { ...auctionInit }); expect(server.requests[3].url).to.equal('https://pbjs.com/') }) @@ -686,8 +686,8 @@ describe('oolo Prebid Analytic', () => { } })) - events.emit(constants.EVENTS.AUCTION_INIT, auctionInit) - events.emit(constants.EVENTS.BID_REQUESTED, bidRequested); + events.emit(EVENTS.AUCTION_INIT, auctionInit) + events.emit(EVENTS.BID_REQUESTED, bidRequested); const request = JSON.parse(server.requests[3].requestBody) diff --git a/test/spec/modules/optimonAnalyticsAdapter_spec.js b/test/spec/modules/optimonAnalyticsAdapter_spec.js index f1aa00334b5..270f3aec395 100644 --- a/test/spec/modules/optimonAnalyticsAdapter_spec.js +++ b/test/spec/modules/optimonAnalyticsAdapter_spec.js @@ -3,7 +3,6 @@ import { expect } from 'chai'; import optimonAnalyticsAdapter from '../../../modules/optimonAnalyticsAdapter.js'; import adapterManager from 'src/adapterManager'; import * as events from 'src/events'; -import constants from 'src/constants.json' import {expectEvents} from '../../helpers/analytics.js'; const AD_UNIT_CODE = 'demo-adunit-1'; diff --git a/test/spec/modules/oxxionAnalyticsAdapter_spec.js b/test/spec/modules/oxxionAnalyticsAdapter_spec.js index 9d06be24f68..f9bcdb40e16 100644 --- a/test/spec/modules/oxxionAnalyticsAdapter_spec.js +++ b/test/spec/modules/oxxionAnalyticsAdapter_spec.js @@ -2,10 +2,10 @@ import oxxionAnalytics from 'modules/oxxionAnalyticsAdapter.js'; import {dereferenceWithoutRenderer} from 'modules/oxxionAnalyticsAdapter.js'; import { expect } from 'chai'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; + let adapterManager = require('src/adapterManager').default; let events = require('src/events'); -let constants = require('src/constants.json'); - describe('Oxxion Analytics', function () { let timestamp = new Date() - 256; let auctionId = '5018eb39-f900-4370-b71e-3bb5b48d324f'; @@ -303,10 +303,10 @@ describe('Oxxion Analytics', function () { } }); - events.emit(constants.EVENTS.BID_REQUESTED, auctionEnd['bidderRequests'][0]); - events.emit(constants.EVENTS.BID_RESPONSE, auctionEnd['bidsReceived'][0]); - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); - events.emit(constants.EVENTS.AUCTION_END, auctionEnd); + events.emit(EVENTS.BID_REQUESTED, auctionEnd['bidderRequests'][0]); + events.emit(EVENTS.BID_RESPONSE, auctionEnd['bidsReceived'][0]); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.AUCTION_END, auctionEnd); expect(server.requests.length).to.equal(1); let message = JSON.parse(server.requests[0].requestBody); expect(message).to.have.property('auctionEnd').exist; @@ -336,7 +336,7 @@ describe('Oxxion Analytics', function () { domain: 'test' } }); - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.BID_WON, bidWon); expect(server.requests.length).to.equal(1); let message = JSON.parse(server.requests[0].requestBody); expect(message).not.to.have.property('ad'); diff --git a/test/spec/modules/paapi_spec.js b/test/spec/modules/paapi_spec.js index 3d264e87e51..2c7c959ef19 100644 --- a/test/spec/modules/paapi_spec.js +++ b/test/spec/modules/paapi_spec.js @@ -15,7 +15,7 @@ import { reset } from 'modules/paapi.js'; import * as events from 'src/events.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import {getGlobal} from '../../../src/prebidGlobal.js'; import {auctionManager} from '../../../src/auctionManager.js'; import {stubAuctionIndex} from '../../helpers/indexStub.js'; @@ -69,7 +69,7 @@ describe('paapi module', () => { cf2 = {...fledgeAuctionConfig, id: 2, seller: 'b2'}; addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au1'}, cf1); addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au2'}, cf2); - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId, adUnitCodes: ['au1', 'au2', 'au3']}); + events.emit(EVENTS.AUCTION_END, { auctionId, adUnitCodes: ['au1', 'au2', 'au3'] }); }); it('and make them available at end of auction', () => { @@ -123,9 +123,9 @@ describe('paapi module', () => { }); it('should drop auction configs after end of auction', () => { - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId}); + events.emit(EVENTS.AUCTION_END, { auctionId }); addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au'}, fledgeAuctionConfig); - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId}); + events.emit(EVENTS.AUCTION_END, { auctionId }); expect(getPAAPIConfig({auctionId})).to.eql({}); }); @@ -136,7 +136,7 @@ describe('paapi module', () => { ortb2: {fpd: 1}, ortb2Imp: {fpd: 2} }, fledgeAuctionConfig); - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId}); + events.emit(EVENTS.AUCTION_END, { auctionId }); sinon.assert.match(getPAAPIConfig({auctionId}), { au1: { componentAuctions: [{ @@ -165,13 +165,13 @@ describe('paapi module', () => { describe('onAuctionConfig', () => { const auctionId = 'aid'; it('is invoked with null configs when there\'s no config', () => { - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId, adUnitCodes: ['au']}); + events.emit(EVENTS.AUCTION_END, { auctionId, adUnitCodes: ['au'] }); submods.forEach(submod => sinon.assert.calledWith(submod.onAuctionConfig, auctionId, {au: null})); }); it('is invoked with relevant configs', () => { addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au1'}, fledgeAuctionConfig); addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au2'}, fledgeAuctionConfig); - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId, adUnitCodes: ['au1', 'au2', 'au3']}); + events.emit(EVENTS.AUCTION_END, { auctionId, adUnitCodes: ['au1', 'au2', 'au3'] }); submods.forEach(submod => { sinon.assert.calledWith(submod.onAuctionConfig, auctionId, { au1: {componentAuctions: [fledgeAuctionConfig]}, @@ -185,12 +185,12 @@ describe('paapi module', () => { markAsUsed('au1'); }); addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au1'}, fledgeAuctionConfig); - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId, adUnitCodes: ['au1']}); + events.emit(EVENTS.AUCTION_END, { auctionId, adUnitCodes: ['au1'] }); expect(getPAAPIConfig()).to.eql({}); }); it('keeps them available if they do not', () => { addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au1'}, fledgeAuctionConfig); - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId, adUnitCodes: ['au1']}); + events.emit(EVENTS.AUCTION_END, { auctionId, adUnitCodes: ['au1'] }); expect(getPAAPIConfig()).to.not.be.empty; }) }); @@ -294,7 +294,7 @@ describe('paapi module', () => { it('should populate bidfloor/bidfloorcur', () => { addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode: 'au'}, fledgeAuctionConfig); - events.emit(CONSTANTS.EVENTS.AUCTION_END, payload); + events.emit(EVENTS.AUCTION_END, payload); const signals = getPAAPIConfig({auctionId}).au.componentAuctions[0].auctionSignals; expect(signals.prebid?.bidfloor).to.eql(bidfloor); expect(signals.prebid?.bidfloorcur).to.eql(bidfloorcur); @@ -339,7 +339,7 @@ describe('paapi module', () => { configs[auctionId][adUnitCode] = cfg; addComponentAuctionHook(nextFnSpy, {auctionId, adUnitCode}, cfg); }); - events.emit(CONSTANTS.EVENTS.AUCTION_END, {auctionId, adUnitCodes: adUnitCodes.concat(noConfigAdUnitCodes)}); + events.emit(EVENTS.AUCTION_END, { auctionId, adUnitCodes: adUnitCodes.concat(noConfigAdUnitCodes) }); }); }); diff --git a/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js b/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js index 0c4949264a7..ea0dd4ab793 100644 --- a/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +++ b/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js @@ -1,7 +1,7 @@ import pianoDmpAnalytics from 'modules/pianoDmpAnalyticsAdapter.js'; import adapterManager from 'src/adapterManager'; import * as events from 'src/events'; -import constants from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import { expect } from 'chai'; describe('Piano DMP Analytics Adapter', () => { @@ -31,14 +31,14 @@ describe('Piano DMP Analytics Adapter', () => { it('should pass events to call queue', () => { const eventsList = [ - constants.EVENTS.AUCTION_INIT, - constants.EVENTS.AUCTION_END, - constants.EVENTS.BID_ADJUSTMENT, - constants.EVENTS.BID_TIMEOUT, - constants.EVENTS.BID_REQUESTED, - constants.EVENTS.BID_RESPONSE, - constants.EVENTS.NO_BID, - constants.EVENTS.BID_WON, + EVENTS.AUCTION_INIT, + EVENTS.AUCTION_END, + EVENTS.BID_ADJUSTMENT, + EVENTS.BID_TIMEOUT, + EVENTS.BID_REQUESTED, + EVENTS.BID_RESPONSE, + EVENTS.NO_BID, + EVENTS.BID_WON, ]; // Given diff --git a/test/spec/modules/prebidServerBidAdapter_spec.js b/test/spec/modules/prebidServerBidAdapter_spec.js index 2bab144dae7..9c2ac8a23a9 100644 --- a/test/spec/modules/prebidServerBidAdapter_spec.js +++ b/test/spec/modules/prebidServerBidAdapter_spec.js @@ -12,7 +12,7 @@ import {deepAccess, deepClone, mergeDeep} from 'src/utils.js'; import {ajax} from 'src/ajax.js'; import {config} from 'src/config.js'; import * as events from 'src/events.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import {server} from 'test/mocks/xhr.js'; import 'modules/appnexusBidAdapter.js'; // appnexus alias test import 'modules/rubiconBidAdapter.js'; // rubicon alias test @@ -2879,7 +2879,7 @@ describe('S2S Adapter', function () { adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax); server.requests[0].respond(400, {}, {}); BID_REQUESTS.forEach(bidderRequest => { - sinon.assert.calledWith(events.emit, CONSTANTS.EVENTS.BIDDER_ERROR, sinon.match({bidderRequest})) + sinon.assert.calledWith(events.emit, EVENTS.BIDDER_ERROR, sinon.match({ bidderRequest })) }) }) @@ -3062,7 +3062,7 @@ describe('S2S Adapter', function () { sinon.assert.calledOnce(events.emit); const event = events.emit.firstCall.args; - expect(event[0]).to.equal(CONSTANTS.EVENTS.BIDDER_DONE); + expect(event[0]).to.equal(EVENTS.BIDDER_DONE); expect(event[1].bids[0]).to.have.property('serverResponseTimeMs', 8); sinon.assert.calledOnce(addBidResponse); @@ -3093,7 +3093,7 @@ describe('S2S Adapter', function () { Object.assign(responding.ext.seatnonbid, [{auctionId: 2}]) server.requests[0].respond(200, {}, JSON.stringify(responding)); const event = events.emit.secondCall.args; - expect(event[0]).to.equal(CONSTANTS.EVENTS.SEAT_NON_BID); + expect(event[0]).to.equal(EVENTS.SEAT_NON_BID); expect(event[1].seatnonbid[0]).to.have.property('auctionId', 2); expect(event[1].requestedBidders).to.deep.equal(['appnexus']); expect(event[1].response).to.deep.equal(responding); @@ -3584,7 +3584,7 @@ describe('S2S Adapter', function () { adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax); server.requests[0].respond(200, {}, JSON.stringify(clonedResponse)); - events.emit(CONSTANTS.EVENTS.BID_WON, { + events.emit(EVENTS.BID_WON, { auctionId: '173afb6d132ba3', adId: '1000' }); @@ -3603,7 +3603,7 @@ describe('S2S Adapter', function () { adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax); server.requests[0].respond(200, {}, JSON.stringify(clonedResponse)); - events.emit(CONSTANTS.EVENTS.BID_WON, { + events.emit(EVENTS.BID_WON, { auctionId: '173afb6d132ba3', adId: 'missingAdId' }); @@ -3619,7 +3619,7 @@ describe('S2S Adapter', function () { adapter.callBids(REQUEST, BID_REQUESTS, addBidResponse, done, ajax); server.requests[0].respond(200, {}, JSON.stringify(clonedResponse)); - events.emit(CONSTANTS.EVENTS.BID_WON, { + events.emit(EVENTS.BID_WON, { auctionId: '173afb6d132ba3', adId: '1060' }); diff --git a/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js b/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js index 25834e8574d..9241fda8c81 100644 --- a/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +++ b/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js @@ -3,9 +3,9 @@ import {expect} from 'chai'; import {server} from 'test/mocks/xhr.js'; import * as utils from 'src/utils.js'; import {expectEvents} from '../../helpers/analytics.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('Prebid Manager Analytics Adapter', function () { let bidWonEvent = { @@ -66,7 +66,7 @@ describe('Prebid Manager Analytics Adapter', function () { } }); - events.emit(constants.EVENTS.BID_WON, bidWonEvent); + events.emit(EVENTS.BID_WON, bidWonEvent); prebidmanagerAnalytics.flush(); expect(server.requests.length).to.equal(1); diff --git a/test/spec/modules/priceFloors_spec.js b/test/spec/modules/priceFloors_spec.js index 7ea7722b12a..7223940bc45 100644 --- a/test/spec/modules/priceFloors_spec.js +++ b/test/spec/modules/priceFloors_spec.js @@ -1,8 +1,9 @@ import {expect} from 'chai'; import * as utils from 'src/utils.js'; import { getGlobal } from 'src/prebidGlobal.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS, STATUS } from 'src/constants.js'; import { + FLOOR_SKIPPED_REASON, _floorDataForAuction, getFloorsDataForAuction, getFirstMatchingFloor, @@ -737,7 +738,7 @@ describe('the price floors module', function () { handleSetFloorsConfig(floorConfig); const floorData = createFloorsDataForAuction(adUnits, 'id'); - expect(floorData.skippedReason).to.equal(CONSTANTS.FLOOR_SKIPPED_REASON.NOT_FOUND); + expect(floorData.skippedReason).to.equal(FLOOR_SKIPPED_REASON.NOT_FOUND); }); it('should have skippedReason set to "random" if there is floor data and skipped is true', function() { @@ -746,7 +747,7 @@ describe('the price floors module', function () { handleSetFloorsConfig(floorConfig); const floorData = createFloorsDataForAuction(adUnits, 'id'); - expect(floorData.skippedReason).to.equal(CONSTANTS.FLOOR_SKIPPED_REASON.RANDOM); + expect(floorData.skippedReason).to.equal(FLOOR_SKIPPED_REASON.RANDOM); }); }); @@ -2218,7 +2219,7 @@ describe('the price floors module', function () { let next = (adUnitCode, bid) => { returnedBidResponse = bid; }; - addBidResponseHook(next, bidResp.adUnitCode, Object.assign(createBid(CONSTANTS.STATUS.GOOD, {auctionId: AUCTION_ID}), bidResp), reject); + addBidResponseHook(next, bidResp.adUnitCode, Object.assign(createBid(STATUS.GOOD, { auctionId: AUCTION_ID }), bidResp), reject); }; it('continues with the auction if not floors data is present without any flooring', function () { runBidResponse(); @@ -2345,7 +2346,7 @@ describe('the price floors module', function () { it('should wait 3 seconds before deleting auction floor data', function () { handleSetFloorsConfig({enabled: true}); _floorDataForAuction[AUCTION_END_EVENT.auctionId] = utils.deepClone(basicFloorConfig); - events.emit(CONSTANTS.EVENTS.AUCTION_END, AUCTION_END_EVENT); + events.emit(EVENTS.AUCTION_END, AUCTION_END_EVENT); // should still be here expect(_floorDataForAuction[AUCTION_END_EVENT.auctionId]).to.not.be.undefined; // tick for 4 seconds diff --git a/test/spec/modules/pubmaticAnalyticsAdapter_spec.js b/test/spec/modules/pubmaticAnalyticsAdapter_spec.js index 951b5135260..cb13a4db234 100755 --- a/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +++ b/test/spec/modules/pubmaticAnalyticsAdapter_spec.js @@ -1,6 +1,6 @@ import pubmaticAnalyticsAdapter, { getMetadata } from 'modules/pubmaticAnalyticsAdapter.js'; import adapterManager from 'src/adapterManager.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS, REJECTION_REASON } from 'src/constants.js'; import { config } from 'src/config.js'; import { setConfig } from 'modules/currency.js'; import { server } from '../../mocks/xhr.js'; @@ -18,18 +18,16 @@ const setUAMobile = () => { window.navigator.__defineGetter__('userAgent', funct const setUANull = () => { window.navigator.__defineGetter__('userAgent', function () { return null }) }; const { - EVENTS: { - AUCTION_INIT, - AUCTION_END, - BID_REQUESTED, - BID_RESPONSE, - BID_REJECTED, - BIDDER_DONE, - BID_WON, - BID_TIMEOUT, - SET_TARGETING - } -} = CONSTANTS; + AUCTION_INIT, + AUCTION_END, + BID_REQUESTED, + BID_RESPONSE, + BID_REJECTED, + BIDDER_DONE, + BID_WON, + BID_TIMEOUT, + SET_TARGETING +} = EVENTS; const BID = { 'bidder': 'pubmatic', @@ -110,7 +108,7 @@ const BID2 = Object.assign({}, BID, { }); const BID3 = Object.assign({}, BID2, { - rejectionReason: CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET + rejectionReason: REJECTION_REASON.FLOOR_NOT_MET }) const MOCK = { SET_TARGETING: { diff --git a/test/spec/modules/pubmaticBidAdapter_spec.js b/test/spec/modules/pubmaticBidAdapter_spec.js index fda2c853e87..8aa29724ad6 100644 --- a/test/spec/modules/pubmaticBidAdapter_spec.js +++ b/test/spec/modules/pubmaticBidAdapter_spec.js @@ -4,7 +4,7 @@ import * as utils from 'src/utils.js'; import { config } from 'src/config.js'; import { createEidsArray } from 'modules/userId/eids.js'; import { bidderSettings } from 'src/bidderSettings.js'; -const constants = require('src/constants.json'); +const constants = require('src/constants.js'); describe('PubMatic adapter', function () { let bidRequests; diff --git a/test/spec/modules/pubstackAnalyticsAdapter_spec.js b/test/spec/modules/pubstackAnalyticsAdapter_spec.js index fe7441e91e5..6e532698d8b 100644 --- a/test/spec/modules/pubstackAnalyticsAdapter_spec.js +++ b/test/spec/modules/pubstackAnalyticsAdapter_spec.js @@ -2,7 +2,6 @@ import * as utils from 'src/utils.js'; import pubstackAnalytics from '../../../modules/pubstackAnalyticsAdapter.js'; import adapterManager from 'src/adapterManager'; import * as events from 'src/events'; -import constants from 'src/constants.json' import {expectEvents} from '../../helpers/analytics.js'; describe('Pubstack Analytics Adapter', () => { diff --git a/test/spec/modules/pubwiseAnalyticsAdapter_spec.js b/test/spec/modules/pubwiseAnalyticsAdapter_spec.js index 92d5972cc13..688a827de03 100644 --- a/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +++ b/test/spec/modules/pubwiseAnalyticsAdapter_spec.js @@ -2,10 +2,10 @@ import {expect} from 'chai'; import pubwiseAnalytics from 'modules/pubwiseAnalyticsAdapter.js'; import {expectEvents} from '../../helpers/analytics.js'; import {server} from '../../mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); let adapterManager = require('src/adapterManager').default; -let constants = require('src/constants.json'); describe('PubWise Prebid Analytics', function () { let requests; @@ -54,14 +54,14 @@ describe('PubWise Prebid Analytics', function () { sandbox.spy(pubwiseAnalytics, 'track'); expectEvents([ - constants.EVENTS.AUCTION_INIT, - constants.EVENTS.BID_REQUESTED, - constants.EVENTS.BID_RESPONSE, - constants.EVENTS.BID_WON, - constants.EVENTS.AD_RENDER_FAILED, - constants.EVENTS.TCF2_ENFORCEMENT, - constants.EVENTS.BID_TIMEOUT, - constants.EVENTS.AUCTION_END, + EVENTS.AUCTION_INIT, + EVENTS.BID_REQUESTED, + EVENTS.BID_RESPONSE, + EVENTS.BID_WON, + EVENTS.AD_RENDER_FAILED, + EVENTS.TCF2_ENFORCEMENT, + EVENTS.BID_TIMEOUT, + EVENTS.AUCTION_END, ]).to.beTrackedBy(pubwiseAnalytics.track); }); @@ -69,10 +69,10 @@ describe('PubWise Prebid Analytics', function () { pubwiseAnalytics.enableAnalytics(mock.DEFAULT_PW_CONFIG); // sent - events.emit(constants.EVENTS.AUCTION_INIT, mock.AUCTION_INIT); - events.emit(constants.EVENTS.BID_REQUESTED, {}); - events.emit(constants.EVENTS.BID_RESPONSE, {}); - events.emit(constants.EVENTS.BID_WON, {}); + events.emit(EVENTS.AUCTION_INIT, mock.AUCTION_INIT); + events.emit(EVENTS.BID_REQUESTED, {}); + events.emit(EVENTS.BID_RESPONSE, {}); + events.emit(EVENTS.BID_WON, {}); // force flush clock.tick(500); @@ -120,7 +120,7 @@ describe('PubWise Prebid Analytics', function () { pubwiseAnalytics.enableAnalytics(mock.DEFAULT_PW_CONFIG); // sent - events.emit(constants.EVENTS.AUCTION_INIT, mock.AUCTION_INIT_EXTRAS); + events.emit(EVENTS.AUCTION_INIT, mock.AUCTION_INIT_EXTRAS); // force flush clock.tick(500); diff --git a/test/spec/modules/pubxaiAnalyticsAdapter_spec.js b/test/spec/modules/pubxaiAnalyticsAdapter_spec.js index e0f4497a8c8..9af1ef185e1 100644 --- a/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +++ b/test/spec/modules/pubxaiAnalyticsAdapter_spec.js @@ -4,9 +4,9 @@ import adapterManager from 'src/adapterManager.js'; import * as utils from 'src/utils.js'; import {server} from 'test/mocks/xhr.js'; import {getGptSlotInfoForAdUnitCode} from '../../../libraries/gptUtils/gptUtils.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('pubxai analytics adapter', function() { beforeEach(function() { @@ -671,19 +671,19 @@ describe('pubxai analytics adapter', function() { it('builds and sends auction data', function() { // Step 1: Send auction init event - events.emit(constants.EVENTS.AUCTION_INIT, prebidEvent['auctionInit']); + events.emit(EVENTS.AUCTION_INIT, prebidEvent['auctionInit']); // Step 2: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, prebidEvent['bidRequested']); + events.emit(EVENTS.BID_REQUESTED, prebidEvent['bidRequested']); // Step 3: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, prebidEvent['bidResponse']); + events.emit(EVENTS.BID_RESPONSE, prebidEvent['bidResponse']); // Step 4: Send bid time out event - events.emit(constants.EVENTS.BID_TIMEOUT, prebidEvent['bidTimeout']); + events.emit(EVENTS.BID_TIMEOUT, prebidEvent['bidTimeout']); // Step 5: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, prebidEvent['auctionEnd']); + events.emit(EVENTS.AUCTION_END, prebidEvent['auctionEnd']); expect(server.requests.length).to.equal(1); @@ -692,7 +692,7 @@ describe('pubxai analytics adapter', function() { expect(realAfterBid).to.deep.equal(expectedAfterBid); // Step 6: Send auction bid won event - events.emit(constants.EVENTS.BID_WON, prebidEvent['bidWon']); + events.emit(EVENTS.BID_WON, prebidEvent['bidWon']); expect(server.requests.length).to.equal(2); diff --git a/test/spec/modules/qortexRtdProvider_spec.js b/test/spec/modules/qortexRtdProvider_spec.js index 9baa526e4cc..c9f92e8af67 100644 --- a/test/spec/modules/qortexRtdProvider_spec.js +++ b/test/spec/modules/qortexRtdProvider_spec.js @@ -1,7 +1,7 @@ import * as utils from 'src/utils'; import * as ajax from 'src/ajax.js'; import * as events from 'src/events.js'; -import CONSTANTS from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import {loadExternalScript} from 'src/adloader.js'; import { qortexSubmodule as module, @@ -127,7 +127,7 @@ describe('qortexRtdProvider', () => { let config = cloneDeep(validModuleConfig); config.params.tagConfig = validTagConfig; - events.on(CONSTANTS.EVENTS.BILLABLE_EVENT, (e) => { + events.on(EVENTS.BILLABLE_EVENT, (e) => { billableEvents.push(e); }) diff --git a/test/spec/modules/realTimeDataModule_spec.js b/test/spec/modules/realTimeDataModule_spec.js index 938e2e2f3c1..0f66b0253a2 100644 --- a/test/spec/modules/realTimeDataModule_spec.js +++ b/test/spec/modules/realTimeDataModule_spec.js @@ -1,7 +1,7 @@ import * as rtdModule from 'modules/rtdModule/index.js'; import {config} from 'src/config.js'; import * as sinon from 'sinon'; -import {default as CONSTANTS} from '../../../src/constants.json'; +import { EVENTS } from '../../../src/constants.js'; import * as events from '../../../src/events.js'; import 'src/prebid.js'; import {attachRealTimeDataProvider, onDataDeletionRequest} from 'modules/rtdModule/index.js'; @@ -255,11 +255,11 @@ describe('Real time module', function () { }); describe('event', () => { - const EVENTS = { - [CONSTANTS.EVENTS.AUCTION_INIT]: 'onAuctionInitEvent', - [CONSTANTS.EVENTS.AUCTION_END]: 'onAuctionEndEvent', - [CONSTANTS.EVENTS.BID_RESPONSE]: 'onBidResponseEvent', - [CONSTANTS.EVENTS.BID_REQUESTED]: 'onBidRequestEvent' + const TEST_EVENTS = { + [EVENTS.AUCTION_INIT]: 'onAuctionInitEvent', + [EVENTS.AUCTION_END]: 'onAuctionEndEvent', + [EVENTS.BID_RESPONSE]: 'onBidResponseEvent', + [EVENTS.BID_REQUESTED]: 'onBidRequestEvent' } const conf = { 'realTimeData': { @@ -281,7 +281,7 @@ describe('Real time module', function () { name: name, init: () => true, } - Object.values(EVENTS).forEach((ev) => provider[ev] = sinon.spy()); + Object.values(TEST_EVENTS).forEach((ev) => provider[ev] = sinon.spy()); return provider; } @@ -303,13 +303,13 @@ describe('Real time module', function () { adUnitCodes: ['a1'], adUnits: [{code: 'a1'}] }; - mockEmitEvent(CONSTANTS.EVENTS.AUCTION_END, auction); + mockEmitEvent(EVENTS.AUCTION_END, auction); providers.forEach(p => { expect(p.getTargetingData.calledWith(auction.adUnitCodes)).to.be.true; }); }); - Object.entries(EVENTS).forEach(([event, hook]) => { + Object.entries(TEST_EVENTS).forEach(([event, hook]) => { it(`'${event}' should be propagated to providers through '${hook}'`, () => { const eventArg = {}; mockEmitEvent(event, eventArg); diff --git a/test/spec/modules/relevantAnalyticsAdapter_spec.js b/test/spec/modules/relevantAnalyticsAdapter_spec.js index 5c818fe01d4..e3d0eca1b7b 100644 --- a/test/spec/modules/relevantAnalyticsAdapter_spec.js +++ b/test/spec/modules/relevantAnalyticsAdapter_spec.js @@ -1,7 +1,7 @@ import relevantAnalytics from '../../../modules/relevantAnalyticsAdapter.js'; import adapterManager from 'src/adapterManager'; import * as events from 'src/events'; -import constants from 'src/constants.json' +import { EVENTS } from 'src/constants.js' import { expect } from 'chai'; describe('Relevant Analytics Adapter', () => { @@ -18,8 +18,8 @@ describe('Relevant Analytics Adapter', () => { it('should pass all events to the global array', () => { // Given const testEvents = [ - { ev: constants.EVENTS.AUCTION_INIT, args: { test: 1 } }, - { ev: constants.EVENTS.BID_REQUESTED, args: { test: 2 } }, + { ev: EVENTS.AUCTION_INIT, args: { test: 1 } }, + { ev: EVENTS.BID_REQUESTED, args: { test: 2 } }, ]; // When diff --git a/test/spec/modules/relevantdigitalBidAdapter_spec.js b/test/spec/modules/relevantdigitalBidAdapter_spec.js index 0e21453c8ba..1575c5c6b94 100644 --- a/test/spec/modules/relevantdigitalBidAdapter_spec.js +++ b/test/spec/modules/relevantdigitalBidAdapter_spec.js @@ -1,7 +1,7 @@ import {spec, resetBidderConfigs} from 'modules/relevantdigitalBidAdapter.js'; import { parseUrl, deepClone } from 'src/utils.js'; import { config } from 'src/config.js'; -import CONSTANTS from 'src/constants.json'; +import { S2S } from 'src/constants.js'; import adapterManager, { } from 'src/adapterManager.js'; @@ -16,7 +16,7 @@ const TEST_PAGE = `https://${TEST_DOMAIN}/page.html`; const CONFIG = { enabled: true, - endpoint: CONSTANTS.S2S.DEFAULT_ENDPOINT, + endpoint: S2S.DEFAULT_ENDPOINT, timeout: 1000, maxBids: 1, adapter: 'prebidServer', diff --git a/test/spec/modules/rivrAnalyticsAdapter_spec.js b/test/spec/modules/rivrAnalyticsAdapter_spec.js index 9add7ed5f7d..6aab92b6b5d 100644 --- a/test/spec/modules/rivrAnalyticsAdapter_spec.js +++ b/test/spec/modules/rivrAnalyticsAdapter_spec.js @@ -19,7 +19,7 @@ import { import {expect} from 'chai'; import adapterManager from 'src/adapterManager.js'; import * as ajax from 'src/ajax.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; const events = require('../../../src/events'); @@ -98,7 +98,7 @@ describe('RIVR Analytics adapter', () => { expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(0); - events.emit(CONSTANTS.EVENTS.AUCTION_INIT, {auctionId: EMITTED_AUCTION_ID, config: {}, timeout: 3000}); + events.emit(EVENTS.AUCTION_INIT, { auctionId: EMITTED_AUCTION_ID, config: {}, timeout: 3000 }); expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(0); @@ -111,12 +111,12 @@ describe('RIVR Analytics adapter', () => { expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(0); - events.emit(CONSTANTS.EVENTS.AUCTION_INIT, {auctionId: EMITTED_AUCTION_ID, config: {}, timeout: 3000}); + events.emit(EVENTS.AUCTION_INIT, { auctionId: EMITTED_AUCTION_ID, config: {}, timeout: 3000 }); expect(rivraddonsTrackPbjsEventStub.callCount).to.be.equal(1); const firstArgument = rivraddonsTrackPbjsEventStub.getCall(0).args[0]; - expect(firstArgument.eventType).to.be.equal(CONSTANTS.EVENTS.AUCTION_INIT); + expect(firstArgument.eventType).to.be.equal(EVENTS.AUCTION_INIT); expect(firstArgument.args.auctionId).to.be.equal(EMITTED_AUCTION_ID); window.rivraddon.analytics.trackPbjsEvent.restore(); diff --git a/test/spec/modules/roxotAnalyticsAdapter_spec.js b/test/spec/modules/roxotAnalyticsAdapter_spec.js index 79c58e36735..6fc7f356333 100644 --- a/test/spec/modules/roxotAnalyticsAdapter_spec.js +++ b/test/spec/modules/roxotAnalyticsAdapter_spec.js @@ -1,9 +1,9 @@ import roxotAnalytic from 'modules/roxotAnalyticsAdapter.js'; import {expect} from 'chai'; import {server} from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('Roxot Prebid Analytic', function () { let roxotConfigServerUrl = 'config-server'; @@ -181,18 +181,18 @@ describe('Roxot Prebid Analytic', function () { expect(server.requests[0].url).to.equal('https://' + roxotConfigServerUrl + '/c?publisherId=' + publisherId + '&host=localhost'); server.requests[0].respond(200, {'Content-Type': 'application/json'}, '{"a": 1, "i": 1, "bat": 1}'); - events.emit(constants.EVENTS.AUCTION_INIT, auctionInit); - events.emit(constants.EVENTS.BID_REQUESTED, bidRequested); - events.emit(constants.EVENTS.BID_ADJUSTMENT, bidAdjustmentWithBid); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponseWithBid); - events.emit(constants.EVENTS.BID_ADJUSTMENT, bidAdjustmentNoBid); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponseNoBid); - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); - events.emit(constants.EVENTS.AUCTION_END, auctionEnd); - events.emit(constants.EVENTS.BID_ADJUSTMENT, bidAdjustmentAfterTimeout); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponseAfterTimeout); - events.emit(constants.EVENTS.BIDDER_DONE, bidderDone); - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.AUCTION_INIT, auctionInit); + events.emit(EVENTS.BID_REQUESTED, bidRequested); + events.emit(EVENTS.BID_ADJUSTMENT, bidAdjustmentWithBid); + events.emit(EVENTS.BID_RESPONSE, bidResponseWithBid); + events.emit(EVENTS.BID_ADJUSTMENT, bidAdjustmentNoBid); + events.emit(EVENTS.BID_RESPONSE, bidResponseNoBid); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.AUCTION_END, auctionEnd); + events.emit(EVENTS.BID_ADJUSTMENT, bidAdjustmentAfterTimeout); + events.emit(EVENTS.BID_RESPONSE, bidResponseAfterTimeout); + events.emit(EVENTS.BIDDER_DONE, bidderDone); + events.emit(EVENTS.BID_WON, bidWon); expect(server.requests.length).to.equal(4); @@ -260,18 +260,18 @@ describe('Roxot Prebid Analytic', function () { expect(server.requests[0].url).to.equal('https://' + roxotConfigServerUrl + '/c?publisherId=' + publisherId + '&host=localhost'); server.requests[0].respond(200, {'Content-Type': 'application/json'}, '{"a": 1, "i": 1, "bat": 1}'); - events.emit(constants.EVENTS.AUCTION_INIT, auctionInit); - events.emit(constants.EVENTS.BID_REQUESTED, bidRequested); - events.emit(constants.EVENTS.BID_ADJUSTMENT, bidAdjustmentWithBid); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponseWithBid); - events.emit(constants.EVENTS.BID_ADJUSTMENT, bidAdjustmentNoBid); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponseNoBid); - events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout); - events.emit(constants.EVENTS.AUCTION_END, auctionEnd); - events.emit(constants.EVENTS.BID_ADJUSTMENT, bidAdjustmentAfterTimeout); - events.emit(constants.EVENTS.BID_RESPONSE, bidResponseAfterTimeout); - events.emit(constants.EVENTS.BIDDER_DONE, bidderDone); - events.emit(constants.EVENTS.BID_WON, bidWon); + events.emit(EVENTS.AUCTION_INIT, auctionInit); + events.emit(EVENTS.BID_REQUESTED, bidRequested); + events.emit(EVENTS.BID_ADJUSTMENT, bidAdjustmentWithBid); + events.emit(EVENTS.BID_RESPONSE, bidResponseWithBid); + events.emit(EVENTS.BID_ADJUSTMENT, bidAdjustmentNoBid); + events.emit(EVENTS.BID_RESPONSE, bidResponseNoBid); + events.emit(EVENTS.BID_TIMEOUT, bidTimeout); + events.emit(EVENTS.AUCTION_END, auctionEnd); + events.emit(EVENTS.BID_ADJUSTMENT, bidAdjustmentAfterTimeout); + events.emit(EVENTS.BID_RESPONSE, bidResponseAfterTimeout); + events.emit(EVENTS.BIDDER_DONE, bidderDone); + events.emit(EVENTS.BID_WON, bidWon); expect(server.requests.length).to.equal(3); diff --git a/test/spec/modules/scaleableAnalyticsAdapter_spec.js b/test/spec/modules/scaleableAnalyticsAdapter_spec.js index c65740252d2..5f86073894a 100644 --- a/test/spec/modules/scaleableAnalyticsAdapter_spec.js +++ b/test/spec/modules/scaleableAnalyticsAdapter_spec.js @@ -1,13 +1,13 @@ import scaleableAnalytics from 'modules/scaleableAnalyticsAdapter.js'; import { expect } from 'chai'; import * as events from 'src/events.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import { server } from 'test/mocks/xhr.js'; -const BID_TIMEOUT = CONSTANTS.EVENTS.BID_TIMEOUT; -const AUCTION_INIT = CONSTANTS.EVENTS.AUCTION_INIT; -const BID_WON = CONSTANTS.EVENTS.BID_WON; -const AUCTION_END = CONSTANTS.EVENTS.AUCTION_END; +const BID_TIMEOUT = EVENTS.BID_TIMEOUT; +const AUCTION_INIT = EVENTS.AUCTION_INIT; +const BID_WON = EVENTS.BID_WON; +const AUCTION_END = EVENTS.AUCTION_END; describe('Scaleable Analytics Adapter', function() { const bidsReceivedObj = { diff --git a/test/spec/modules/sigmoidAnalyticsAdapter_spec.js b/test/spec/modules/sigmoidAnalyticsAdapter_spec.js index 6cdc3c448b9..1d8e38f19ec 100644 --- a/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +++ b/test/spec/modules/sigmoidAnalyticsAdapter_spec.js @@ -4,7 +4,6 @@ import {expectEvents} from '../../helpers/analytics.js'; let events = require('src/events'); let adapterManager = require('src/adapterManager').default; -let constants = require('src/constants.json'); describe('sigmoid Prebid Analytic', function () { after(function () { diff --git a/test/spec/modules/sonobiAnalyticsAdapter_spec.js b/test/spec/modules/sonobiAnalyticsAdapter_spec.js index ed8ccd22eea..c34de91dd9f 100644 --- a/test/spec/modules/sonobiAnalyticsAdapter_spec.js +++ b/test/spec/modules/sonobiAnalyticsAdapter_spec.js @@ -1,9 +1,10 @@ import sonobiAnalytics, {DEFAULT_EVENT_URL} from 'modules/sonobiAnalyticsAdapter.js'; import {expect} from 'chai'; import {server} from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; + let events = require('src/events'); let adapterManager = require('src/adapterManager').default; -let constants = require('src/constants.json'); describe('Sonobi Prebid Analytic', function () { var clock; @@ -55,25 +56,25 @@ describe('Sonobi Prebid Analytic', function () { }); // Step 2: Send init auction event - events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, auctionId: '13', timestamp: Date.now()}); + events.emit(EVENTS.AUCTION_INIT, { config: initOptions, auctionId: '13', timestamp: Date.now() }); expect(sonobiAnalytics.initOptions).to.have.property('pubId', 'A3B254F'); expect(sonobiAnalytics.initOptions).to.have.property('siteId', '1234'); expect(sonobiAnalytics.initOptions).to.have.property('delay', 100); // Step 3: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, { bids: [bid], auctionId: '13' }); + events.emit(EVENTS.BID_REQUESTED, { bids: [bid], auctionId: '13' }); // Step 4: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, bid); + events.emit(EVENTS.BID_RESPONSE, bid); // Step 5: Send bid won event - events.emit(constants.EVENTS.BID_WON, bid); + events.emit(EVENTS.BID_WON, bid); // Step 6: Send bid timeout event - events.emit(constants.EVENTS.BID_TIMEOUT, {auctionId: '13'}); + events.emit(EVENTS.BID_TIMEOUT, { auctionId: '13' }); // Step 7: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, {auctionId: '13', bidsReceived: [bid]}); + events.emit(EVENTS.AUCTION_END, { auctionId: '13', bidsReceived: [bid] }); clock.tick(5000); const req = server.requests.find(req => req.url.indexOf(DEFAULT_EVENT_URL) !== -1); diff --git a/test/spec/modules/sovrnAnalyticsAdapter_spec.js b/test/spec/modules/sovrnAnalyticsAdapter_spec.js index d0363eab144..7945bdc9910 100644 --- a/test/spec/modules/sovrnAnalyticsAdapter_spec.js +++ b/test/spec/modules/sovrnAnalyticsAdapter_spec.js @@ -4,11 +4,11 @@ import {config} from 'src/config.js'; import adaptermanager from 'src/adapterManager.js'; import {server} from 'test/mocks/xhr.js'; import {expectEvents, fireEvents} from '../../helpers/analytics.js'; +import { EVENTS } from 'src/constants.js'; var assert = require('assert'); let events = require('src/events'); -let constants = require('src/constants.json'); /** * Emit analytics events @@ -18,7 +18,7 @@ let constants = require('src/constants.json'); */ function emitEvent(eventType, event, auctionId) { event.auctionId = auctionId; - events.emit(constants.EVENTS[eventType], event); + events.emit(EVENTS[eventType], event); } let auctionStartTimestamp = Date.now(); diff --git a/test/spec/modules/staqAnalyticsAdapter_spec.js b/test/spec/modules/staqAnalyticsAdapter_spec.js index f8e3ba83bbe..3f28098e1d1 100644 --- a/test/spec/modules/staqAnalyticsAdapter_spec.js +++ b/test/spec/modules/staqAnalyticsAdapter_spec.js @@ -1,7 +1,7 @@ import analyticsAdapter, { ExpiringQueue, getUmtSource, storage } from 'modules/staqAnalyticsAdapter.js'; import { expect } from 'chai'; import adapterManager from 'src/adapterManager.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; const events = require('../../../src/events'); @@ -216,14 +216,14 @@ describe('', function() { }); it('should handle auction init event', function() { - events.emit(CONSTANTS.EVENTS.AUCTION_INIT, { config: {}, timeout: 3000 }); + events.emit(EVENTS.AUCTION_INIT, { config: {}, timeout: 3000 }); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(1); expect(ev[0]).to.be.eql({ event: 'auctionInit', auctionId: undefined }); }); it('should handle bid request event', function() { - events.emit(CONSTANTS.EVENTS.BID_REQUESTED, REQUEST); + events.emit(EVENTS.BID_REQUESTED, REQUEST); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(2); expect(ev[1]).to.be.eql({ @@ -236,7 +236,7 @@ describe('', function() { }); it('should handle bid response event', function() { - events.emit(CONSTANTS.EVENTS.BID_RESPONSE, RESPONSE); + events.emit(EVENTS.BID_RESPONSE, RESPONSE); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(3); expect(ev[2]).to.be.eql({ @@ -255,7 +255,7 @@ describe('', function() { }); it('should handle timeouts properly', function() { - events.emit(CONSTANTS.EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); + events.emit(EVENTS.BID_TIMEOUT, bidTimeoutArgsV1); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(5); // remember, we added 2 timeout events @@ -268,7 +268,7 @@ describe('', function() { }); it('should handle winning bid', function() { - events.emit(CONSTANTS.EVENTS.BID_WON, RESPONSE); + events.emit(EVENTS.BID_WON, RESPONSE); const ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(6); expect(ev[5]).to.be.eql({ @@ -287,7 +287,7 @@ describe('', function() { it('should handle auction end event', function() { timer.tick(447); - events.emit(CONSTANTS.EVENTS.AUCTION_END, RESPONSE); + events.emit(EVENTS.AUCTION_END, RESPONSE); let ev = analyticsAdapter.context.queue.peekAll(); expect(ev).to.have.length(0); expect(ajaxStub.calledOnce).to.be.equal(true); diff --git a/test/spec/modules/terceptAnalyticsAdapter_spec.js b/test/spec/modules/terceptAnalyticsAdapter_spec.js index a1384bfd919..8a0d04ff6b3 100644 --- a/test/spec/modules/terceptAnalyticsAdapter_spec.js +++ b/test/spec/modules/terceptAnalyticsAdapter_spec.js @@ -3,9 +3,9 @@ import { expect } from 'chai'; import adapterManager from 'src/adapterManager.js'; import * as utils from 'src/utils.js'; import { server } from 'test/mocks/xhr.js'; +import { EVENTS } from 'src/constants.js'; let events = require('src/events'); -let constants = require('src/constants.json'); describe('tercept analytics adapter', function () { beforeEach(function () { @@ -753,19 +753,19 @@ describe('tercept analytics adapter', function () { it('builds and sends auction data', function () { // Step 1: Send auction init event - events.emit(constants.EVENTS.AUCTION_INIT, prebidEvent['auctionInit']); + events.emit(EVENTS.AUCTION_INIT, prebidEvent['auctionInit']); // Step 2: Send bid requested event - events.emit(constants.EVENTS.BID_REQUESTED, prebidEvent['bidRequested']); + events.emit(EVENTS.BID_REQUESTED, prebidEvent['bidRequested']); // Step 3: Send bid response event - events.emit(constants.EVENTS.BID_RESPONSE, prebidEvent['bidResponse']); + events.emit(EVENTS.BID_RESPONSE, prebidEvent['bidResponse']); // Step 4: Send bid time out event - events.emit(constants.EVENTS.BID_TIMEOUT, prebidEvent['bidTimeout']); + events.emit(EVENTS.BID_TIMEOUT, prebidEvent['bidTimeout']); // Step 5: Send auction end event - events.emit(constants.EVENTS.AUCTION_END, prebidEvent['auctionEnd']); + events.emit(EVENTS.AUCTION_END, prebidEvent['auctionEnd']); expect(server.requests.length).to.equal(1); @@ -774,7 +774,7 @@ describe('tercept analytics adapter', function () { expect(realAfterBid).to.deep.equal(expectedAfterBid); // Step 6: Send auction bid won event - events.emit(constants.EVENTS.BID_WON, prebidEvent['bidWon']); + events.emit(EVENTS.BID_WON, prebidEvent['bidWon']); expect(server.requests.length).to.equal(2); diff --git a/test/spec/modules/trionBidAdapter_spec.js b/test/spec/modules/trionBidAdapter_spec.js index d7f09c2a057..2d0438e37e5 100644 --- a/test/spec/modules/trionBidAdapter_spec.js +++ b/test/spec/modules/trionBidAdapter_spec.js @@ -3,7 +3,7 @@ import * as utils from 'src/utils.js'; import {spec, acceptPostMessage, getStorageData, setStorageData} from 'modules/trionBidAdapter.js'; import {deepClone} from 'src/utils.js'; -const CONSTANTS = require('src/constants.json'); +const CONSTANTS = require('src/constants.js'); const adloader = require('src/adloader'); const PLACEMENT_CODE = 'ad-tag'; diff --git a/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js b/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js index 2b7f047c85a..997586c195e 100644 --- a/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +++ b/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js @@ -6,7 +6,7 @@ import { import {expect} from 'chai'; const events = require('src/events'); -const constants = require('src/constants.json'); +const constants = require('src/constants.js'); const pbuid = 'pbuid-AA778D8A796AEA7A0843E2BBEB677766'; const adid = 'test-ad-83444226E44368D1E32E49EEBE6D29'; diff --git a/test/spec/modules/userId_spec.js b/test/spec/modules/userId_spec.js index 1e909d79ed4..2ff19424e09 100644 --- a/test/spec/modules/userId_spec.js +++ b/test/spec/modules/userId_spec.js @@ -18,7 +18,7 @@ import {config} from 'src/config.js'; import * as utils from 'src/utils.js'; import {getPrebidInternal} from 'src/utils.js'; import * as events from 'src/events.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import {getGlobal} from 'src/prebidGlobal.js'; import {resetConsentData, } from 'modules/consentManagement.js'; import {server} from 'test/mocks/xhr.js'; @@ -1714,7 +1714,7 @@ describe('User ID', function () { // check user sync is delayed after auction is ended mockIdCallback.calledOnce.should.equal(false); events.on.calledOnce.should.equal(true); - events.on.calledWith(CONSTANTS.EVENTS.AUCTION_END, sinon.match.func); + events.on.calledWith(EVENTS.AUCTION_END, sinon.match.func); // once auction is ended, sync user ids after delay events.on.callArg(1); @@ -1748,7 +1748,7 @@ describe('User ID', function () { // sync delay after auction is ended mockIdCallback.calledOnce.should.equal(false); events.on.calledOnce.should.equal(true); - events.on.calledWith(CONSTANTS.EVENTS.AUCTION_END, sinon.match.func); + events.on.calledWith(EVENTS.AUCTION_END, sinon.match.func); // once auction is ended, if no sync delay, fetch ids events.on.callArg(1); @@ -3104,7 +3104,7 @@ describe('User ID', function () { }); function endAuction() { - events.emit(CONSTANTS.EVENTS.AUCTION_END, {}); + events.emit(EVENTS.AUCTION_END, {}); return new Promise((resolve) => setTimeout(resolve)); } diff --git a/test/spec/modules/videoModule/pbVideo_spec.js b/test/spec/modules/videoModule/pbVideo_spec.js index 1ccd9766eab..58af1a15e43 100644 --- a/test/spec/modules/videoModule/pbVideo_spec.js +++ b/test/spec/modules/videoModule/pbVideo_spec.js @@ -1,7 +1,7 @@ import 'src/prebid.js'; import { expect } from 'chai'; import { PbVideo } from 'modules/videoModule'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; let ortbVideoMock; let ortbContentMock; @@ -225,7 +225,7 @@ describe('Prebid Video', function () { const pbEvents = { emit: () => {}, on: (event, callback) => { - if (event === CONSTANTS.EVENTS.AUCTION_END) { + if (event === EVENTS.AUCTION_END) { auctionEndCallback = callback } }, @@ -337,7 +337,7 @@ describe('Prebid Video', function () { const pbEvents = { on: (event, callback) => { - if (event === CONSTANTS.EVENTS.BID_ADJUSTMENT) { + if (event === EVENTS.BID_ADJUSTMENT) { bidAdjustmentCb = callback; } else if (event === 'videoAdImpression') { adImpressionCb = callback; diff --git a/test/spec/modules/yieldoneAnalyticsAdapter_spec.js b/test/spec/modules/yieldoneAnalyticsAdapter_spec.js index ea52f89773e..88438f383ee 100644 --- a/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +++ b/test/spec/modules/yieldoneAnalyticsAdapter_spec.js @@ -2,9 +2,10 @@ import yieldoneAnalytics from 'modules/yieldoneAnalyticsAdapter.js'; import { targeting } from 'src/targeting.js'; import { expect } from 'chai'; import _ from 'lodash'; +import { EVENTS } from 'src/constants.js'; + let events = require('src/events'); let adapterManager = require('src/adapterManager').default; -let constants = require('src/constants.json'); describe('Yieldone Prebid Analytic', function () { let sendStatStub; @@ -187,38 +188,38 @@ describe('Yieldone Prebid Analytic', function () { const expectedEvents = [ { - eventType: constants.EVENTS.AUCTION_INIT, + eventType: EVENTS.AUCTION_INIT, params: { config: initOptions, auctionId: auctionId } }, { - eventType: constants.EVENTS.BID_REQUESTED, + eventType: EVENTS.BID_REQUESTED, params: Object.assign(request[0]) }, { - eventType: constants.EVENTS.BID_REQUESTED, + eventType: EVENTS.BID_REQUESTED, params: Object.assign(request[1]) }, { - eventType: constants.EVENTS.BID_REQUESTED, + eventType: EVENTS.BID_REQUESTED, params: Object.assign(request[2]) }, { - eventType: constants.EVENTS.BID_RESPONSE, + eventType: EVENTS.BID_RESPONSE, params: Object.assign(preparedResponses[0]) }, { - eventType: constants.EVENTS.BID_RESPONSE, + eventType: EVENTS.BID_RESPONSE, params: Object.assign(preparedResponses[1]) }, { - eventType: constants.EVENTS.BID_RESPONSE, + eventType: EVENTS.BID_RESPONSE, params: Object.assign(preparedResponses[2]) }, { - eventType: constants.EVENTS.BID_TIMEOUT, + eventType: EVENTS.BID_TIMEOUT, params: Object.assign(request[2]) } ]; @@ -235,7 +236,7 @@ describe('Yieldone Prebid Analytic', function () { delete preparedWinnerParams.ad; const wonExpectedEvents = [ { - eventType: constants.EVENTS.BID_WON, + eventType: EVENTS.BID_WON, params: preparedWinnerParams } ]; @@ -251,29 +252,29 @@ describe('Yieldone Prebid Analytic', function () { options: initOptions }); - events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, auctionId: auctionId}); + events.emit(EVENTS.AUCTION_INIT, { config: initOptions, auctionId: auctionId }); - events.emit(constants.EVENTS.BID_REQUESTED, request[0]); - events.emit(constants.EVENTS.BID_REQUESTED, request[1]); - events.emit(constants.EVENTS.BID_REQUESTED, request[2]); + events.emit(EVENTS.BID_REQUESTED, request[0]); + events.emit(EVENTS.BID_REQUESTED, request[1]); + events.emit(EVENTS.BID_REQUESTED, request[2]); - events.emit(constants.EVENTS.BID_RESPONSE, responses[0]); - events.emit(constants.EVENTS.BID_RESPONSE, responses[1]); - events.emit(constants.EVENTS.BID_RESPONSE, responses[2]); + events.emit(EVENTS.BID_RESPONSE, responses[0]); + events.emit(EVENTS.BID_RESPONSE, responses[1]); + events.emit(EVENTS.BID_RESPONSE, responses[2]); - events.emit(constants.EVENTS.BID_TIMEOUT, [responses[3], responses[4]]); + events.emit(EVENTS.BID_TIMEOUT, [responses[3], responses[4]]); - events.emit(constants.EVENTS.AUCTION_END, auctionEnd); + events.emit(EVENTS.AUCTION_END, auctionEnd); sinon.assert.match(yieldoneAnalytics.eventsStorage[auctionId], expectedResult); delete yieldoneAnalytics.eventsStorage[auctionId]; setTimeout(function() { - events.emit(constants.EVENTS.BID_WON, winner); + events.emit(EVENTS.BID_WON, winner); sinon.assert.callCount(sendStatStub, 2) - const billableEventIndex = yieldoneAnalytics.eventsStorage[auctionId].events.findIndex(event => event.eventType === constants.EVENTS.BILLABLE_EVENT); + const billableEventIndex = yieldoneAnalytics.eventsStorage[auctionId].events.findIndex(event => event.eventType === EVENTS.BILLABLE_EVENT); if (billableEventIndex > -1) { yieldoneAnalytics.eventsStorage[auctionId].events.splice(billableEventIndex, 1); } diff --git a/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js b/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js index e8eb4ab73be..c0de9a0e2fa 100644 --- a/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js +++ b/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js @@ -1,7 +1,8 @@ import yuktamediaAnalyticsAdapter from 'modules/yuktamediaAnalyticsAdapter.js'; import { expect } from 'chai'; +import { EVENTS } from 'src/constants.js'; + let events = require('src/events'); -let constants = require('src/constants.json'); let prebidAuction = { 'auctionInit': { @@ -402,7 +403,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.AUCTION_INIT, prebidAuction[constants.EVENTS.AUCTION_INIT]); + events.emit(EVENTS.AUCTION_INIT, prebidAuction[EVENTS.AUCTION_INIT]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -417,7 +418,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.BID_REQUESTED, prebidAuction[constants.EVENTS.BID_REQUESTED]); + events.emit(EVENTS.BID_REQUESTED, prebidAuction[EVENTS.BID_REQUESTED]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -432,7 +433,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.NO_BID, prebidAuction[constants.EVENTS.NO_BID]); + events.emit(EVENTS.NO_BID, prebidAuction[EVENTS.NO_BID]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -447,7 +448,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.BID_TIMEOUT, prebidAuction[constants.EVENTS.BID_TIMEOUT]); + events.emit(EVENTS.BID_TIMEOUT, prebidAuction[EVENTS.BID_TIMEOUT]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -462,7 +463,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.BID_RESPONSE, prebidAuction[constants.EVENTS.BID_RESPONSE]); + events.emit(EVENTS.BID_RESPONSE, prebidAuction[EVENTS.BID_RESPONSE]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -477,7 +478,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.AUCTION_END, prebidAuction[constants.EVENTS.AUCTION_END]); + events.emit(EVENTS.AUCTION_END, prebidAuction[EVENTS.AUCTION_END]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -488,11 +489,11 @@ describe('yuktamedia analytics adapter', function () { } }); - events.emit(constants.EVENTS.AUCTION_INIT, {}); - events.emit(constants.EVENTS.AUCTION_END, {}); - events.emit(constants.EVENTS.BID_REQUESTED, {}); - events.emit(constants.EVENTS.BID_RESPONSE, {}); - events.emit(constants.EVENTS.BID_WON, {}); + events.emit(EVENTS.AUCTION_INIT, {}); + events.emit(EVENTS.AUCTION_END, {}); + events.emit(EVENTS.BID_REQUESTED, {}); + events.emit(EVENTS.BID_RESPONSE, {}); + events.emit(EVENTS.BID_WON, {}); sinon.assert.callCount(yuktamediaAnalyticsAdapter.track, 0); }); @@ -508,7 +509,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.AUCTION_INIT, prebidNativeAuction[constants.EVENTS.AUCTION_INIT]); + events.emit(EVENTS.AUCTION_INIT, prebidNativeAuction[EVENTS.AUCTION_INIT]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -523,7 +524,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.BID_REQUESTED, prebidNativeAuction[constants.EVENTS.BID_REQUESTED]); + events.emit(EVENTS.BID_REQUESTED, prebidNativeAuction[EVENTS.BID_REQUESTED]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -538,7 +539,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.BID_REQUESTED, prebidNativeAuction[constants.EVENTS.BID_REQUESTED + '1']); + events.emit(EVENTS.BID_REQUESTED, prebidNativeAuction[EVENTS.BID_REQUESTED + '1']); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -553,7 +554,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.NO_BID, prebidNativeAuction[constants.EVENTS.NO_BID]); + events.emit(EVENTS.NO_BID, prebidNativeAuction[EVENTS.NO_BID]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -568,7 +569,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.BID_TIMEOUT, prebidNativeAuction[constants.EVENTS.BID_TIMEOUT]); + events.emit(EVENTS.BID_TIMEOUT, prebidNativeAuction[EVENTS.BID_TIMEOUT]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -583,7 +584,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.BID_RESPONSE, prebidNativeAuction[constants.EVENTS.BID_RESPONSE]); + events.emit(EVENTS.BID_RESPONSE, prebidNativeAuction[EVENTS.BID_RESPONSE]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -598,7 +599,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.AUCTION_END, prebidNativeAuction[constants.EVENTS.AUCTION_END]); + events.emit(EVENTS.AUCTION_END, prebidNativeAuction[EVENTS.AUCTION_END]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); @@ -613,7 +614,7 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.AUCTION_END, prebidNativeAuction[constants.EVENTS.BID_WON]); + events.emit(EVENTS.AUCTION_END, prebidNativeAuction[EVENTS.BID_WON]); sinon.assert.called(yuktamediaAnalyticsAdapter.track); }); }); @@ -681,12 +682,12 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.AUCTION_INIT, prebidAuction[constants.EVENTS.AUCTION_INIT]); - events.emit(constants.EVENTS.BID_REQUESTED, prebidAuction[constants.EVENTS.BID_REQUESTED]); - events.emit(constants.EVENTS.NO_BID, prebidAuction[constants.EVENTS.NO_BID]); - events.emit(constants.EVENTS.BID_TIMEOUT, prebidAuction[constants.EVENTS.BID_TIMEOUT]); - events.emit(constants.EVENTS.BID_RESPONSE, prebidAuction[constants.EVENTS.BID_RESPONSE]); - events.emit(constants.EVENTS.AUCTION_END, prebidAuction[constants.EVENTS.AUCTION_END]); + events.emit(EVENTS.AUCTION_INIT, prebidAuction[EVENTS.AUCTION_INIT]); + events.emit(EVENTS.BID_REQUESTED, prebidAuction[EVENTS.BID_REQUESTED]); + events.emit(EVENTS.NO_BID, prebidAuction[EVENTS.NO_BID]); + events.emit(EVENTS.BID_TIMEOUT, prebidAuction[EVENTS.BID_TIMEOUT]); + events.emit(EVENTS.BID_RESPONSE, prebidAuction[EVENTS.BID_RESPONSE]); + events.emit(EVENTS.AUCTION_END, prebidAuction[EVENTS.AUCTION_END]); expect(localStorage.getItem('yuktamediaAnalytics_session_id')).to.not.equal(null); }); @@ -701,12 +702,12 @@ describe('yuktamedia analytics adapter', function () { enableUserIdCollection: true } }); - events.emit(constants.EVENTS.AUCTION_INIT, prebidAuction[constants.EVENTS.AUCTION_INIT]); - events.emit(constants.EVENTS.BID_REQUESTED, prebidAuction[constants.EVENTS.BID_REQUESTED]); - events.emit(constants.EVENTS.NO_BID, prebidAuction[constants.EVENTS.NO_BID]); - events.emit(constants.EVENTS.BID_TIMEOUT, prebidAuction[constants.EVENTS.BID_TIMEOUT]); - events.emit(constants.EVENTS.BID_RESPONSE, prebidAuction[constants.EVENTS.BID_RESPONSE]); - events.emit(constants.EVENTS.AUCTION_END, prebidAuction[constants.EVENTS.AUCTION_END]); + events.emit(EVENTS.AUCTION_INIT, prebidAuction[EVENTS.AUCTION_INIT]); + events.emit(EVENTS.BID_REQUESTED, prebidAuction[EVENTS.BID_REQUESTED]); + events.emit(EVENTS.NO_BID, prebidAuction[EVENTS.NO_BID]); + events.emit(EVENTS.BID_TIMEOUT, prebidAuction[EVENTS.BID_TIMEOUT]); + events.emit(EVENTS.BID_RESPONSE, prebidAuction[EVENTS.BID_RESPONSE]); + events.emit(EVENTS.AUCTION_END, prebidAuction[EVENTS.AUCTION_END]); expect(localStorage.getItem('yuktamediaAnalytics_session_id')).to.equal(null); }); }); diff --git a/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js b/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js index 54b61f19506..fa4b50d7693 100644 --- a/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +++ b/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js @@ -1,13 +1,13 @@ import zetaAnalyticsAdapter from 'modules/zeta_global_sspAnalyticsAdapter.js'; import {config} from 'src/config'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import {server} from '../../mocks/xhr.js'; import {logError} from '../../../src/utils'; let utils = require('src/utils'); let events = require('src/events'); -const EVENTS = { +const SAMPLE_EVENTS = { AUCTION_END: { 'auctionId': '75e394d9', 'timestamp': 1638441234544, @@ -388,22 +388,22 @@ describe('Zeta Global SSP Analytics Adapter', function() { it('Move ZetaParams through analytics events', function() { this.timeout(3000); - events.emit(CONSTANTS.EVENTS.AUCTION_END, EVENTS.AUCTION_END); - events.emit(CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, EVENTS.AD_RENDER_SUCCEEDED); + events.emit(EVENTS.AUCTION_END, SAMPLE_EVENTS.AUCTION_END); + events.emit(EVENTS.AD_RENDER_SUCCEEDED, SAMPLE_EVENTS.AD_RENDER_SUCCEEDED); expect(requests.length).to.equal(2); const auctionEnd = JSON.parse(requests[0].requestBody); const auctionSucceeded = JSON.parse(requests[1].requestBody); - expect(auctionSucceeded.bid.params[0]).to.be.deep.equal(EVENTS.AUCTION_END.adUnits[0].bids[0].params); - expect(EVENTS.AUCTION_END.adUnits[0].bids[0].bidder).to.be.equal('zeta_global_ssp'); + expect(auctionSucceeded.bid.params[0]).to.be.deep.equal(SAMPLE_EVENTS.AUCTION_END.adUnits[0].bids[0].params); + expect(SAMPLE_EVENTS.AUCTION_END.adUnits[0].bids[0].bidder).to.be.equal('zeta_global_ssp'); }); it('Keep only needed fields', function() { this.timeout(3000); - events.emit(CONSTANTS.EVENTS.AUCTION_END, EVENTS.AUCTION_END); - events.emit(CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, EVENTS.AD_RENDER_SUCCEEDED); + events.emit(EVENTS.AUCTION_END, SAMPLE_EVENTS.AUCTION_END); + events.emit(EVENTS.AD_RENDER_SUCCEEDED, SAMPLE_EVENTS.AD_RENDER_SUCCEEDED); expect(requests.length).to.equal(2); const auctionEnd = JSON.parse(requests[0].requestBody); diff --git a/test/spec/native_spec.js b/test/spec/native_spec.js index 9184601a76d..5d1a43cc57f 100644 --- a/test/spec/native_spec.js +++ b/test/spec/native_spec.js @@ -16,7 +16,7 @@ import { fireClickTrackers, setNativeResponseProperties, } from 'src/native.js'; -import CONSTANTS from 'src/constants.json'; +import { NATIVE_KEYS } from 'src/constants.js'; import { stubAuctionIndex } from '../helpers/indexStub.js'; import { convertOrtbRequestToProprietaryNative, fromOrtbNativeRequest } from '../../src/native.js'; import {auctionManager} from '../../src/auctionManager.js'; @@ -199,9 +199,9 @@ describe('native.js', function () { it('gets native targeting keys', function () { const targeting = getNativeTargeting(bid); - expect(targeting[CONSTANTS.NATIVE_KEYS.title]).to.equal(bid.native.title); - expect(targeting[CONSTANTS.NATIVE_KEYS.body]).to.equal(bid.native.body); - expect(targeting[CONSTANTS.NATIVE_KEYS.clickUrl]).to.equal( + expect(targeting[NATIVE_KEYS.title]).to.equal(bid.native.title); + expect(targeting[NATIVE_KEYS.body]).to.equal(bid.native.body); + expect(targeting[NATIVE_KEYS.clickUrl]).to.equal( bid.native.clickUrl ); expect(targeting.hb_native_foo).to.equal(bid.native.foo); @@ -230,11 +230,11 @@ describe('native.js', function () { }; const targeting = getNativeTargeting(bid, deps(adUnit)); - expect(targeting[CONSTANTS.NATIVE_KEYS.title]).to.equal(bid.native.title); - expect(targeting[CONSTANTS.NATIVE_KEYS.body]).to.equal( + expect(targeting[NATIVE_KEYS.title]).to.equal(bid.native.title); + expect(targeting[NATIVE_KEYS.body]).to.equal( 'hb_native_body:123' ); - expect(targeting[CONSTANTS.NATIVE_KEYS.clickUrl]).to.equal( + expect(targeting[NATIVE_KEYS.clickUrl]).to.equal( 'hb_native_linkurl:123' ); expect(targeting.hb_native_foo).to.equal(bid.native.ext.foo); @@ -244,9 +244,9 @@ describe('native.js', function () { it('sends placeholdes targetings with ortb native response', function () { const targeting = getNativeTargeting(completeNativeBid); - expect(targeting[CONSTANTS.NATIVE_KEYS.title]).to.equal('Native Creative'); - expect(targeting[CONSTANTS.NATIVE_KEYS.body]).to.equal('Cool description great stuff'); - expect(targeting[CONSTANTS.NATIVE_KEYS.clickUrl]).to.equal('https://www.link.example'); + expect(targeting[NATIVE_KEYS.title]).to.equal('Native Creative'); + expect(targeting[NATIVE_KEYS.body]).to.equal('Cool description great stuff'); + expect(targeting[NATIVE_KEYS.clickUrl]).to.equal('https://www.link.example'); }); it('should only include native targeting keys with values', function () { @@ -269,9 +269,9 @@ describe('native.js', function () { const targeting = getNativeTargeting(bidWithUndefinedFields, deps(adUnit)); expect(Object.keys(targeting)).to.deep.equal([ - CONSTANTS.NATIVE_KEYS.title, - CONSTANTS.NATIVE_KEYS.sponsoredBy, - CONSTANTS.NATIVE_KEYS.clickUrl, + NATIVE_KEYS.title, + NATIVE_KEYS.sponsoredBy, + NATIVE_KEYS.clickUrl, 'hb_native_foo', ]); }); @@ -294,7 +294,7 @@ describe('native.js', function () { }; const targeting = getNativeTargeting(bid, deps(adUnit)); - expect(Object.keys(targeting)).to.deep.equal([CONSTANTS.NATIVE_KEYS.title]); + expect(Object.keys(targeting)).to.deep.equal([NATIVE_KEYS.title]); }); it('should only include targeting if sendTargetingKeys not set to false', function () { @@ -342,10 +342,10 @@ describe('native.js', function () { const targeting = getNativeTargeting(bid, deps(adUnit)); expect(Object.keys(targeting)).to.deep.equal([ - CONSTANTS.NATIVE_KEYS.title, - CONSTANTS.NATIVE_KEYS.body, - CONSTANTS.NATIVE_KEYS.image, - CONSTANTS.NATIVE_KEYS.clickUrl, + NATIVE_KEYS.title, + NATIVE_KEYS.body, + NATIVE_KEYS.image, + NATIVE_KEYS.clickUrl, 'hb_native_foo', ]); }); @@ -353,7 +353,7 @@ describe('native.js', function () { it('should include rendererUrl in targeting', function () { const rendererUrl = 'https://www.renderer.com/'; const targeting = getNativeTargeting({...bid, native: {...bid.native, rendererUrl: {url: rendererUrl}}}, deps({})); - expect(targeting[CONSTANTS.NATIVE_KEYS.rendererUrl]).to.eql(rendererUrl); + expect(targeting[NATIVE_KEYS.rendererUrl]).to.eql(rendererUrl); }); it('fires impression trackers', function () { diff --git a/test/spec/unit/adRendering_spec.js b/test/spec/unit/adRendering_spec.js index c2f62842c7e..df837e5547e 100644 --- a/test/spec/unit/adRendering_spec.js +++ b/test/spec/unit/adRendering_spec.js @@ -7,7 +7,7 @@ import { handleNativeMessage, handleRender } from '../../../src/adRendering.js'; -import CONSTANTS from 'src/constants.json'; +import { AD_RENDER_FAILED_REASON, BID_STATUS, EVENTS } from 'src/constants.js'; import {expect} from 'chai/index.mjs'; import {config} from 'src/config.js'; import {VIDEO} from '../../../src/mediaTypes.js'; @@ -65,7 +65,7 @@ describe('adRendering', () => { }); function expectAdRenderFailedEvent(reason) { - sinon.assert.calledWith(events.emit, CONSTANTS.EVENTS.AD_RENDER_FAILED, sinon.match({adId, reason})); + sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_FAILED, sinon.match({ adId, reason })); } describe('doRender', () => { @@ -103,7 +103,7 @@ describe('adRendering', () => { it('emits AD_RENDER_SUCCEDED', () => { doRender({renderFn, bidResponse}); - sinon.assert.calledWith(events.emit, CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, sinon.match({ + sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_SUCCEEDED, sinon.match({ bid: bidResponse, adId: bidResponse.adId })); @@ -114,7 +114,7 @@ describe('adRendering', () => { it('should emit AD_RENDER_FAILED on video bids', () => { bidResponse.mediaType = VIDEO; doRender({renderFn, bidResponse}); - expectAdRenderFailedEvent(CONSTANTS.AD_RENDER_FAILED_REASON.PREVENT_WRITING_ON_MAIN_DOCUMENT) + expectAdRenderFailedEvent(AD_RENDER_FAILED_REASON.PREVENT_WRITING_ON_MAIN_DOCUMENT) }); } @@ -159,26 +159,26 @@ describe('adRendering', () => { describe('should emit AD_RENDER_FAILED', () => { it('when bidResponse is missing', () => { handleRender({adId}); - expectAdRenderFailedEvent(CONSTANTS.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD); + expectAdRenderFailedEvent(AD_RENDER_FAILED_REASON.CANNOT_FIND_AD); sinon.assert.notCalled(doRenderStub); }); it('on exceptions', () => { doRenderStub.throws(new Error()); handleRender({adId, bidResponse}); - expectAdRenderFailedEvent(CONSTANTS.AD_RENDER_FAILED_REASON.EXCEPTION); + expectAdRenderFailedEvent(AD_RENDER_FAILED_REASON.EXCEPTION); }); }) describe('when bid was already rendered', () => { beforeEach(() => { - bidResponse.status = CONSTANTS.BID_STATUS.RENDERED; + bidResponse.status = BID_STATUS.RENDERED; }); afterEach(() => { config.resetConfig(); }) it('should emit STALE_RENDER', () => { handleRender({adId, bidResponse}); - sinon.assert.calledWith(events.emit, CONSTANTS.EVENTS.STALE_RENDER, bidResponse); + sinon.assert.calledWith(events.emit, EVENTS.STALE_RENDER, bidResponse); sinon.assert.called(doRenderStub); }); it('should skip rendering if suppressStaleRender', () => { @@ -190,7 +190,7 @@ describe('adRendering', () => { it('should mark bid as won and emit BID_WON', () => { handleRender({renderFn, bidResponse}); - sinon.assert.calledWith(events.emit, CONSTANTS.EVENTS.BID_WON, bidResponse); + sinon.assert.calledWith(events.emit, EVENTS.BID_WON, bidResponse); sinon.assert.calledWith(auctionManager.addWinningBid, bidResponse); }) }) @@ -201,17 +201,17 @@ describe('adRendering', () => { beforeEach(() => { sandbox.stub(events, 'emit'); bid = { - status: CONSTANTS.BID_STATUS.RENDERED + status: BID_STATUS.RENDERED } }); it('emits AD_RENDER_FAILED with given reason', () => { - handleCreativeEvent({event: CONSTANTS.EVENTS.AD_RENDER_FAILED, info: {reason: 'reason', message: 'message'}}, bid); - sinon.assert.calledWith(events.emit, CONSTANTS.EVENTS.AD_RENDER_FAILED, sinon.match({bid, reason: 'reason', message: 'message'})); + handleCreativeEvent({ event: EVENTS.AD_RENDER_FAILED, info: { reason: 'reason', message: 'message' } }, bid); + sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_FAILED, sinon.match({ bid, reason: 'reason', message: 'message' })); }); it('emits AD_RENDER_SUCCEEDED', () => { - handleCreativeEvent({event: CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED}, bid); - sinon.assert.calledWith(events.emit, CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, sinon.match({bid})); + handleCreativeEvent({ event: EVENTS.AD_RENDER_SUCCEEDED }, bid); + sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_SUCCEEDED, sinon.match({ bid })); }); it('logs an error on other events', () => { diff --git a/test/spec/unit/core/adapterManager_spec.js b/test/spec/unit/core/adapterManager_spec.js index dac70696b4b..590d4829b49 100644 --- a/test/spec/unit/core/adapterManager_spec.js +++ b/test/spec/unit/core/adapterManager_spec.js @@ -12,7 +12,7 @@ import { getServerTestingsAds, getBidRequests } from 'test/fixtures/fixtures.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS, S2S } from 'src/constants.js'; import * as utils from 'src/utils.js'; import { config } from 'src/config.js'; import { registerBidder } from 'src/adapters/bidderFactory.js'; @@ -28,7 +28,7 @@ var events = require('../../../../src/events'); const CONFIG = { enabled: true, - endpoint: CONSTANTS.S2S.DEFAULT_ENDPOINT, + endpoint: S2S.DEFAULT_ENDPOINT, timeout: 1000, maxBids: 1, adapter: 'prebidServer', @@ -172,7 +172,7 @@ describe('adapterManager tests', function () { // function to count BID_REQUESTED events let cnt = 0; let count = () => cnt++; - events.on(CONSTANTS.EVENTS.BID_REQUESTED, count); + events.on(EVENTS.BID_REQUESTED, count); let bidRequests = [{ 'bidderCode': 'appnexus', 'auctionId': '1863e370099523', @@ -207,7 +207,7 @@ describe('adapterManager tests', function () { adapterManager.callBids(adUnits, bidRequests, () => {}, () => {}); expect(cnt).to.equal(1); sinon.assert.calledOnce(appnexusAdapterMock.callBids); - events.off(CONSTANTS.EVENTS.BID_REQUESTED, count); + events.off(EVENTS.BID_REQUESTED, count); }); it('should give bidders access to bidder-specific config', function(done) { @@ -390,7 +390,7 @@ describe('adapterManager tests', function () { }); it('should NOT call onBidWon when the bid is S2S', () => { - bids[0].src = CONSTANTS.S2S.SRC + bids[0].src = S2S.SRC adapterManager.callBidWonBidder(bids[0].bidder, bids[0], adUnits); sinon.assert.notCalled(criteoSpec.onBidWon); }) @@ -407,7 +407,7 @@ describe('adapterManager tests', function () { }); it('should NOT call onSetTargeting when bid is S2S', () => { - bids[0].src = CONSTANTS.S2S.SRC; + bids[0].src = S2S.SRC; adapterManager.callSetTargetingBidder(bids[0].bidder, bids[0], adUnits); sinon.assert.notCalled(criteoSpec.onSetTargeting); }) @@ -421,7 +421,7 @@ describe('adapterManager tests', function () { sinon.assert.called(criteoSpec.onBidViewable); }); it('should NOT call onBidViewable when bid is S2S', () => { - bids[0].src = CONSTANTS.S2S.SRC; + bids[0].src = S2S.SRC; adapterManager.callBidViewableBidder(bids[0].bidder, bids[0]); sinon.assert.notCalled(criteoSpec.onBidViewable); }) @@ -649,11 +649,11 @@ describe('adapterManager tests', function () { beforeEach(function () { prebidServerAdapterMock.callBids.reset(); cnt = 0; - events.on(CONSTANTS.EVENTS.BID_REQUESTED, count); + events.on(EVENTS.BID_REQUESTED, count); }); afterEach(function () { - events.off(CONSTANTS.EVENTS.BID_REQUESTED, count); + events.off(EVENTS.BID_REQUESTED, count); }); it('should fire for s2s requests', function () { @@ -1037,11 +1037,11 @@ describe('adapterManager tests', function () { beforeEach(function () { prebidServerAdapterMock.callBids.reset(); cnt = 0; - events.on(CONSTANTS.EVENTS.BID_REQUESTED, count); + events.on(EVENTS.BID_REQUESTED, count); }); afterEach(function () { - events.off(CONSTANTS.EVENTS.BID_REQUESTED, count); + events.off(EVENTS.BID_REQUESTED, count); }); it('should fire for s2s requests', function () { @@ -1691,7 +1691,7 @@ describe('adapterManager tests', function () { }) } - events.on(CONSTANTS.EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids); + events.on(EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids); adapterManager.makeBidRequests( adUnits, Date.now(), @@ -1700,7 +1700,7 @@ describe('adapterManager tests', function () { }, [] ); - events.off(CONSTANTS.EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids); + events.off(EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids); expect(adUnits.map((u) => u.nativeParams).some(i => i == null)).to.be.false; }); } @@ -2075,11 +2075,11 @@ describe('adapterManager tests', function () { const ortb2Fragments = {}; const req = { bidderCode: 'appnexus', - src: CONSTANTS.S2S.SRC, + src: S2S.SRC, adUnitsS2SCopy: adUnits, bids: [{ bidder: 'appnexus', - src: CONSTANTS.S2S.SRC + src: S2S.SRC }] }; adapterManager.callBids(adUnits, [req], sinon.stub(), sinon.stub(), {request: sinon.stub(), done: sinon.stub()}, 1000, sinon.stub(), ortb2Fragments); diff --git a/test/spec/unit/core/bidderFactory_spec.js b/test/spec/unit/core/bidderFactory_spec.js index 5fe5a1accfc..1e70c938a57 100644 --- a/test/spec/unit/core/bidderFactory_spec.js +++ b/test/spec/unit/core/bidderFactory_spec.js @@ -5,7 +5,7 @@ import {expect} from 'chai'; import {userSync} from 'src/userSync.js'; import * as utils from 'src/utils.js'; import {config} from 'src/config.js'; -import CONSTANTS from 'src/constants.json'; +import { EVENTS } from 'src/constants.js'; import * as events from 'src/events.js'; import {hook} from '../../../../src/hook.js'; import {auctionManager} from '../../../../src/auctionManager.js'; @@ -552,7 +552,7 @@ describe('bidderFactory', () => { expect(ajaxStub.calledTwice).to.equal(true); expect(eventEmitterSpy.getCalls() - .filter(call => call.args[0] === CONSTANTS.EVENTS.BEFORE_BIDDER_HTTP) + .filter(call => call.args[0] === EVENTS.BEFORE_BIDDER_HTTP) ).to.length(2); eventEmitterSpy.restore(); @@ -863,7 +863,7 @@ describe('bidderFactory', () => { expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE); expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock); expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST); - sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, { + sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, { error: xhrErrorMock, bidderRequest: MOCK_BIDS_REQUEST }); @@ -889,7 +889,7 @@ describe('bidderFactory', () => { expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE); expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock); expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST); - sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, { + sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, { error: xhrErrorMock, bidderRequest: MOCK_BIDS_REQUEST }); @@ -915,7 +915,7 @@ describe('bidderFactory', () => { expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE); expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock); expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST); - sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, { + sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, { error: xhrErrorMock, bidderRequest: MOCK_BIDS_REQUEST }); @@ -941,7 +941,7 @@ describe('bidderFactory', () => { expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE); expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock); expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST); - sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, { + sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, { error: xhrErrorMock, bidderRequest: MOCK_BIDS_REQUEST }); diff --git a/test/spec/unit/core/targeting_spec.js b/test/spec/unit/core/targeting_spec.js index ba9aeff70d1..54ea942e373 100644 --- a/test/spec/unit/core/targeting_spec.js +++ b/test/spec/unit/core/targeting_spec.js @@ -7,7 +7,7 @@ import { } from 'src/targeting.js'; import {config} from 'src/config.js'; import {createBidReceived} from 'test/fixtures/fixtures.js'; -import CONSTANTS from 'src/constants.json'; +import { DEFAULT_TARGETING_KEYS, JSON_MAPPING, NATIVE_KEYS, STATUS, TARGETING_KEYS } from 'src/constants.js'; import {auctionManager} from 'src/auctionManager.js'; import * as utils from 'src/utils.js'; import {deepClone} from 'src/utils.js'; @@ -15,7 +15,7 @@ import {createBid} from '../../../../src/bidfactory.js'; import {hook} from '../../../../src/hook.js'; import {getHighestCpm} from '../../../../src/utils/reducers.js'; -function mkBid(bid, status = CONSTANTS.STATUS.GOOD) { +function mkBid(bid, status = STATUS.GOOD) { return Object.assign(createBid(status), bid); } @@ -40,10 +40,10 @@ const sampleBid = { 'size': '300x250', 'adserverTargeting': { 'foobar': '300x250', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'rubicon', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '148018fe5e', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '0.53', - [CONSTANTS.TARGETING_KEYS.DEAL]: '1234' + [TARGETING_KEYS.BIDDER]: 'rubicon', + [TARGETING_KEYS.AD_ID]: '148018fe5e', + [TARGETING_KEYS.PRICE_BUCKET]: '0.53', + [TARGETING_KEYS.DEAL]: '1234' }, 'dealId': '1234', 'netRevenue': true, @@ -74,9 +74,9 @@ const bid2 = mkBid({ 'size': '300x250', 'adserverTargeting': { 'foobar': '300x250', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'rubicon', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '5454545', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '0.25' + [TARGETING_KEYS.BIDDER]: 'rubicon', + [TARGETING_KEYS.AD_ID]: '5454545', + [TARGETING_KEYS.PRICE_BUCKET]: '0.25' }, 'netRevenue': true, 'currency': 'USD', @@ -104,9 +104,9 @@ const bid3 = mkBid({ 'size': '300x600', 'adserverTargeting': { 'foobar': '300x600', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'rubicon', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '48747745', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '0.75' + [TARGETING_KEYS.BIDDER]: 'rubicon', + [TARGETING_KEYS.AD_ID]: '48747745', + [TARGETING_KEYS.PRICE_BUCKET]: '0.75' }, 'netRevenue': true, 'currency': 'USD', @@ -166,18 +166,18 @@ const nativeBid1 = mkBid({ 'pbCg': '', 'size': '0x0', 'adserverTargeting': { - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '591e7c9354b633', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.SIZE]: '0x0', - [CONSTANTS.TARGETING_KEYS.SOURCE]: 'client', - [CONSTANTS.TARGETING_KEYS.FORMAT]: 'native', - [CONSTANTS.NATIVE_KEYS.title]: 'This is a Prebid Native Creative', - [CONSTANTS.NATIVE_KEYS.body]: 'This is a Prebid Native Creative. There are many like it, but this one is mine.', - [CONSTANTS.NATIVE_KEYS.sponsoredBy]: 'Prebid.org', - [CONSTANTS.NATIVE_KEYS.clickUrl]: 'http://prebid.org/dev-docs/show-native-ads.html', - [CONSTANTS.NATIVE_KEYS.image]: 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg', - [CONSTANTS.NATIVE_KEYS.icon]: 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png' + [TARGETING_KEYS.BIDDER]: 'appnexus', + [TARGETING_KEYS.AD_ID]: '591e7c9354b633', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.SIZE]: '0x0', + [TARGETING_KEYS.SOURCE]: 'client', + [TARGETING_KEYS.FORMAT]: 'native', + [NATIVE_KEYS.title]: 'This is a Prebid Native Creative', + [NATIVE_KEYS.body]: 'This is a Prebid Native Creative. There are many like it, but this one is mine.', + [NATIVE_KEYS.sponsoredBy]: 'Prebid.org', + [NATIVE_KEYS.clickUrl]: 'http://prebid.org/dev-docs/show-native-ads.html', + [NATIVE_KEYS.image]: 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg', + [NATIVE_KEYS.icon]: 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png' } }); @@ -225,17 +225,17 @@ const nativeBid2 = mkBid({ 'pbCg': '', 'size': '0x0', 'adserverTargeting': { - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'dgads', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '6e0aba55ed54e5', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '1.90', - [CONSTANTS.TARGETING_KEYS.SIZE]: '0x0', - [CONSTANTS.TARGETING_KEYS.SOURCE]: 'client', - [CONSTANTS.TARGETING_KEYS.FORMAT]: 'native', - [CONSTANTS.NATIVE_KEYS.image]: 'https://ads-tr.bigmining.com/img/300x250.png', - [CONSTANTS.NATIVE_KEYS.title]: 'Test Title', - [CONSTANTS.NATIVE_KEYS.body]: 'Test Description', - [CONSTANTS.NATIVE_KEYS.sponsoredBy]: 'test.com', - [CONSTANTS.NATIVE_KEYS.clickUrl]: 'http://prebid.org/' + [TARGETING_KEYS.BIDDER]: 'dgads', + [TARGETING_KEYS.AD_ID]: '6e0aba55ed54e5', + [TARGETING_KEYS.PRICE_BUCKET]: '1.90', + [TARGETING_KEYS.SIZE]: '0x0', + [TARGETING_KEYS.SOURCE]: 'client', + [TARGETING_KEYS.FORMAT]: 'native', + [NATIVE_KEYS.image]: 'https://ads-tr.bigmining.com/img/300x250.png', + [NATIVE_KEYS.title]: 'Test Title', + [NATIVE_KEYS.body]: 'Test Description', + [NATIVE_KEYS.sponsoredBy]: 'test.com', + [NATIVE_KEYS.clickUrl]: 'http://prebid.org/' } }); @@ -351,7 +351,7 @@ describe('targeting tests', function () { return [ { 'code': adUnitCode, - [CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING]: adServerTargeting + [JSON_MAPPING.ADSERVER_TARGETING]: adServerTargeting } ]; }); @@ -489,7 +489,7 @@ describe('targeting tests', function () { }); const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']); - let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1) + let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1) expect(limitedBids.length).to.equal(1); }); @@ -502,7 +502,7 @@ describe('targeting tests', function () { }); const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']); - let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1) + let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1) expect(limitedBids.length).to.equal(2); }); @@ -515,7 +515,7 @@ describe('targeting tests', function () { }); const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']); - let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1) + let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1) expect(limitedBids.length).to.equal(2); }); @@ -611,7 +611,7 @@ describe('targeting tests', function () { beforeEach(function () { bidsReceived = [bid1, bid2, nativeBid1, nativeBid2].map(deepClone); bidsReceived.forEach((bid) => { - bid.adserverTargeting[CONSTANTS.TARGETING_KEYS.SOURCE] = 'test-source'; + bid.adserverTargeting[TARGETING_KEYS.SOURCE] = 'test-source'; bid.adUnitCode = 'adunit'; if (winningBid == null || bid.cpm > winningBid.cpm) { winningBid = bid; @@ -642,7 +642,7 @@ describe('targeting tests', function () { addTargetingKeys: ['SOURCE'] } }); - expect(targetingResult()).to.include.all.keys(...expandKey(CONSTANTS.TARGETING_KEYS.SOURCE)); + expect(targetingResult()).to.include.all.keys(...expandKey(TARGETING_KEYS.SOURCE)); }); it('should keep default and native keys', function() { @@ -651,9 +651,9 @@ describe('targeting tests', function () { addTargetingKeys: ['SOURCE'] } }); - const defaultKeys = new Set(Object.values(CONSTANTS.DEFAULT_TARGETING_KEYS)); + const defaultKeys = new Set(Object.values(DEFAULT_TARGETING_KEYS)); if (FEATURES.NATIVE) { - Object.values(CONSTANTS.NATIVE_KEYS).forEach((k) => defaultKeys.add(k)); + Object.values(NATIVE_KEYS).forEach((k) => defaultKeys.add(k)); } const expectedKeys = new Set(); @@ -670,8 +670,8 @@ describe('targeting tests', function () { it('should not be allowed together with allowTargetingKeys', function () { config.setConfig({ targetingControls: { - allowTargetingKeys: [CONSTANTS.TARGETING_KEYS.BIDDER], - addTargetingKeys: [CONSTANTS.TARGETING_KEYS.SOURCE] + allowTargetingKeys: [TARGETING_KEYS.BIDDER], + addTargetingKeys: [TARGETING_KEYS.SOURCE] } }); expect(targetingResult).to.throw(); @@ -849,12 +849,12 @@ describe('targeting tests', function () { // we should only get the targeting data for the one requested adunit expect(Object.keys(targeting).length).to.equal(1); - let sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1) + let sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1) // we shouldn't get more than 1 key for hb_pb_${bidder} expect(sendAllBidCpm.length).to.equal(1); // expect the winning CPM to be equal to the sendAllBidCPM - expect(targeting['/123456/header-bid-tag-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_rubicon']).to.deep.equal(targeting['/123456/header-bid-tag-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]); + expect(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET + '_rubicon']).to.deep.equal(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET]); }); if (FEATURES.NATIVE) { diff --git a/test/spec/unit/pbjs_api_spec.js b/test/spec/unit/pbjs_api_spec.js index 7f55a2cddf0..deb80873cfa 100644 --- a/test/spec/unit/pbjs_api_spec.js +++ b/test/spec/unit/pbjs_api_spec.js @@ -27,6 +27,7 @@ import {enrichFPD} from '../../../src/fpd/enrichment.js'; import {mockFpdEnrichments} from '../../helpers/fpd.js'; import {generateUUID} from '../../../src/utils.js'; import {getCreativeRenderer} from '../../../src/creativeRenderers.js'; +import { BID_STATUS, EVENTS, GRANULARITY_OPTIONS, TARGETING_KEYS } from 'src/constants.js'; var assert = require('chai').assert; var expect = require('chai').expect; @@ -34,7 +35,6 @@ var expect = require('chai').expect; var utils = require('src/utils'); var adapterManager = require('src/adapterManager').default; var events = require('src/events'); -var CONSTANTS = require('src/constants.json'); // These bid adapters are required to be loaded for the following tests to work require('modules/appnexusBidAdapter'); @@ -284,7 +284,7 @@ describe('Unit: Prebid Module', function () { it('should return targeting info as a string', function () { const adUnitCode = config.adUnitCodes[0]; $$PREBID_GLOBAL$$.setConfig({ enableSendAllBids: true }); - var expected = 'foobar=0x0%2C300x250%2C300x600&' + CONSTANTS.TARGETING_KEYS.SIZE + '=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '=233bcbee889d46d&' + CONSTANTS.TARGETING_KEYS.BIDDER + '=appnexus&' + CONSTANTS.TARGETING_KEYS.SIZE + '_triplelift=0x0&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_triplelift=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_triplelift=222bb26f9e8bd&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_triplelift=triplelift&' + CONSTANTS.TARGETING_KEYS.SIZE + '_appnexus=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_appnexus=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_appnexus=233bcbee889d46d&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_appnexus=appnexus&' + CONSTANTS.TARGETING_KEYS.SIZE + '_pagescience=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_pagescience=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_pagescience=25bedd4813632d7&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_pagescienc=pagescience&' + CONSTANTS.TARGETING_KEYS.SIZE + '_brightcom=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_brightcom=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_brightcom=26e0795ab963896&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_brightcom=brightcom&' + CONSTANTS.TARGETING_KEYS.SIZE + '_brealtime=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_brealtime=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_brealtime=275bd666f5a5a5d&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_brealtime=brealtime&' + CONSTANTS.TARGETING_KEYS.SIZE + '_pubmatic=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_pubmatic=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_pubmatic=28f4039c636b6a7&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_pubmatic=pubmatic&' + CONSTANTS.TARGETING_KEYS.SIZE + '_rubicon=300x600&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_rubicon=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_rubicon=29019e2ab586a5a&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_rubicon=rubicon'; + var expected = 'foobar=0x0%2C300x250%2C300x600&' + TARGETING_KEYS.SIZE + '=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '=10.00&' + TARGETING_KEYS.AD_ID + '=233bcbee889d46d&' + TARGETING_KEYS.BIDDER + '=appnexus&' + TARGETING_KEYS.SIZE + '_triplelift=0x0&' + TARGETING_KEYS.PRICE_BUCKET + '_triplelift=10.00&' + TARGETING_KEYS.AD_ID + '_triplelift=222bb26f9e8bd&' + TARGETING_KEYS.BIDDER + '_triplelift=triplelift&' + TARGETING_KEYS.SIZE + '_appnexus=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_appnexus=10.00&' + TARGETING_KEYS.AD_ID + '_appnexus=233bcbee889d46d&' + TARGETING_KEYS.BIDDER + '_appnexus=appnexus&' + TARGETING_KEYS.SIZE + '_pagescience=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_pagescience=10.00&' + TARGETING_KEYS.AD_ID + '_pagescience=25bedd4813632d7&' + TARGETING_KEYS.BIDDER + '_pagescienc=pagescience&' + TARGETING_KEYS.SIZE + '_brightcom=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_brightcom=10.00&' + TARGETING_KEYS.AD_ID + '_brightcom=26e0795ab963896&' + TARGETING_KEYS.BIDDER + '_brightcom=brightcom&' + TARGETING_KEYS.SIZE + '_brealtime=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_brealtime=10.00&' + TARGETING_KEYS.AD_ID + '_brealtime=275bd666f5a5a5d&' + TARGETING_KEYS.BIDDER + '_brealtime=brealtime&' + TARGETING_KEYS.SIZE + '_pubmatic=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_pubmatic=10.00&' + TARGETING_KEYS.AD_ID + '_pubmatic=28f4039c636b6a7&' + TARGETING_KEYS.BIDDER + '_pubmatic=pubmatic&' + TARGETING_KEYS.SIZE + '_rubicon=300x600&' + TARGETING_KEYS.PRICE_BUCKET + '_rubicon=10.00&' + TARGETING_KEYS.AD_ID + '_rubicon=29019e2ab586a5a&' + TARGETING_KEYS.BIDDER + '_rubicon=rubicon'; var result = $$PREBID_GLOBAL$$.getAdserverTargetingForAdUnitCodeStr(adUnitCode); assert.equal(expected, result, 'returns expected string of ad targeting info'); }); @@ -330,17 +330,17 @@ describe('Unit: Prebid Module', function () { var expected = { '/19968336/header-bid-tag-0': { foobar: '0x0,300x250,300x600', - [CONSTANTS.TARGETING_KEYS.SIZE]: '300x250', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '233bcbee889d46d', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus' + [TARGETING_KEYS.SIZE]: '300x250', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.AD_ID]: '233bcbee889d46d', + [TARGETING_KEYS.BIDDER]: 'appnexus' }, '/19968336/header-bid-tag1': { foobar: '728x90', - [CONSTANTS.TARGETING_KEYS.SIZE]: '728x90', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus' + [TARGETING_KEYS.SIZE]: '728x90', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', + [TARGETING_KEYS.BIDDER]: 'appnexus' } }; assert.deepEqual(targeting, expected); @@ -378,17 +378,17 @@ describe('Unit: Prebid Module', function () { '/19968336/header-bid-tag-0': { foobar: '300x250,300x600', always_use_me: 'abc', - [CONSTANTS.TARGETING_KEYS.SIZE]: '300x250', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '233bcbee889d46d', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus' + [TARGETING_KEYS.SIZE]: '300x250', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.AD_ID]: '233bcbee889d46d', + [TARGETING_KEYS.BIDDER]: 'appnexus' }, '/19968336/header-bid-tag1': { foobar: '728x90', - [CONSTANTS.TARGETING_KEYS.SIZE]: '728x90', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus' + [TARGETING_KEYS.SIZE]: '728x90', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', + [TARGETING_KEYS.BIDDER]: 'appnexus' } }; assert.deepEqual(targeting, expected); @@ -407,7 +407,7 @@ describe('Unit: Prebid Module', function () { $$PREBID_GLOBAL$$.bidderSettings = { 'standard': { adserverTargeting: [{ - key: CONSTANTS.TARGETING_KEYS.BIDDER, + key: TARGETING_KEYS.BIDDER, val: function(bidResponse) { return bidResponse.bidderCode; } @@ -417,7 +417,7 @@ describe('Unit: Prebid Module', function () { return bidResponse.adId; } }, { - key: CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + key: TARGETING_KEYS.PRICE_BUCKET, val: function(bidResponse) { return bidResponse.pbMg; } @@ -436,17 +436,17 @@ describe('Unit: Prebid Module', function () { '/19968336/header-bid-tag-0': { foobar: '300x250', custom_ad_id: '233bcbee889d46d', - [CONSTANTS.TARGETING_KEYS.SIZE]: '300x250', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '233bcbee889d46d', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus' + [TARGETING_KEYS.SIZE]: '300x250', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.AD_ID]: '233bcbee889d46d', + [TARGETING_KEYS.BIDDER]: 'appnexus' }, '/19968336/header-bid-tag1': { foobar: '728x90', - [CONSTANTS.TARGETING_KEYS.SIZE]: '728x90', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus', + [TARGETING_KEYS.SIZE]: '728x90', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', + [TARGETING_KEYS.BIDDER]: 'appnexus', custom_ad_id: '24bd938435ec3fc' } }; @@ -607,32 +607,32 @@ describe('Unit: Prebid Module', function () { indexStub.restore(); }); - it('should get correct ' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 0 to 5', function() { + it('should get correct ' + TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 0 to 5', function () { RESPONSE.tags[0].ads[0].cpm = 2.1234; auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('2.12'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('2.12'); }); - it('should get correct ' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 5 to 8', function() { + it('should get correct ' + TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 5 to 8', function () { RESPONSE.tags[0].ads[0].cpm = 6.78; auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('6.75'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('6.75'); }); - it('should get correct ' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 8 to 20', function() { + it('should get correct ' + TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 8 to 20', function () { RESPONSE.tags[0].ads[0].cpm = 19.5234; auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('19.50'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('19.50'); }); - it('should get correct ' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 20 to 25', function() { + it('should get correct ' + TARGETING_KEYS.PRICE_BUCKET + ' when using bid.cpm is between 20 to 25', function () { RESPONSE.tags[0].ads[0].cpm = 21.5234; auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('21.00'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('21.00'); }); }); @@ -867,7 +867,7 @@ describe('Unit: Prebid Module', function () { indexStub.restore(); }); - it('should get correct ' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + ' with cpm between 0 - 5', function() { + it('should get correct ' + TARGETING_KEYS.PRICE_BUCKET + ' with cpm between 0 - 5', function () { initTestConfig({ adUnits: [createAdUnit('div-gpt-ad-1460505748561-0')], adUnitCodes: ['div-gpt-ad-1460505748561-0'] @@ -878,10 +878,10 @@ describe('Unit: Prebid Module', function () { auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.25'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.25'); }); - it('should get correct ' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + ' with cpm between 21 - 100', function() { + it('should get correct ' + TARGETING_KEYS.PRICE_BUCKET + ' with cpm between 21 - 100', function () { initTestConfig({ adUnits: [createAdUnit('div-gpt-ad-1460505748561-0')], adUnitCodes: ['div-gpt-ad-1460505748561-0'] @@ -892,7 +892,7 @@ describe('Unit: Prebid Module', function () { auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('43.00'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('43.00'); }); it('should only apply price granularity if bid media type matches', function () { @@ -906,7 +906,7 @@ describe('Unit: Prebid Module', function () { auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.25'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.25'); if (FEATURES.VIDEO) { ajaxStub.restore(); @@ -921,7 +921,7 @@ describe('Unit: Prebid Module', function () { auction.callBids(cbTimeout); let bidTargeting = targeting.getAllTargeting(); - expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.00'); + expect(bidTargeting['div-gpt-ad-1460505748561-0'][TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.00'); } }); }); @@ -1067,7 +1067,7 @@ describe('Unit: Prebid Module', function () { $$PREBID_GLOBAL$$.setConfig({ enableSendAllBids: true }); $$PREBID_GLOBAL$$.setTargetingForGPTAsync('/19968336/header-bid-tag-0'); - expect(slots[0].spySetTargeting.args).to.deep.contain.members([[CONSTANTS.TARGETING_KEYS.BIDDER, 'appnexus'], [CONSTANTS.TARGETING_KEYS.AD_ID + '_appnexus', '233bcbee889d46d'], [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_appnexus', '10.00']]); + expect(slots[0].spySetTargeting.args).to.deep.contain.members([[TARGETING_KEYS.BIDDER, 'appnexus'], [TARGETING_KEYS.AD_ID + '_appnexus', '233bcbee889d46d'], [TARGETING_KEYS.PRICE_BUCKET + '_appnexus', '10.00']]); }); it('should set targeting when passed an array of ad unit codes with enableSendAllBids', function () { @@ -1076,7 +1076,7 @@ describe('Unit: Prebid Module', function () { $$PREBID_GLOBAL$$.setConfig({ enableSendAllBids: true }); $$PREBID_GLOBAL$$.setTargetingForGPTAsync(['/19968336/header-bid-tag-0']); - expect(slots[0].spySetTargeting.args).to.deep.contain.members([[CONSTANTS.TARGETING_KEYS.BIDDER, 'appnexus'], [CONSTANTS.TARGETING_KEYS.AD_ID + '_appnexus', '233bcbee889d46d'], [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_appnexus', '10.00']]); + expect(slots[0].spySetTargeting.args).to.deep.contain.members([[TARGETING_KEYS.BIDDER, 'appnexus'], [TARGETING_KEYS.AD_ID + '_appnexus', '233bcbee889d46d'], [TARGETING_KEYS.PRICE_BUCKET + '_appnexus', '10.00']]); }); it('should set targeting from googletag data', function () { @@ -1123,19 +1123,19 @@ describe('Unit: Prebid Module', function () { var expected = [ [ - CONSTANTS.TARGETING_KEYS.BIDDER, + TARGETING_KEYS.BIDDER, 'appnexus' ], [ - CONSTANTS.TARGETING_KEYS.AD_ID, + TARGETING_KEYS.AD_ID, '233bcbee889d46d' ], [ - CONSTANTS.TARGETING_KEYS.PRICE_BUCKET, + TARGETING_KEYS.PRICE_BUCKET, '10.00' ], [ - CONSTANTS.TARGETING_KEYS.SIZE, + TARGETING_KEYS.SIZE, '300x250' ], [ @@ -1360,8 +1360,8 @@ describe('Unit: Prebid Module', function () { var onWonEvent = sinon.stub(); var onStaleEvent = sinon.stub(); - $$PREBID_GLOBAL$$.onEvent(CONSTANTS.EVENTS.BID_WON, onWonEvent); - $$PREBID_GLOBAL$$.onEvent(CONSTANTS.EVENTS.STALE_RENDER, onStaleEvent); + $$PREBID_GLOBAL$$.onEvent(EVENTS.BID_WON, onWonEvent); + $$PREBID_GLOBAL$$.onEvent(EVENTS.STALE_RENDER, onStaleEvent); pushBidResponseToAuction({ ad: "" @@ -1377,7 +1377,7 @@ describe('Unit: Prebid Module', function () { sinon.assert.calledWith(onWonEvent, adResponse); sinon.assert.notCalled(onStaleEvent); - expect(adResponse).to.have.property('status', CONSTANTS.BID_STATUS.RENDERED); + expect(adResponse).to.have.property('status', BID_STATUS.RENDERED); // Reset call history for spies and stubs spyLogMessage.resetHistory(); @@ -1398,8 +1398,8 @@ describe('Unit: Prebid Module', function () { sinon.assert.calledWith(onStaleEvent, adResponse); // Clean up - $$PREBID_GLOBAL$$.offEvent(CONSTANTS.EVENTS.BID_WON, onWonEvent); - $$PREBID_GLOBAL$$.offEvent(CONSTANTS.EVENTS.STALE_RENDER, onStaleEvent); + $$PREBID_GLOBAL$$.offEvent(EVENTS.BID_WON, onWonEvent); + $$PREBID_GLOBAL$$.offEvent(EVENTS.STALE_RENDER, onStaleEvent); }); it('should stop stale rendering', function () { @@ -1411,8 +1411,8 @@ describe('Unit: Prebid Module', function () { // Setting suppressStaleRender to true explicitly configObj.setConfig({'auctionOptions': {'suppressStaleRender': true}}); - $$PREBID_GLOBAL$$.onEvent(CONSTANTS.EVENTS.BID_WON, onWonEvent); - $$PREBID_GLOBAL$$.onEvent(CONSTANTS.EVENTS.STALE_RENDER, onStaleEvent); + $$PREBID_GLOBAL$$.onEvent(EVENTS.BID_WON, onWonEvent); + $$PREBID_GLOBAL$$.onEvent(EVENTS.STALE_RENDER, onStaleEvent); pushBidResponseToAuction({ ad: "" @@ -1425,7 +1425,7 @@ describe('Unit: Prebid Module', function () { sinon.assert.calledOnce(spyAddWinningBid); sinon.assert.calledWith(spyAddWinningBid, adResponse); - expect(adResponse).to.have.property('status', CONSTANTS.BID_STATUS.RENDERED); + expect(adResponse).to.have.property('status', BID_STATUS.RENDERED); sinon.assert.calledWith(onWonEvent, adResponse); sinon.assert.notCalled(onStaleEvent); @@ -1448,8 +1448,8 @@ describe('Unit: Prebid Module', function () { sinon.assert.calledWith(onStaleEvent, adResponse); // Clean up - $$PREBID_GLOBAL$$.offEvent(CONSTANTS.EVENTS.BID_WON, onWonEvent); - $$PREBID_GLOBAL$$.offEvent(CONSTANTS.EVENTS.STALE_RENDER, onStaleEvent); + $$PREBID_GLOBAL$$.offEvent(EVENTS.BID_WON, onWonEvent); + $$PREBID_GLOBAL$$.offEvent(EVENTS.STALE_RENDER, onStaleEvent); configObj.setConfig({'auctionOptions': {}}); }); }); @@ -2766,16 +2766,16 @@ describe('Unit: Prebid Module', function () { let expected = { '/19968336/header-bid-tag-0': { 'foobar': '0x0,300x250,300x600', - [CONSTANTS.TARGETING_KEYS.SIZE]: '300x250', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '233bcbee889d46d', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus' + [TARGETING_KEYS.SIZE]: '300x250', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.AD_ID]: '233bcbee889d46d', + [TARGETING_KEYS.BIDDER]: 'appnexus' }, '/19968336/header-bid-tag1': { - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.SIZE]: '728x90', + [TARGETING_KEYS.BIDDER]: 'appnexus', + [TARGETING_KEYS.AD_ID]: '24bd938435ec3fc', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.SIZE]: '728x90', 'foobar': '728x90' } } @@ -2813,7 +2813,7 @@ describe('Unit: Prebid Module', function () { it('should emit event BID_ACCEPTED when invoked', function () { var callback = sinon.spy(); $$PREBID_GLOBAL$$.onEvent('bidAccepted', callback); - events.emit(CONSTANTS.EVENTS.BID_ACCEPTED); + events.emit(EVENTS.BID_ACCEPTED); sinon.assert.calledOnce(callback); }); @@ -3059,7 +3059,7 @@ describe('Unit: Prebid Module', function () { describe('emit', function () { it('should be able to emit event without arguments', function () { var spyEventsEmit = sinon.spy(events, 'emit'); - events.emit(CONSTANTS.EVENTS.REQUEST_BIDS); + events.emit(EVENTS.REQUEST_BIDS); assert.ok(spyEventsEmit.calledWith('requestBids')); events.emit.restore(); }); @@ -3179,7 +3179,7 @@ describe('Unit: Prebid Module', function () { let priceGranularity = configObj.getConfig('priceGranularity'); let newCustomPriceBucket = configObj.getConfig('customPriceBucket'); expect(goodConfig).to.deep.equal(newCustomPriceBucket); - expect(priceGranularity).to.equal(CONSTANTS.GRANULARITY_OPTIONS.CUSTOM); + expect(priceGranularity).to.equal(GRANULARITY_OPTIONS.CUSTOM); }); }); @@ -3319,11 +3319,11 @@ describe('Unit: Prebid Module', function () { 'auctionId': 123456, 'adserverTargeting': { 'foobar': '300x250', - [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus', - [CONSTANTS.TARGETING_KEYS.AD_ID]: '233bcbee889d46d', - [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00', - [CONSTANTS.TARGETING_KEYS.SIZE]: '300x250', - [CONSTANTS.TARGETING_KEYS.DEAL + '_appnexusDummyName']: '1234' + [TARGETING_KEYS.BIDDER]: 'appnexus', + [TARGETING_KEYS.AD_ID]: '233bcbee889d46d', + [TARGETING_KEYS.PRICE_BUCKET]: '10.00', + [TARGETING_KEYS.SIZE]: '300x250', + [TARGETING_KEYS.DEAL + '_appnexusDummyName']: '1234' } } ]; @@ -3363,7 +3363,7 @@ describe('Unit: Prebid Module', function () { auction.getBidsReceived = function() { return _bidsReceived }; const highestBid1 = $$PREBID_GLOBAL$$.getHighestUnusedBidResponseForAdUnitCode('/19968336/header-bid-tag-0'); expect(highestBid1).to.deep.equal(_bidsReceived[1]) - _bidsReceived[1].status = CONSTANTS.BID_STATUS.RENDERED + _bidsReceived[1].status = BID_STATUS.RENDERED const highestBid2 = $$PREBID_GLOBAL$$.getHighestUnusedBidResponseForAdUnitCode('/19968336/header-bid-tag-0'); expect(highestBid2).to.deep.equal(_bidsReceived[2]) }) @@ -3457,7 +3457,7 @@ describe('Unit: Prebid Module', function () { const markedBid = find($$PREBID_GLOBAL$$.getBidResponsesForAdUnitCode(adUnitCode).bids, bid => bid.adId === winningBid.adId); - expect(markedBid.status).to.equal(CONSTANTS.BID_STATUS.RENDERED); + expect(markedBid.status).to.equal(BID_STATUS.RENDERED); }); it('try and mark the bid object, but fail because we supplied the wrong adId', function () { @@ -3465,7 +3465,7 @@ describe('Unit: Prebid Module', function () { const markedBid = find($$PREBID_GLOBAL$$.getBidResponsesForAdUnitCode(adUnitCode).bids, bid => bid.adId === winningBid.adId); - expect(markedBid.status).to.not.equal(CONSTANTS.BID_STATUS.RENDERED); + expect(markedBid.status).to.not.equal(BID_STATUS.RENDERED); }); it('marks the winning bid object as used for the given adUnitCode', function () { @@ -3474,7 +3474,7 @@ describe('Unit: Prebid Module', function () { const markedBid = find($$PREBID_GLOBAL$$.getBidResponsesForAdUnitCode(adUnitCode).bids, bid => bid.adId === winningBid.adId); - expect(markedBid.status).to.equal(CONSTANTS.BID_STATUS.RENDERED); + expect(markedBid.status).to.equal(BID_STATUS.RENDERED); }); it('marks a bid object as used for the given adId', function () { @@ -3483,7 +3483,7 @@ describe('Unit: Prebid Module', function () { const markedBid = find($$PREBID_GLOBAL$$.getBidResponsesForAdUnitCode(adUnitCode).bids, bid => bid.adId === winningBid.adId); - expect(markedBid.status).to.equal(CONSTANTS.BID_STATUS.RENDERED); + expect(markedBid.status).to.equal(BID_STATUS.RENDERED); }); }); } @@ -3553,11 +3553,11 @@ describe('Unit: Prebid Module', function () { expect(window.apntag.tags[adUnitCode].keywords).to.deep.equal({}); }); - it('should not find ' + CONSTANTS.TARGETING_KEYS.AD_ID + ' key in lowercase for all bidders', function() { + it('should not find ' + TARGETING_KEYS.AD_ID + ' key in lowercase for all bidders', function () { const adUnitCode = '/19968336/header-bid-tag-0'; $$PREBID_GLOBAL$$.setConfig({ enableSendAllBids: true }); targeting.setTargetingForAst(); - const keywords = Object.keys(window.apntag.tags[adUnitCode].keywords).filter(keyword => (keyword.substring(0, CONSTANTS.TARGETING_KEYS.AD_ID.length) === CONSTANTS.TARGETING_KEYS.AD_ID)); + const keywords = Object.keys(window.apntag.tags[adUnitCode].keywords).filter(keyword => (keyword.substring(0, TARGETING_KEYS.AD_ID.length) === TARGETING_KEYS.AD_ID)); expect(keywords.length).to.equal(0); }); }); diff --git a/test/spec/unit/secureCreatives_spec.js b/test/spec/unit/secureCreatives_spec.js index a7be4e327f0..189066f7f88 100644 --- a/test/spec/unit/secureCreatives_spec.js +++ b/test/spec/unit/secureCreatives_spec.js @@ -13,7 +13,7 @@ import 'modules/nativeRendering.js'; import {expect} from 'chai'; -var CONSTANTS = require('src/constants.json'); +import { AD_RENDER_FAILED_REASON, BID_STATUS, EVENTS } from 'src/constants.js'; describe('secureCreatives', () => { let sandbox; @@ -160,10 +160,10 @@ describe('secureCreatives', () => { sinon.assert.calledWith(spyAddWinningBid, adResponse); sinon.assert.calledOnce(adResponse.renderer.render); sinon.assert.calledWith(adResponse.renderer.render, adResponse); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.BID_WON, adResponse); - sinon.assert.neverCalledWith(stubEmit, CONSTANTS.EVENTS.STALE_RENDER); + sinon.assert.calledWith(stubEmit, EVENTS.BID_WON, adResponse); + sinon.assert.neverCalledWith(stubEmit, EVENTS.STALE_RENDER); - expect(adResponse).to.have.property('status', CONSTANTS.BID_STATUS.RENDERED); + expect(adResponse).to.have.property('status', BID_STATUS.RENDERED); }); it('should allow stale rendering without config', function () { @@ -187,10 +187,10 @@ describe('secureCreatives', () => { sinon.assert.calledWith(spyAddWinningBid, adResponse); sinon.assert.calledOnce(adResponse.renderer.render); sinon.assert.calledWith(adResponse.renderer.render, adResponse); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.BID_WON, adResponse); - sinon.assert.neverCalledWith(stubEmit, CONSTANTS.EVENTS.STALE_RENDER); + sinon.assert.calledWith(stubEmit, EVENTS.BID_WON, adResponse); + sinon.assert.neverCalledWith(stubEmit, EVENTS.STALE_RENDER); - expect(adResponse).to.have.property('status', CONSTANTS.BID_STATUS.RENDERED); + expect(adResponse).to.have.property('status', BID_STATUS.RENDERED); resetHistories(adResponse.renderer.render); @@ -201,8 +201,8 @@ describe('secureCreatives', () => { sinon.assert.calledWith(spyAddWinningBid, adResponse); sinon.assert.calledOnce(adResponse.renderer.render); sinon.assert.calledWith(adResponse.renderer.render, adResponse); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.BID_WON, adResponse); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.STALE_RENDER, adResponse); + sinon.assert.calledWith(stubEmit, EVENTS.BID_WON, adResponse); + sinon.assert.calledWith(stubEmit, EVENTS.STALE_RENDER, adResponse); }); it('should stop stale rendering with config', function () { @@ -228,10 +228,10 @@ describe('secureCreatives', () => { sinon.assert.calledWith(spyAddWinningBid, adResponse); sinon.assert.calledOnce(adResponse.renderer.render); sinon.assert.calledWith(adResponse.renderer.render, adResponse); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.BID_WON, adResponse); - sinon.assert.neverCalledWith(stubEmit, CONSTANTS.EVENTS.STALE_RENDER); + sinon.assert.calledWith(stubEmit, EVENTS.BID_WON, adResponse); + sinon.assert.neverCalledWith(stubEmit, EVENTS.STALE_RENDER); - expect(adResponse).to.have.property('status', CONSTANTS.BID_STATUS.RENDERED); + expect(adResponse).to.have.property('status', BID_STATUS.RENDERED); resetHistories(adResponse.renderer.render); @@ -240,8 +240,8 @@ describe('secureCreatives', () => { sinon.assert.calledWith(spyLogWarn, warning); sinon.assert.notCalled(spyAddWinningBid); sinon.assert.notCalled(adResponse.renderer.render); - sinon.assert.neverCalledWith(stubEmit, CONSTANTS.EVENTS.BID_WON, adResponse); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.STALE_RENDER, adResponse); + sinon.assert.neverCalledWith(stubEmit, EVENTS.BID_WON, adResponse); + sinon.assert.calledWith(stubEmit, EVENTS.STALE_RENDER, adResponse); configObj.setConfig({'auctionOptions': {}}); }); @@ -254,8 +254,8 @@ describe('secureCreatives', () => { }) }); receiveMessage(ev); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.AD_RENDER_FAILED, sinon.match({ - reason: CONSTANTS.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, + sinon.assert.calledWith(stubEmit, EVENTS.AD_RENDER_FAILED, sinon.match({ + reason: AD_RENDER_FAILED_REASON.CANNOT_FIND_AD, adId: 'missing' })); }); @@ -272,8 +272,8 @@ describe('secureCreatives', () => { }) }); receiveMessage(ev) - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.AD_RENDER_FAILED, sinon.match({ - reason: CONSTANTS.AD_RENDER_FAILED_REASON.EXCEPTION, + sinon.assert.calledWith(stubEmit, EVENTS.AD_RENDER_FAILED, sinon.match({ + reason: AD_RENDER_FAILED_REASON.EXCEPTION, adId: bidId })); }); @@ -368,9 +368,9 @@ describe('secureCreatives', () => { sinon.assert.calledWith(stubGetAllAssetsMessage, data, adResponse); sinon.assert.calledOnce(ev.source.postMessage); sinon.assert.notCalled(stubFireNativeTrackers); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.BID_WON, adResponse); + sinon.assert.calledWith(stubEmit, EVENTS.BID_WON, adResponse); sinon.assert.calledOnce(spyAddWinningBid); - sinon.assert.neverCalledWith(stubEmit, CONSTANTS.EVENTS.STALE_RENDER); + sinon.assert.neverCalledWith(stubEmit, EVENTS.STALE_RENDER); }); it('Prebid native should not fire BID_WON when receiveMessage is called more than once', () => { @@ -392,17 +392,17 @@ describe('secureCreatives', () => { }); receiveMessage(ev); - sinon.assert.calledWith(stubEmit, CONSTANTS.EVENTS.BID_WON, adResponse); + sinon.assert.calledWith(stubEmit, EVENTS.BID_WON, adResponse); receiveMessage(ev); - stubEmit.withArgs(CONSTANTS.EVENTS.BID_WON, adResponse).calledOnce; + stubEmit.withArgs(EVENTS.BID_WON, adResponse).calledOnce; }); }); describe('Prebid Event', () => { Object.entries({ 'unrendered': [false, (bid) => { delete bid.status; }], - 'rendered': [true, (bid) => { bid.status = CONSTANTS.BID_STATUS.RENDERED }] + 'rendered': [true, (bid) => { bid.status = BID_STATUS.RENDERED }] }).forEach(([test, [shouldEmit, prepBid]]) => { describe(`for ${test} bids`, () => { beforeEach(() => { @@ -414,7 +414,7 @@ describe('secureCreatives', () => { const event = makeEvent({ data: JSON.stringify({ message: 'Prebid Event', - event: CONSTANTS.EVENTS.AD_RENDER_FAILED, + event: EVENTS.AD_RENDER_FAILED, adId: bidId, info: { reason: 'Fail reason', @@ -423,7 +423,7 @@ describe('secureCreatives', () => { }) }); receiveMessage(event); - expect(stubEmit.calledWith(CONSTANTS.EVENTS.AD_RENDER_FAILED, { + expect(stubEmit.calledWith(EVENTS.AD_RENDER_FAILED, { adId: bidId, bid: adResponse, reason: 'Fail reason', @@ -435,12 +435,12 @@ describe('secureCreatives', () => { const event = makeEvent({ data: JSON.stringify({ message: 'Prebid Event', - event: CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, + event: EVENTS.AD_RENDER_SUCCEEDED, adId: bidId, }) }); receiveMessage(event); - expect(stubEmit.calledWith(CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, { + expect(stubEmit.calledWith(EVENTS.AD_RENDER_SUCCEEDED, { adId: bidId, bid: adResponse, doc: null diff --git a/test/spec/utils_spec.js b/test/spec/utils_spec.js index c84fe124db6..e0a114d8cf6 100644 --- a/test/spec/utils_spec.js +++ b/test/spec/utils_spec.js @@ -1,6 +1,6 @@ import {getAdServerTargeting} from 'test/fixtures/fixtures.js'; import {expect} from 'chai'; -import CONSTANTS from 'src/constants.json'; +import { TARGETING_KEYS } from 'src/constants.js'; import * as utils from 'src/utils.js'; import {getHighestCpm, getLatestHighestCpmBid, getOldestHighestCpmBid} from '../../src/utils/reducers.js'; import {binarySearch, deepEqual, memoize, waitForElementToLoad} from 'src/utils.js'; @@ -65,7 +65,7 @@ describe('Utils', function () { var obj = getAdServerTargeting(); var output = utils.transformAdServerTargetingObj(obj[Object.keys(obj)[0]]); - var expected = 'foobar=0x0%2C300x250%2C300x600&' + CONSTANTS.TARGETING_KEYS.SIZE + '=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '=233bcbee889d46d&' + CONSTANTS.TARGETING_KEYS.BIDDER + '=appnexus&' + CONSTANTS.TARGETING_KEYS.SIZE + '_triplelift=0x0&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_triplelift=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_triplelift=222bb26f9e8bd&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_triplelift=triplelift&' + CONSTANTS.TARGETING_KEYS.SIZE + '_appnexus=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_appnexus=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_appnexus=233bcbee889d46d&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_appnexus=appnexus&' + CONSTANTS.TARGETING_KEYS.SIZE + '_pagescience=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_pagescience=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_pagescience=25bedd4813632d7&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_pagescienc=pagescience&' + CONSTANTS.TARGETING_KEYS.SIZE + '_brightcom=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_brightcom=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_brightcom=26e0795ab963896&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_brightcom=brightcom&' + CONSTANTS.TARGETING_KEYS.SIZE + '_brealtime=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_brealtime=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_brealtime=275bd666f5a5a5d&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_brealtime=brealtime&' + CONSTANTS.TARGETING_KEYS.SIZE + '_pubmatic=300x250&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_pubmatic=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_pubmatic=28f4039c636b6a7&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_pubmatic=pubmatic&' + CONSTANTS.TARGETING_KEYS.SIZE + '_rubicon=300x600&' + CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_rubicon=10.00&' + CONSTANTS.TARGETING_KEYS.AD_ID + '_rubicon=29019e2ab586a5a&' + CONSTANTS.TARGETING_KEYS.BIDDER + '_rubicon=rubicon'; + var expected = 'foobar=0x0%2C300x250%2C300x600&' + TARGETING_KEYS.SIZE + '=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '=10.00&' + TARGETING_KEYS.AD_ID + '=233bcbee889d46d&' + TARGETING_KEYS.BIDDER + '=appnexus&' + TARGETING_KEYS.SIZE + '_triplelift=0x0&' + TARGETING_KEYS.PRICE_BUCKET + '_triplelift=10.00&' + TARGETING_KEYS.AD_ID + '_triplelift=222bb26f9e8bd&' + TARGETING_KEYS.BIDDER + '_triplelift=triplelift&' + TARGETING_KEYS.SIZE + '_appnexus=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_appnexus=10.00&' + TARGETING_KEYS.AD_ID + '_appnexus=233bcbee889d46d&' + TARGETING_KEYS.BIDDER + '_appnexus=appnexus&' + TARGETING_KEYS.SIZE + '_pagescience=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_pagescience=10.00&' + TARGETING_KEYS.AD_ID + '_pagescience=25bedd4813632d7&' + TARGETING_KEYS.BIDDER + '_pagescienc=pagescience&' + TARGETING_KEYS.SIZE + '_brightcom=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_brightcom=10.00&' + TARGETING_KEYS.AD_ID + '_brightcom=26e0795ab963896&' + TARGETING_KEYS.BIDDER + '_brightcom=brightcom&' + TARGETING_KEYS.SIZE + '_brealtime=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_brealtime=10.00&' + TARGETING_KEYS.AD_ID + '_brealtime=275bd666f5a5a5d&' + TARGETING_KEYS.BIDDER + '_brealtime=brealtime&' + TARGETING_KEYS.SIZE + '_pubmatic=300x250&' + TARGETING_KEYS.PRICE_BUCKET + '_pubmatic=10.00&' + TARGETING_KEYS.AD_ID + '_pubmatic=28f4039c636b6a7&' + TARGETING_KEYS.BIDDER + '_pubmatic=pubmatic&' + TARGETING_KEYS.SIZE + '_rubicon=300x600&' + TARGETING_KEYS.PRICE_BUCKET + '_rubicon=10.00&' + TARGETING_KEYS.AD_ID + '_rubicon=29019e2ab586a5a&' + TARGETING_KEYS.BIDDER + '_rubicon=rubicon'; assert.equal(output, expected); });