@@ -52,9 +52,12 @@ describes.realWin('PropensityServer', {}, env => {
52
52
expect ( queries ) . to . not . be . null ;
53
53
expect ( 'cookie' in queries ) . to . be . true ;
54
54
expect ( queries [ 'cookie' ] ) . to . equal ( 'noConsent' ) ;
55
+ expect ( 'v' in queries ) . to . be . true ;
56
+ expect ( parseInt ( queries [ 'v' ] , 10 ) ) . to . equal (
57
+ propensityServer . version_ ) ;
55
58
expect ( 'states' in queries ) . to . be . true ;
56
59
const userState = 'pub1:' + queries [ 'states' ] . split ( ':' ) [ 1 ] ;
57
- expect ( userState ) . to . equal ( 'pub1:yes ' ) ;
60
+ expect ( userState ) . to . equal ( 'pub1:subscriber ' ) ;
58
61
const products = decodeURIComponent ( queries [ 'states' ] . split ( ':' ) [ 2 ] ) ;
59
62
expect ( products ) . to . equal ( JSON . stringify ( entitlements ) ) ;
60
63
expect ( capturedRequest . credentials ) . to . equal ( 'include' ) ;
@@ -86,6 +89,8 @@ describes.realWin('PropensityServer', {}, env => {
86
89
expect ( queries ) . to . not . be . null ;
87
90
expect ( 'cookie' in queries ) . to . be . true ;
88
91
expect ( queries [ 'cookie' ] ) . to . equal ( 'noConsent' ) ;
92
+ expect ( 'v' in queries ) . to . be . true ;
93
+ expect ( parseInt ( queries [ 'v' ] , 10 ) ) . to . equal ( propensityServer . version_ ) ;
89
94
expect ( 'events' in queries ) . to . be . true ;
90
95
const events = decodeURIComponent ( queries [ 'events' ] . split ( ':' ) [ 2 ] ) ;
91
96
expect ( events ) . to . equal ( JSON . stringify ( eventParam ) ) ;
@@ -115,6 +120,9 @@ describes.realWin('PropensityServer', {}, env => {
115
120
expect ( queries ) . to . not . be . null ;
116
121
expect ( 'cookie' in queries ) . to . be . true ;
117
122
expect ( queries [ 'cookie' ] ) . to . equal ( 'noConsent' ) ;
123
+ expect ( 'v' in queries ) . to . be . true ;
124
+ expect ( parseInt ( queries [ 'v' ] , 10 ) ) . to . equal (
125
+ propensityServer . version_ ) ;
118
126
expect ( 'products' in queries ) . to . be . true ;
119
127
expect ( queries [ 'products' ] ) . to . equal ( 'pub1' ) ;
120
128
expect ( 'type' in queries ) . to . be . true ;
@@ -126,19 +134,95 @@ describes.realWin('PropensityServer', {}, env => {
126
134
} ) ;
127
135
128
136
it ( 'should test get propensity' , ( ) => {
129
- const score = { 'values' : [ 42 ] } ;
137
+ const propensityResponse = {
138
+ 'header' : { 'ok' : true } ,
139
+ 'scores' : [
140
+ {
141
+ 'product' : 'pub1' ,
142
+ 'score' : 90 ,
143
+ } ,
144
+ {
145
+ 'product' : 'pub1:premium' ,
146
+ 'error_message' : 'not available' ,
147
+ } ,
148
+ ] ,
149
+ } ;
150
+ const response = new Response ( ) ;
151
+ const mockResponse = sandbox . mock ( response ) ;
152
+ mockResponse . expects ( 'json' ) . returns (
153
+ Promise . resolve ( propensityResponse ) ) . once ( ) ;
154
+ sandbox . stub ( Xhr . prototype , 'fetch' ,
155
+ ( ) => {
156
+ return Promise . resolve ( response ) ;
157
+ } ) ;
158
+ return propensityServer . getPropensity ( '/hello' ,
159
+ PropensityApi . PropensityType . GENERAL ) . then ( response => {
160
+ expect ( response ) . to . not . be . null ;
161
+ const header = response [ 'header' ] ;
162
+ expect ( header ) . to . not . be . null ;
163
+ expect ( header [ 'ok' ] ) . to . be . true ;
164
+ const body = response [ 'body' ] ;
165
+ expect ( body ) . to . not . be . null ;
166
+ expect ( body [ 'result' ] ) . to . equal ( 90 ) ;
167
+ } ) ;
168
+ } ) ;
169
+
170
+ it ( 'should test only get propensity score for pub' , ( ) => {
171
+ const propensityResponse = {
172
+ 'header' : { 'ok' : true } ,
173
+ 'scores' : [
174
+ {
175
+ 'product' : 'pub2' ,
176
+ 'score' : 90 ,
177
+ } ,
178
+ {
179
+ 'product' : 'pub1:premium' ,
180
+ 'error_message' : 'not available' ,
181
+ } ,
182
+ ] ,
183
+ } ;
184
+ const response = new Response ( ) ;
185
+ const mockResponse = sandbox . mock ( response ) ;
186
+ mockResponse . expects ( 'json' ) . returns (
187
+ Promise . resolve ( propensityResponse ) ) . once ( ) ;
188
+ sandbox . stub ( Xhr . prototype , 'fetch' ,
189
+ ( ) => {
190
+ return Promise . resolve ( response ) ;
191
+ } ) ;
192
+ return propensityServer . getPropensity ( '/hello' ,
193
+ PropensityApi . PropensityType . GENERAL ) . then ( response => {
194
+ expect ( response ) . to . not . be . null ;
195
+ const header = response [ 'header' ] ;
196
+ expect ( header ) . to . not . be . null ;
197
+ expect ( header [ 'ok' ] ) . to . be . false ;
198
+ const body = response [ 'body' ] ;
199
+ expect ( body ) . to . not . be . null ;
200
+ expect ( body [ 'result' ] ) . to . equal ( 'No score available for pub1' ) ;
201
+ } ) ;
202
+ } ) ;
203
+
204
+ it ( 'should test no propensity score available' , ( ) => {
205
+ const propensityResponse = {
206
+ 'header' : { 'ok' : false } ,
207
+ 'error' : 'Service not available' ,
208
+ } ;
130
209
const response = new Response ( ) ;
131
210
const mockResponse = sandbox . mock ( response ) ;
132
- mockResponse . expects ( 'json' ) . returns ( Promise . resolve ( score ) ) . once ( ) ;
211
+ mockResponse . expects ( 'json' ) . returns (
212
+ Promise . resolve ( propensityResponse ) ) . once ( ) ;
133
213
sandbox . stub ( Xhr . prototype , 'fetch' ,
134
214
( ) => {
135
215
return Promise . resolve ( response ) ;
136
216
} ) ;
137
217
return propensityServer . getPropensity ( '/hello' ,
138
218
PropensityApi . PropensityType . GENERAL ) . then ( response => {
139
219
expect ( response ) . to . not . be . null ;
140
- expect ( 'values' in response ) . to . be . true ;
141
- expect ( response . values [ 0 ] ) . to . equal ( 42 ) ;
220
+ const header = response [ 'header' ] ;
221
+ expect ( header ) . to . not . be . null ;
222
+ expect ( header [ 'ok' ] ) . to . be . false ;
223
+ const body = response [ 'body' ] ;
224
+ expect ( body ) . to . not . be . null ;
225
+ expect ( body [ 'result' ] ) . to . equal ( 'Service not available' ) ;
142
226
} ) ;
143
227
} ) ;
144
228
@@ -164,6 +248,9 @@ describes.realWin('PropensityServer', {}, env => {
164
248
expect ( queries ) . to . not . be . null ;
165
249
expect ( 'cookie' in queries ) . to . be . true ;
166
250
expect ( queries [ 'cookie' ] ) . to . equal ( 'aaaaaa' ) ;
251
+ expect ( 'v' in queries ) . to . be . true ;
252
+ expect ( parseInt ( queries [ 'v' ] , 10 ) ) . to . equal (
253
+ propensityServer . version_ ) ;
167
254
expect ( 'products' in queries ) . to . be . true ;
168
255
expect ( queries [ 'products' ] ) . to . equal ( 'pub1' ) ;
169
256
expect ( 'type' in queries ) . to . be . true ;
@@ -197,6 +284,9 @@ describes.realWin('PropensityServer', {}, env => {
197
284
const queries = parseQueryString ( queryString ) ;
198
285
expect ( queries ) . to . not . be . null ;
199
286
expect ( 'cookie' in queries ) . to . be . false ;
287
+ expect ( 'v' in queries ) . to . be . true ;
288
+ expect ( parseInt ( queries [ 'v' ] , 10 ) ) . to . equal (
289
+ propensityServer . version_ ) ;
200
290
expect ( 'products' in queries ) . to . be . true ;
201
291
expect ( queries [ 'products' ] ) . to . equal ( 'pub1' ) ;
202
292
expect ( 'type' in queries ) . to . be . true ;
0 commit comments