@@ -3,12 +3,14 @@ package sparteo
33import (
44 "bytes"
55 "encoding/json"
6+ "errors"
67 "testing"
78
89 "github.com/prebid/openrtb/v20/openrtb2"
910 "github.com/prebid/prebid-server/v3/adapters"
1011 "github.com/prebid/prebid-server/v3/adapters/adapterstest"
1112 "github.com/prebid/prebid-server/v3/config"
13+ "github.com/prebid/prebid-server/v3/errortypes"
1214 "github.com/prebid/prebid-server/v3/openrtb_ext"
1315 "github.com/stretchr/testify/assert"
1416 "github.com/stretchr/testify/require"
@@ -515,3 +517,99 @@ func TestMakeRequests_UpdatePublisherExtension_PrefersSiteOverApp(t *testing.T)
515517 assert .False (t , appOk , "app.publisher.ext should not contain networkId when site exists" )
516518 }
517519}
520+
521+ // TestMakeRequests_DomainMissing_WarnsAndUsesUnknown verifies that when no domain can be resolved the domain macro is replaced by unknown
522+ func TestMakeRequests_DomainMissing_WarnsAndUsesUnknown (t * testing.T ) {
523+ endpoint := "https://bid-test.sparteo.com/s2s-auction?network_id={{.NetworkId}}&domain={{.Domain}}"
524+
525+ bidder , err := Builder (openrtb_ext .BidderSparteo , config.Adapter {Endpoint : endpoint }, config.Server {GvlID : 1028 })
526+ require .NoError (t , err )
527+
528+ in := & openrtb2.BidRequest {
529+ ID : "req-domain-missing" ,
530+ Imp : []openrtb2.Imp {
531+ {ID : "imp-1" , Ext : json .RawMessage (`{"bidder":{"networkId":"networkID"}}` )},
532+ },
533+ }
534+
535+ reqs , errs := bidder .MakeRequests (in , & adapters.ExtraRequestInfo {})
536+
537+ require .Len (t , reqs , 1 )
538+ require .Len (t , errs , 1 )
539+
540+ assert .Equal (t ,
541+ "https://bid-test.sparteo.com/s2s-auction?network_id=networkID&domain=unknown" ,
542+ reqs [0 ].Uri ,
543+ )
544+
545+ var badInput * errortypes.BadInput
546+ require .True (t , errors .As (errs [0 ], & badInput ))
547+ assert .Contains (t , badInput .Error (), "Domain not found" )
548+ }
549+
550+ // TestMakeRequests_AppBundle_WithMissingDomain_WarnsAndUsesUnknown verifies that when an app is present with a bundle but without a resolvable domain
551+ func TestMakeRequests_AppBundle_WithMissingDomain_WarnsAndUsesUnknown (t * testing.T ) {
552+ endpoint := "https://bid-test.sparteo.com/s2s-auction?network_id={{.NetworkId}}&domain={{.Domain}}{{if .Bundle}}&bundle={{.Bundle}}{{end}}"
553+
554+ bidder , err := Builder (openrtb_ext .BidderSparteo , config.Adapter {Endpoint : endpoint }, config.Server {GvlID : 1028 })
555+ require .NoError (t , err )
556+
557+ in := & openrtb2.BidRequest {
558+ ID : "req-app-bundle-no-domain" ,
559+ Site : nil ,
560+ App : & openrtb2.App {
561+ Domain : "" ,
562+ Bundle : "com.sparteo.app" ,
563+ Publisher : & openrtb2.Publisher {},
564+ },
565+ Imp : []openrtb2.Imp {
566+ {ID : "imp-1" , Ext : json .RawMessage (`{"bidder":{"networkId":"networkID"}}` )},
567+ },
568+ }
569+
570+ reqs , errs := bidder .MakeRequests (in , & adapters.ExtraRequestInfo {})
571+
572+ require .Len (t , reqs , 1 )
573+ require .Len (t , errs , 1 )
574+
575+ assert .Equal (t ,
576+ "https://bid-test.sparteo.com/s2s-auction?network_id=networkID&domain=unknown&bundle=com.sparteo.app" ,
577+ reqs [0 ].Uri ,
578+ )
579+
580+ var badInput * errortypes.BadInput
581+ require .True (t , errors .As (errs [0 ], & badInput ))
582+ assert .Contains (t , badInput .Error (), "Domain not found" )
583+ }
584+
585+ // TestMakeRequests_SitePageLiteralNull_TreatedAsMissingDomain verifies that a literal "null" value in site.page is treated as an unknown domain.
586+ func TestMakeRequests_SitePageLiteralNull_TreatedAsMissingDomain (t * testing.T ) {
587+ endpoint := "https://bid-test.sparteo.com/s2s-auction?network_id={{.NetworkId}}&domain={{.Domain}}"
588+
589+ bidder , err := Builder (openrtb_ext .BidderSparteo , config.Adapter {Endpoint : endpoint }, config.Server {GvlID : 1028 })
590+ require .NoError (t , err )
591+
592+ in := & openrtb2.BidRequest {
593+ ID : "req-page-null" ,
594+ Site : & openrtb2.Site {
595+ Domain : "" ,
596+ Page : "null" ,
597+ },
598+ Imp : []openrtb2.Imp {
599+ {ID : "imp-1" , Ext : json .RawMessage (`{"bidder":{"networkId":"networkID"}}` )},
600+ },
601+ }
602+
603+ reqs , errs := bidder .MakeRequests (in , & adapters.ExtraRequestInfo {})
604+
605+ require .Len (t , reqs , 1 )
606+ require .Len (t , errs , 1 )
607+ assert .Equal (t ,
608+ "https://bid-test.sparteo.com/s2s-auction?network_id=networkID&domain=unknown" ,
609+ reqs [0 ].Uri ,
610+ )
611+
612+ var badInput * errortypes.BadInput
613+ require .True (t , errors .As (errs [0 ], & badInput ))
614+ assert .Contains (t , badInput .Error (), "Domain not found" )
615+ }
0 commit comments