diff --git a/resources/test/karma.conf.js b/resources/test/karma.conf.js index 681bb01..dd1d6e4 100644 --- a/resources/test/karma.conf.js +++ b/resources/test/karma.conf.js @@ -63,11 +63,13 @@ module.exports = function(config) { browserify: { debug: true, configure: function (bundle) { - bundle.require('./resources/test/mock-ad-units', {expose: 'bulbs.ads.units'}); - bundle.require('./resources/test/mock-google-tag', {expose: 'mockGoogleTag'}); - bundle.require('./src/utils', {expose: 'bulbs.ads.utils'}); - bundle.require('./src/dfp', {expose: 'bulbs.ads.dfp'}); - bundle.require('./src/manager', {expose: 'bulbs.ads.manager'}); + bundle.on('prebundle', function (bundle) { + bundle.require('./resources/test/mock-ad-units', {expose: 'bulbs.ads.units'}); + bundle.require('./resources/test/mock-google-tag', {expose: 'mockGoogleTag'}); + bundle.require('./src/utils', {expose: 'bulbs.ads.utils'}); + bundle.require('./src/dfp', {expose: 'bulbs.ads.dfp'}); + bundle.require('./src/manager', {expose: 'bulbs.ads.manager'}); + }); } } }); diff --git a/resources/test/mock-ad-units.js b/resources/test/mock-ad-units.js index 5cb1ba1..d70181f 100644 --- a/resources/test/mock-ad-units.js +++ b/resources/test/mock-ad-units.js @@ -17,45 +17,51 @@ module.exports = { - // This is used at the start a special coverage section - 'header': { - slotName: 'header', - sizes: [ - [[970, 0], [[728, 90], [970, 250], [970, 90], [970, 415]]], - [[728, 0], [728, 90]], - [[0, 0], [320, 50]] - ], - onSlotRenderEnded: function (e, el) {} + settings: { + dfpSite: 'onion' }, - 'article-header': { - slotName: 'header', - sizes: [ - [[970, 0], [[728, 90], [970, 250]]], - [[728, 0], [728, 90]], - [[0, 0], [320, 50]] - ], - onSlotRenderEnded: function (e, el) {} - }, + units: { - 'sidebar-primary': { - sizes: [ - [[0, 0], [300, 250]] - ], - onSlotRenderEnded: function (e, el) {} - }, + 'header': { + slotName: 'header', + sizes: [ + [[970, 0], [[728, 90], [970, 250], [970, 90], [970, 415]]], + [[728, 0], [728, 90]], + [[0, 0], [320, 50]] + ], + onSlotRenderEnded: function (e, el) {} + }, - 'sidebar-secondary': { - sizes: [ - [[0, 0], [300, 250]] - ], - onSlotRenderEnded: function (e, el) {} - }, + 'article-header': { + slotName: 'header', + sizes: [ + [[970, 0], [[728, 90], [970, 250]]], + [[728, 0], [728, 90]], + [[0, 0], [320, 50]] + ], + onSlotRenderEnded: function (e, el) {} + }, + + 'sidebar-primary': { + sizes: [ + [[0, 0], [300, 250]] + ], + onSlotRenderEnded: function (e, el) {} + }, + + 'sidebar-secondary': { + sizes: [ + [[0, 0], [300, 250]] + ], + onSlotRenderEnded: function (e, el) {} + }, - 'sidebar-tertiary': { - sizes: [ - [[0, 0], [300, 250]] - ], - onSlotRenderEnded: function (e, el) {} + 'sidebar-tertiary': { + sizes: [ + [[0, 0], [300, 250]] + ], + onSlotRenderEnded: function (e, el) {} + } } }; diff --git a/src/manager.js b/src/manager.js index 9150d00..752a8b5 100644 --- a/src/manager.js +++ b/src/manager.js @@ -16,7 +16,7 @@ module.exports = { this.slots = {}; this.adId = 0; - this.targeting = utils.extend({dfp_site: 'onion'}, global.TARGETING) + this.targeting = utils.extend({dfp_site: adUnits.settings.dfpSite}, global.TARGETING) this.initialized = false; this.debugAds = {}; @@ -125,8 +125,8 @@ module.exports = { el.style.removeProperty('height'); el.style.removeProperty('width'); - if (adUnits[el.dataset.adUnit].onSlotRenderEnded) { - adUnits[el.dataset.adUnit].onSlotRenderEnded(e, el); + if (adUnits.units[el.dataset.adUnit].onSlotRenderEnded) { + adUnits.units[el.dataset.adUnit].onSlotRenderEnded(e, el); } }, @@ -270,7 +270,7 @@ module.exports = { return; } - var adUnitConfig = adUnits[element.dataset.adUnit]; + var adUnitConfig = adUnits.units[element.dataset.adUnit]; if (adUnitConfig === undefined) { return; // We don't know anything about this ad! } diff --git a/src/manager.spec.js b/src/manager.spec.js index 6d4284c..e010fae 100644 --- a/src/manager.spec.js +++ b/src/manager.spec.js @@ -1,10 +1,10 @@ describe('AdsManager', function () { var ads; + var adUnits = require('bulbs.ads.units'); + var MockGoogleTag = require('mockGoogleTag'); beforeEach(function () { - var MockGoogleTag = require('mockGoogleTag'); - window.googletag = new MockGoogleTag(); ads = require('./manager.js'); @@ -41,4 +41,8 @@ describe('AdsManager', function () { el.innerHTML = '
'; expect(ads.findAds(el).length).to.equal(2); }); + + it('should use the dfpSite setting from bulbs.ads.units', function () { + expect(adUnits.settings.dfpSite).to.equal(ads.targeting.dfp_site); + }); });