Skip to content

Commit

Permalink
#9573 adding onAddRenderSucceeded to bidder spec
Browse files Browse the repository at this point in the history
  • Loading branch information
Marcin Komorski authored and Marcin Komorski committed Jul 18, 2024
1 parent b865952 commit f92c03b
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/adRendering.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {getCreativeRenderer} from './creativeRenderers.js';
import {hook} from './hook.js';
import {fireNativeTrackers} from './native.js';
import {GreedyPromise} from './utils/promise.js';
import adapterManager from './adapterManager.js';

const { AD_RENDER_FAILED, AD_RENDER_SUCCEEDED, STALE_RENDER, BID_WON } = EVENTS;
const { EXCEPTION } = AD_RENDER_FAILED_REASON;
Expand Down Expand Up @@ -68,6 +69,8 @@ export function emitAdRenderSucceeded({ doc, bid, id }) {
if (bid) data.bid = bid;
if (id) data.adId = id;

adapterManager.callAdRenderSucceededBidder(bid.adapterCode || bid.bidder, bid);

events.emit(AD_RENDER_SUCCEEDED, data);
}

Expand Down
4 changes: 4 additions & 0 deletions src/adapterManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -688,6 +688,10 @@ adapterManager.callBidderError = function(bidder, error, bidderRequest) {
tryCallBidderMethod(bidder, 'onBidderError', param);
};

adapterManager.callAdRenderSucceededBidder = function (bidder, bid) {
tryCallBidderMethod(bidder, 'onAdRenderSucceeded', bid);
}

function resolveAlias(alias) {
const seen = new Set();
while (_aliasRegistry.hasOwnProperty(alias) && !seen.has(alias)) {
Expand Down
28 changes: 27 additions & 1 deletion test/spec/unit/adRendering_spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as events from 'src/events.js';
import * as utils from 'src/utils.js';
import {
doRender, getBidToRender,
doRender, emitAdRenderSucceeded, getBidToRender,
getRenderingData,
handleCreativeEvent,
handleNativeMessage,
Expand All @@ -12,6 +12,7 @@ import {expect} from 'chai/index.mjs';
import {config} from 'src/config.js';
import {VIDEO} from '../../../src/mediaTypes.js';
import {auctionManager} from '../../../src/auctionManager.js';
import adapterManager from '../../../src/adapterManager.js';

describe('adRendering', () => {
let sandbox;
Expand Down Expand Up @@ -267,4 +268,29 @@ describe('adRendering', () => {
sinon.assert.calledWith(fireTrackers, data, bid);
})
})

describe('onAdRenderSucceeded', () => {
let mockAdapterSpec, bids;
beforeEach(() => {
mockAdapterSpec = {
onAdRenderSucceeded: sinon.stub()
};
adapterManager.bidderRegistry['mockBidder'] = {
bidder: 'mockBidder',
getSpec: function () { return mockAdapterSpec; },
};
bids = [
{ bidder: 'mockBidder', params: { placementId: 'id' } },
];
});

afterEach(function () {
delete adapterManager.bidderRegistry['mockBidder'];
});

it('should invoke onAddRenderSucceeded on emitAdRenderSucceeded', () => {
emitAdRenderSucceeded({ bid: bids[0] });
sinon.assert.called(mockAdapterSpec.onAdRenderSucceeded);
});
});
});
10 changes: 10 additions & 0 deletions test/spec/unit/core/adapterManager_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,16 @@ describe('adapterManager tests', function () {
sinon.assert.notCalled(criteoSpec.onBidViewable);
})
});

describe('onAdRenderSucceeded', function () {
beforeEach(() => {
criteoSpec.onAdRenderSucceeded = sinon.stub()
});
it('should call spec\'s onAdRenderSucceeded callback', function () {
adapterManager.callAdRenderSucceededBidder(bids[0].bidder, bids[0]);
sinon.assert.called(criteoSpec.onAdRenderSucceeded);
});
});
})
describe('onBidderError', function () {
const bidder = 'appnexus';
Expand Down

0 comments on commit f92c03b

Please sign in to comment.