Skip to content

Commit 995cab5

Browse files
committed
Revert "Disable "empty repository" Git test"
This reverts commit 60571c0. Signed-off-by: Hidde Beydals <[email protected]>
1 parent d4e8d54 commit 995cab5

File tree

1 file changed

+51
-56
lines changed

1 file changed

+51
-56
lines changed

internal/controller/gitrepository_controller_test.go

Lines changed: 51 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -219,62 +219,57 @@ func TestGitRepositoryReconciler_Reconcile(t *testing.T) {
219219
testSuspendedObjectDeleteWithArtifact(ctx, g, obj)
220220
}
221221

222-
// TODO(hidde): Re-enable this test.
223-
// It is currently disabled because it fails on machines with Git version
224-
// >=v2.41.0 due to changes to commands used by the test server. Causing
225-
// the test server to return an error when cloning an empty repository,
226-
// instead of yielding an empty object.
227-
//func TestGitRepositoryReconciler_reconcileSource_emptyRepository(t *testing.T) {
228-
// g := NewWithT(t)
229-
//
230-
// server, err := gittestserver.NewTempGitServer()
231-
// g.Expect(err).NotTo(HaveOccurred())
232-
// defer os.RemoveAll(server.Root())
233-
// server.AutoCreate()
234-
// g.Expect(server.StartHTTP()).To(Succeed())
235-
// defer server.StopHTTP()
236-
//
237-
// obj := &sourcev1.GitRepository{
238-
// ObjectMeta: metav1.ObjectMeta{
239-
// GenerateName: "empty-",
240-
// Generation: 1,
241-
// },
242-
// Spec: sourcev1.GitRepositorySpec{
243-
// Interval: metav1.Duration{Duration: interval},
244-
// Timeout: &metav1.Duration{Duration: timeout},
245-
// URL: server.HTTPAddress() + "/test.git",
246-
// },
247-
// }
248-
//
249-
// clientBuilder := fakeclient.NewClientBuilder().
250-
// WithScheme(testEnv.GetScheme()).
251-
// WithStatusSubresource(&sourcev1.GitRepository{})
252-
//
253-
// r := &GitRepositoryReconciler{
254-
// Client: clientBuilder.Build(),
255-
// EventRecorder: record.NewFakeRecorder(32),
256-
// Storage: testStorage,
257-
// patchOptions: getPatchOptions(gitRepositoryReadyCondition.Owned, "sc"),
258-
// }
259-
//
260-
// g.Expect(r.Client.Create(context.TODO(), obj)).ToNot(HaveOccurred())
261-
// defer func() {
262-
// g.Expect(r.Client.Delete(context.TODO(), obj)).ToNot(HaveOccurred())
263-
// }()
264-
//
265-
// var commit git.Commit
266-
// var includes artifactSet
267-
// sp := patch.NewSerialPatcher(obj, r.Client)
268-
//
269-
// got, err := r.reconcileSource(context.TODO(), sp, obj, &commit, &includes, t.TempDir())
270-
// assertConditions := []metav1.Condition{
271-
// *conditions.TrueCondition(sourcev1.FetchFailedCondition, "EmptyGitRepository", "git repository is empty"),
272-
// }
273-
// g.Expect(obj.Status.Conditions).To(conditions.MatchConditions(assertConditions))
274-
// g.Expect(err).To(HaveOccurred())
275-
// g.Expect(got).To(Equal(sreconcile.ResultEmpty))
276-
// g.Expect(commit).ToNot(BeNil())
277-
//}
222+
func TestGitRepositoryReconciler_reconcileSource_emptyRepository(t *testing.T) {
223+
g := NewWithT(t)
224+
225+
server, err := gittestserver.NewTempGitServer()
226+
g.Expect(err).NotTo(HaveOccurred())
227+
defer os.RemoveAll(server.Root())
228+
server.AutoCreate()
229+
g.Expect(server.StartHTTP()).To(Succeed())
230+
defer server.StopHTTP()
231+
232+
obj := &sourcev1.GitRepository{
233+
ObjectMeta: metav1.ObjectMeta{
234+
GenerateName: "empty-",
235+
Generation: 1,
236+
},
237+
Spec: sourcev1.GitRepositorySpec{
238+
Interval: metav1.Duration{Duration: interval},
239+
Timeout: &metav1.Duration{Duration: timeout},
240+
URL: server.HTTPAddress() + "/test.git",
241+
},
242+
}
243+
244+
clientBuilder := fakeclient.NewClientBuilder().
245+
WithScheme(testEnv.GetScheme()).
246+
WithStatusSubresource(&sourcev1.GitRepository{})
247+
248+
r := &GitRepositoryReconciler{
249+
Client: clientBuilder.Build(),
250+
EventRecorder: record.NewFakeRecorder(32),
251+
Storage: testStorage,
252+
patchOptions: getPatchOptions(gitRepositoryReadyCondition.Owned, "sc"),
253+
}
254+
255+
g.Expect(r.Client.Create(context.TODO(), obj)).ToNot(HaveOccurred())
256+
defer func() {
257+
g.Expect(r.Client.Delete(context.TODO(), obj)).ToNot(HaveOccurred())
258+
}()
259+
260+
var commit git.Commit
261+
var includes artifactSet
262+
sp := patch.NewSerialPatcher(obj, r.Client)
263+
264+
got, err := r.reconcileSource(context.TODO(), sp, obj, &commit, &includes, t.TempDir())
265+
assertConditions := []metav1.Condition{
266+
*conditions.TrueCondition(sourcev1.FetchFailedCondition, "EmptyGitRepository", "git repository is empty"),
267+
}
268+
g.Expect(obj.Status.Conditions).To(conditions.MatchConditions(assertConditions))
269+
g.Expect(err).To(HaveOccurred())
270+
g.Expect(got).To(Equal(sreconcile.ResultEmpty))
271+
g.Expect(commit).ToNot(BeNil())
272+
}
278273

279274
func TestGitRepositoryReconciler_reconcileSource_authStrategy(t *testing.T) {
280275
type options struct {

0 commit comments

Comments
 (0)