@ -314,6 +314,61 @@ func TestLookupModuleRetryError(t *testing.T) {
}
}
func TestLookupModuleNoRetryError ( t * testing . T ) {
// Disable retries
discoveryRetry = 0
defer configureDiscoveryRetry ( )
server := test . RegistryRetryableErrorsServer ( )
defer server . Close ( )
client := NewClient ( test . Disco ( server ) , nil )
src := "example.com/test-versions/name/provider"
modsrc , err := regsrc . ParseModuleSource ( src )
if err != nil {
t . Fatal ( err )
}
resp , err := client . ModuleVersions ( modsrc )
if err == nil {
t . Fatal ( "expected request to fail" , err )
}
if resp != nil {
t . Fatal ( "unexpected response" , * resp )
}
// verify maxRetryErrorHandler handler returned the error
if ! strings . Contains ( err . Error ( ) , "the request failed, please try again later" ) {
t . Fatal ( "unexpected error, got:" , err )
}
}
func TestLookupModuleNetworkError ( t * testing . T ) {
server := test . RegistryRetryableErrorsServer ( )
client := NewClient ( test . Disco ( server ) , nil )
// Shut down the server to simulate network failure
server . Close ( )
src := "example.com/test-versions/name/provider"
modsrc , err := regsrc . ParseModuleSource ( src )
if err != nil {
t . Fatal ( err )
}
resp , err := client . ModuleVersions ( modsrc )
if err == nil {
t . Fatal ( "expected request to fail" , err )
}
if resp != nil {
t . Fatal ( "unexpected response" , * resp )
}
// verify maxRetryErrorHandler handler returned the correct error
if ! strings . Contains ( err . Error ( ) , "the request failed after 2 attempts, please try again later" ) {
t . Fatal ( "unexpected error, got:" , err )
}
}
func TestLookupProviderVersions ( t * testing . T ) {
server := test . Registry ( )
defer server . Close ( )