@@ -52,17 +52,26 @@ describe('RTBHouseAdapter', () => {
52
52
'sizes' : [ [ 300 , 250 ] , [ 300 , 600 ] ] ,
53
53
'bidId' : '30b31c1838de1e' ,
54
54
'bidderRequestId' : '22edbae2733bf6' ,
55
- 'auctionId' : '1d1a030790a475'
55
+ 'auctionId' : '1d1a030790a475' ,
56
+ 'transactionId' : 'example-transaction-id' ,
56
57
}
57
58
] ;
59
+ const bidderRequest = {
60
+ 'refererInfo' : {
61
+ 'numIframes' : 0 ,
62
+ 'reachedTop' : true ,
63
+ 'referer' : 'http://example.com' ,
64
+ 'stack' : [ 'http://example.com' ]
65
+ }
66
+ } ;
58
67
59
68
it ( 'should build test param into the request' , ( ) => {
60
- let builtTestRequest = spec . buildRequests ( bidRequests ) . data ;
69
+ let builtTestRequest = spec . buildRequests ( bidRequests , bidderRequest ) . data ;
61
70
expect ( JSON . parse ( builtTestRequest ) . test ) . to . equal ( 1 ) ;
62
71
} ) ;
63
72
64
73
it ( 'should build valid OpenRTB banner object' , ( ) => {
65
- const request = JSON . parse ( spec . buildRequests ( ( bidRequests ) ) . data ) ;
74
+ const request = JSON . parse ( spec . buildRequests ( bidRequests , bidderRequest ) . data ) ;
66
75
const imp = request . imp [ 0 ] ;
67
76
expect ( imp . banner ) . to . deep . equal ( {
68
77
w : 300 ,
@@ -80,15 +89,15 @@ describe('RTBHouseAdapter', () => {
80
89
it ( 'sends bid request to ENDPOINT via POST' , function ( ) {
81
90
let bidRequest = Object . assign ( [ ] , bidRequests ) ;
82
91
delete bidRequest [ 0 ] . params . test ;
83
- const request = spec . buildRequests ( bidRequest ) ;
92
+ const request = spec . buildRequests ( bidRequest , bidderRequest ) ;
84
93
expect ( request . url ) . to . equal ( 'https://prebid-eu.creativecdn.com/bidder/prebid/bids' ) ;
85
94
expect ( request . method ) . to . equal ( 'POST' ) ;
86
95
} ) ;
87
96
88
97
it ( 'should not populate GDPR if for non-EEA users' , function ( ) {
89
98
let bidRequest = Object . assign ( [ ] , bidRequests ) ;
90
99
delete bidRequest [ 0 ] . params . test ;
91
- const request = spec . buildRequests ( bidRequest ) ;
100
+ const request = spec . buildRequests ( bidRequest , bidderRequest ) ;
92
101
let data = JSON . parse ( request . data ) ;
93
102
expect ( data ) . to . not . have . property ( 'regs' ) ;
94
103
expect ( data ) . to . not . have . property ( 'user' ) ;
@@ -97,12 +106,15 @@ describe('RTBHouseAdapter', () => {
97
106
it ( 'should populate GDPR and consent string if available for EEA users' , function ( ) {
98
107
let bidRequest = Object . assign ( [ ] , bidRequests ) ;
99
108
delete bidRequest [ 0 ] . params . test ;
100
- const request = spec . buildRequests ( bidRequest , {
101
- gdprConsent : {
102
- gdprApplies : true ,
103
- consentString : 'BOJ8RZsOJ8RZsABAB8AAAAAZ+A=='
104
- }
105
- } ) ;
109
+ const request = spec . buildRequests (
110
+ bidRequest ,
111
+ Object . assign ( { } , bidderRequest , {
112
+ gdprConsent : {
113
+ gdprApplies : true ,
114
+ consentString : 'BOJ8RZsOJ8RZsABAB8AAAAAZ+A=='
115
+ }
116
+ } )
117
+ ) ;
106
118
let data = JSON . parse ( request . data ) ;
107
119
expect ( data . regs . ext . gdpr ) . to . equal ( 1 ) ;
108
120
expect ( data . user . ext . consent ) . to . equal ( 'BOJ8RZsOJ8RZsABAB8AAAAAZ-A' ) ;
@@ -111,19 +123,41 @@ describe('RTBHouseAdapter', () => {
111
123
it ( 'should populate GDPR and empty consent string if available for EEA users without consent string but with consent' , function ( ) {
112
124
let bidRequest = Object . assign ( [ ] , bidRequests ) ;
113
125
delete bidRequest [ 0 ] . params . test ;
114
- const request = spec . buildRequests ( bidRequest , { gdprConsent : { gdprApplies : true } } ) ;
126
+ const request = spec . buildRequests (
127
+ bidRequest ,
128
+ Object . assign ( { } , bidderRequest , {
129
+ gdprConsent : {
130
+ gdprApplies : true
131
+ }
132
+ } )
133
+ ) ;
115
134
let data = JSON . parse ( request . data ) ;
116
135
expect ( data . regs . ext . gdpr ) . to . equal ( 1 ) ;
117
136
expect ( data . user . ext . consent ) . to . equal ( '' ) ;
118
137
} ) ;
119
138
120
139
it ( 'should include banner imp in request' , ( ) => {
121
140
const bidRequest = Object . assign ( [ ] , bidRequests ) ;
122
- const request = spec . buildRequests ( bidRequest ) ;
141
+ const request = spec . buildRequests ( bidRequest , bidderRequest ) ;
123
142
const data = JSON . parse ( request . data ) ;
124
143
expect ( data . imp [ 0 ] . banner ) . to . not . be . empty ;
125
144
} ) ;
126
145
146
+ it ( 'should include source.tid in request' , ( ) => {
147
+ const bidRequest = Object . assign ( [ ] , bidRequests ) ;
148
+ const request = spec . buildRequests ( bidRequest , bidderRequest ) ;
149
+ const data = JSON . parse ( request . data ) ;
150
+ expect ( data . source . tid ) . to . equal ( 'example-transaction-id' ) ;
151
+ } ) ;
152
+
153
+ it ( 'should include bidfloor in request if available' , ( ) => {
154
+ const bidRequest = Object . assign ( [ ] , bidRequests ) ;
155
+ bidRequest [ 0 ] . params . bidfloor = 0.01 ;
156
+ const request = spec . buildRequests ( bidRequest , bidderRequest ) ;
157
+ const data = JSON . parse ( request . data ) ;
158
+ expect ( data . imp [ 0 ] . bidfloor ) . to . equal ( 0.01 )
159
+ } ) ;
160
+
127
161
describe ( 'native imp' , ( ) => {
128
162
function basicRequest ( extension ) {
129
163
return Object . assign ( {
@@ -139,7 +173,8 @@ describe('RTBHouseAdapter', () => {
139
173
}
140
174
141
175
function buildImp ( request ) {
142
- return JSON . parse ( spec . buildRequests ( [ request ] ) . data ) . imp [ 0 ] ;
176
+ const resultRequest = spec . buildRequests ( [ request ] , bidderRequest ) ;
177
+ return JSON . parse ( resultRequest . data ) . imp [ 0 ] ;
143
178
}
144
179
145
180
it ( 'should extract native params when single mediaType' , ( ) => {
0 commit comments