@@ -724,4 +724,58 @@ describe('PulsePoint Adapter Tests', function () {
724
724
expect ( bid . width ) . to . equal ( 728 ) ;
725
725
expect ( bid . height ) . to . equal ( 90 ) ;
726
726
} ) ;
727
+ it ( 'Verify multi-format response' , function ( ) {
728
+ const bidRequests = deepClone ( slotConfigs ) ;
729
+ bidRequests [ 0 ] . mediaTypes [ 'native' ] = {
730
+ title : {
731
+ required : true
732
+ } ,
733
+ image : {
734
+ required : true
735
+ } ,
736
+ sponsoredBy : {
737
+ required : true
738
+ }
739
+ } ;
740
+ bidRequests [ 1 ] . params . video = {
741
+ w : 400 ,
742
+ h : 300 ,
743
+ minduration : 5 ,
744
+ maxduration : 10 ,
745
+ } ;
746
+ const request = spec . buildRequests ( bidRequests , bidderRequest ) ;
747
+ expect ( request ) . to . be . not . null ;
748
+ expect ( request . data ) . to . be . not . null ;
749
+ const ortbRequest = request . data ;
750
+ expect ( ortbRequest . imp ) . to . have . lengthOf ( 2 ) ;
751
+ // adsize on response
752
+ const ortbResponse = {
753
+ seatbid : [ {
754
+ bid : [ {
755
+ impid : ortbRequest . imp [ 0 ] . id ,
756
+ price : 1.25 ,
757
+ adm : 'This is an Ad' ,
758
+ crid : 'Creative#123' ,
759
+ w : 728 ,
760
+ h : 90
761
+ } , {
762
+ impid : ortbRequest . imp [ 1 ] . id ,
763
+ price : 2.5 ,
764
+ adm : '<vast url="http://ad.com/video"></vast>' ,
765
+ crid : 'Creative#234' ,
766
+ w : 728 ,
767
+ h : 90
768
+ } ]
769
+ } ]
770
+ } ;
771
+ // request has both types - banner and native, response is parsed as banner.
772
+ // for impression#2, response is parsed as video
773
+ const bids = spec . interpretResponse ( { body : ortbResponse } , request ) ;
774
+ expect ( bids ) . to . have . lengthOf ( 2 ) ;
775
+ const bid = bids [ 0 ] ;
776
+ expect ( bid . width ) . to . equal ( 728 ) ;
777
+ expect ( bid . height ) . to . equal ( 90 ) ;
778
+ const secondBid = bids [ 1 ] ;
779
+ expect ( secondBid . vastXml ) . to . equal ( '<vast url="http://ad.com/video"></vast>' ) ;
780
+ } ) ;
727
781
} ) ;
0 commit comments