@@ -220,6 +220,56 @@ func TestGitRepositoryReconciler_Reconcile(t *testing.T) {
220
220
testSuspendedObjectDeleteWithArtifact (ctx , g , obj )
221
221
}
222
222
223
+ func TestGitRepositoryReconciler_reconcileSource_emptyRepository (t * testing.T ) {
224
+ g := NewWithT (t )
225
+
226
+ server , err := gittestserver .NewTempGitServer ()
227
+ g .Expect (err ).NotTo (HaveOccurred ())
228
+ defer os .RemoveAll (server .Root ())
229
+ server .AutoCreate ()
230
+ g .Expect (server .StartHTTP ()).To (Succeed ())
231
+ defer server .StopHTTP ()
232
+
233
+ obj := & sourcev1.GitRepository {
234
+ ObjectMeta : metav1.ObjectMeta {
235
+ GenerateName : "empty-" ,
236
+ Generation : 1 ,
237
+ },
238
+ Spec : sourcev1.GitRepositorySpec {
239
+ Interval : metav1.Duration {Duration : interval },
240
+ Timeout : & metav1.Duration {Duration : timeout },
241
+ URL : server .HTTPAddress () + "/test.git" ,
242
+ },
243
+ }
244
+
245
+ builder := fakeclient .NewClientBuilder ().WithScheme (testEnv .GetScheme ())
246
+
247
+ r := & GitRepositoryReconciler {
248
+ Client : builder .Build (),
249
+ EventRecorder : record .NewFakeRecorder (32 ),
250
+ Storage : testStorage ,
251
+ patchOptions : getPatchOptions (gitRepositoryReadyCondition .Owned , "sc" ),
252
+ }
253
+
254
+ g .Expect (r .Client .Create (context .TODO (), obj )).ToNot (HaveOccurred ())
255
+ defer func () {
256
+ g .Expect (r .Client .Delete (context .TODO (), obj )).ToNot (HaveOccurred ())
257
+ }()
258
+
259
+ var commit git.Commit
260
+ var includes artifactSet
261
+ sp := patch .NewSerialPatcher (obj , r .Client )
262
+
263
+ got , err := r .reconcileSource (context .TODO (), sp , obj , & commit , & includes , t .TempDir ())
264
+ assertConditions := []metav1.Condition {
265
+ * conditions .TrueCondition (sourcev1 .FetchFailedCondition , "EmptyGitRepository" , "git repository is empty" ),
266
+ }
267
+ g .Expect (obj .Status .Conditions ).To (conditions .MatchConditions (assertConditions ))
268
+ g .Expect (err ).To (HaveOccurred ())
269
+ g .Expect (got ).To (Equal (sreconcile .ResultEmpty ))
270
+ g .Expect (commit ).ToNot (BeNil ())
271
+ }
272
+
223
273
func TestGitRepositoryReconciler_reconcileSource_authStrategy (t * testing.T ) {
224
274
type options struct {
225
275
username string
0 commit comments