diff --git a/registry_module.go b/registry_module.go index 93aab9ddb..08923cdf5 100644 --- a/registry_module.go +++ b/registry_module.go @@ -441,16 +441,18 @@ func (o RegistryModuleID) valid() error { if !validStringID(&o.Provider) { return ErrInvalidProvider } - // RegistryName is optional, only validate if specified - if validString((*string)(&o.RegistryName)) { - registryNamesMap := map[RegistryName]RegistryName{PublicRegistry: PublicRegistry, PrivateRegistry: PrivateRegistry} - if _, ok := registryNamesMap[o.RegistryName]; !ok { - return ErrInvalidRegistryName - } - } - if o.RegistryName == PublicRegistry && !validString(&o.Namespace) { - return ErrRequiredNamespace + switch o.RegistryName { + case PublicRegistry: + if !validString(&o.Namespace) { + return ErrRequiredNamespace + } + case PrivateRegistry: + case "": + // no-op: RegistryName is optional + // for all other string + default: + return ErrInvalidRegistryName } return nil diff --git a/registry_module_integration_test.go b/registry_module_integration_test.go index 68c5c5e37..f38922370 100644 --- a/registry_module_integration_test.go +++ b/registry_module_integration_test.go @@ -426,9 +426,11 @@ func TestRegistryModulesRead(t *testing.T) { RegistryName: PrivateRegistry, }) require.NoError(t, err) + require.NotEmpty(t, rm) assert.Equal(t, registryModuleTest.ID, rm.ID) t.Run("permissions are properly decoded", func(t *testing.T) { + require.NotEmpty(t, rm.Permissions) assert.True(t, rm.Permissions.CanDelete) assert.True(t, rm.Permissions.CanResync) assert.True(t, rm.Permissions.CanRetry)