@@ -199,6 +199,49 @@ func TestRegistryCheck(t *testing.T) {
199199 Allowed : true ,
200200 },
201201 },
202+ {
203+ name : "image registry with invalid URL" ,
204+ field : "cluster.spec.topology.variables[.name=clusterConfig].value.imageRegistries[0]" ,
205+ imageRegistry : & carenv1.ImageRegistry {
206+ URL : "invalid-url" ,
207+ Credentials : & carenv1.RegistryCredentials {
208+ SecretRef : & carenv1.LocalObjectReference {
209+ Name : "test-secret" ,
210+ },
211+ },
212+ },
213+ kclient : & mockK8sClient {
214+ getSecretFunc : func (ctx context.Context ,
215+ key types.NamespacedName ,
216+ obj ctrlclient.Object ,
217+ opts ... ctrlclient.GetOption ,
218+ ) error {
219+ secret := obj .(* corev1.Secret )
220+ secret .Data = map [string ][]byte {
221+ "username" : []byte ("testuser" ),
222+ "password" : []byte ("testpass" ),
223+ "ca.crt" : []byte ("test-ca-cert" ),
224+ }
225+ return nil
226+ },
227+ },
228+ mockRegClientPingerFactory : func (... regclient.Opt ) regClientPinger {
229+ return & mockRegClient {
230+ pingFunc : func (ref.Ref ) error { return nil },
231+ }
232+ },
233+ want : preflight.CheckResult {
234+ Allowed : false ,
235+ Error : false ,
236+ Causes : []preflight.Cause {
237+ {
238+ Message : fmt .Sprintf ("failed to parse registry url %s with error: " +
239+ "parse \" invalid-url\" : invalid URI for request" , "invalid-url" ),
240+ Field : "cluster.spec.topology.variables[.name=clusterConfig].value.imageRegistries[0].url" ,
241+ },
242+ },
243+ },
244+ },
202245 }
203246
204247 for _ , tc := range testCases {
0 commit comments