forked from prebid/Prebid.js
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathadvRedAnalyticsAdapter_spec.js
More file actions
114 lines (99 loc) · 3.16 KB
/
advRedAnalyticsAdapter_spec.js
File metadata and controls
114 lines (99 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import advRedAnalytics from 'modules/advRedAnalyticsAdapter.js';
import {expect} from 'chai';
import {server} from 'test/mocks/xhr.js';
import {expectEvents} from '../../helpers/analytics.js';
import { EVENTS } from 'src/constants.js';
import sinon from 'sinon';
const events = require('src/events');
describe('AdvRed Analytics Adapter', function () {
const bidWonEvent = {
'bidderCode': 'appnexus',
'width': 300,
'height': 250,
'adId': '1ebb82ec35375e',
'mediaType': 'banner',
'cpm': 0.5,
'requestId': '1582271863760569973',
'creative_id': '96846035',
'creativeId': '96846035',
'ttl': 60,
'currency': 'USD',
'netRevenue': true,
'auctionId': '9c7b70b9-b6ab-4439-9e71-b7b382797c18',
'responseTimestamp': 1537521629657,
'requestTimestamp': 1537521629331,
'bidder': 'appnexus',
'adUnitCode': 'div-gpt-ad-1460505748561-0',
'timeToRespond': 326,
'size': '300x250',
'status': 'rendered',
'eventType': 'bidWon',
'ad': 'some ad',
'adUrl': 'ad url'
};
describe('AdvRed Analytic tests', function () {
beforeEach(function () {
sinon.stub(events, 'getEvents').returns([]);
});
afterEach(function () {
advRedAnalytics.disableAnalytics();
events.getEvents.restore();
});
it('support custom endpoint', function () {
const custom_endpoint = 'custom url';
advRedAnalytics.enableAnalytics({
provider: 'advRed',
options: {
url: custom_endpoint,
publisherId: '1234567890'
}
});
expect(advRedAnalytics.getOptions().url).to.equal(custom_endpoint);
});
it('bid won event', function() {
const publisherId = '1234567890';
advRedAnalytics.enableAnalytics({
provider: 'advRed',
options: {
publisherId: publisherId
}
});
events.emit(EVENTS.BID_WON, bidWonEvent);
advRedAnalytics.sendEvents();
expect(server.requests.length).to.equal(1);
expect(server.requests[0].url).to.equal('https://api.adv.red/api/event');
const message = JSON.parse(server.requests[0].requestBody);
expect(message.pwId).to.exist;
expect(message.publisherId).to.equal(publisherId);
expect(message.events.length).to.equal(1);
expect(message.events[0].eventType).to.equal('bidWon');
expect(message.events[0].ad).to.be.undefined;
expect(message.events[0].adUrl).to.be.undefined;
});
it('track event', function () {
sinon.spy(advRedAnalytics, 'track');
advRedAnalytics.enableAnalytics({
provider: 'advRed',
options: {
publisherId: '1234567890'
}
});
expectEvents().to.beTrackedBy(advRedAnalytics.track);
});
});
describe('pageUrl detection', function () {
afterEach(function () {
advRedAnalytics.disableAnalytics()
});
it('check pageUrl property', function () {
advRedAnalytics.enableAnalytics({
provider: 'advRed',
options: {
publisherId: '1234567890'
}
});
const message = JSON.parse(server.requests[0].requestBody);
expect(message.pageUrl).to.equal(window.top.location.href);
});
});
});