@@ -453,34 +453,38 @@ func TestErrorInSourceToken(t *testing.T) {
453453}
454454
455455func TestErrorInHTTPRequest (t * testing.T ) {
456- client , err := NewOauth2TokenExchangeCredentials (
457- WithTokenEndpoint ("http://invalid_host:42/exchange" ),
458- WithJWTSubjectToken (
459- WithRSAPrivateKeyPEMContent ([]byte (testRSAPrivateKeyContent )),
460- WithKeyID ("key_id" ),
461- WithSigningMethod (jwt .SigningMethodRS256 ),
462- WithIssuer ("test_issuer" ),
463- WithAudience ("test_audience" ),
464- ),
465- WithJWTActorToken (
466- WithRSAPrivateKeyPEMContent ([]byte (testRSAPrivateKeyContent )),
467- WithKeyID ("key_id" ),
468- WithSigningMethod (jwt .SigningMethodRS256 ),
469- WithIssuer ("test_issuer" ),
470- ),
471- WithScope ("1" , "2" , "3" ),
472- WithSourceInfo ("TestErrorInHTTPRequest" ),
473- WithSyncExchangeTimeout (time .Second * 3 ),
474- )
475- require .NoError (t , err )
456+ xtest .TestManyTimes (t , func (t testing.TB ) {
457+ client , err := NewOauth2TokenExchangeCredentials (
458+ WithTokenEndpoint ("http://invalid_host:42/exchange" ),
459+ WithJWTSubjectToken (
460+ WithRSAPrivateKeyPEMContent ([]byte (testRSAPrivateKeyContent )),
461+ WithKeyID ("key_id" ),
462+ WithSigningMethod (jwt .SigningMethodRS256 ),
463+ WithIssuer ("test_issuer" ),
464+ WithAudience ("test_audience" ),
465+ ),
466+ WithJWTActorToken (
467+ WithRSAPrivateKeyPEMContent ([]byte (testRSAPrivateKeyContent )),
468+ WithKeyID ("key_id" ),
469+ WithSigningMethod (jwt .SigningMethodRS256 ),
470+ WithIssuer ("test_issuer" ),
471+ ),
472+ WithScope ("1" , "2" , "3" ),
473+ WithSourceInfo ("TestErrorInHTTPRequest" ),
474+ WithSyncExchangeTimeout (time .Second * 3 ),
475+ )
476+ require .NoError (t , err )
476477
477- token , err := client .Token (context .Background ())
478- require .ErrorIs (t , err , errCouldNotExchangeToken )
479- require .Equal (t , "" , token )
478+ token , err := client .Token (context .Background ())
479+ if ! errors .Is (err , context .DeadlineExceeded ) {
480+ require .ErrorIs (t , err , errCouldNotExchangeToken )
481+ }
482+ require .Equal (t , "" , token )
480483
481- // check format:
482- formatted := fmt .Sprint (client )
483- require .Equal (t , `OAuth2TokenExchange{Endpoint:"http://invalid_host:42/exchange",GrantType:urn:ietf:params:oauth:grant-type:token-exchange,Resource:,Audience:[],Scope:[1 2 3],RequestedTokenType:urn:ietf:params:oauth:token-type:access_token,SubjectToken:JWTTokenSource{Method:RS256,KeyID:key_id,Issuer:"test_issuer",Subject:"",Audience:[test_audience],ID:,TokenTTL:1h0m0s},ActorToken:JWTTokenSource{Method:RS256,KeyID:key_id,Issuer:"test_issuer",Subject:"",Audience:[],ID:,TokenTTL:1h0m0s},From:"TestErrorInHTTPRequest"}` , formatted ) //nolint:lll
484+ // check format:
485+ formatted := fmt .Sprint (client )
486+ require .Equal (t , `OAuth2TokenExchange{Endpoint:"http://invalid_host:42/exchange",GrantType:urn:ietf:params:oauth:grant-type:token-exchange,Resource:,Audience:[],Scope:[1 2 3],RequestedTokenType:urn:ietf:params:oauth:token-type:access_token,SubjectToken:JWTTokenSource{Method:RS256,KeyID:key_id,Issuer:"test_issuer",Subject:"",Audience:[test_audience],ID:,TokenTTL:1h0m0s},ActorToken:JWTTokenSource{Method:RS256,KeyID:key_id,Issuer:"test_issuer",Subject:"",Audience:[],ID:,TokenTTL:1h0m0s},From:"TestErrorInHTTPRequest"}` , formatted ) //nolint:lll
487+ }, xtest .StopAfter (15 * time .Second ))
484488}
485489
486490func TestJWTTokenSource (t * testing.T ) {
0 commit comments