@@ -563,6 +563,7 @@ func TestGitRepositoryReconciler_reconcileArtifact(t *testing.T) {
563
563
tests := []struct {
564
564
name string
565
565
dir string
566
+ includes artifactSet
566
567
beforeFunc func (obj * sourcev1.GitRepository )
567
568
afterFunc func (t * WithT , obj * sourcev1.GitRepository , artifact sourcev1.Artifact )
568
569
want ctrl.Result
@@ -578,6 +579,42 @@ func TestGitRepositoryReconciler_reconcileArtifact(t *testing.T) {
578
579
afterFunc : func (t * WithT , obj * sourcev1.GitRepository , artifact sourcev1.Artifact ) {
579
580
t .Expect (obj .GetArtifact ()).ToNot (BeNil ())
580
581
t .Expect (obj .GetArtifact ().Checksum ).To (Equal ("b1fab897a1a0fb8094ce3ae0e9743a4b72bd7268" ))
582
+ t .Expect (obj .Status .URL ).ToNot (BeEmpty ())
583
+ },
584
+ want : ctrl.Result {RequeueAfter : interval },
585
+ assertConditions : []metav1.Condition {
586
+ * conditions .TrueCondition (meta .ReadyCondition , meta .SucceededReason , "Stored artifact for revision 'main/revision'" ),
587
+ },
588
+ },
589
+ {
590
+ name : "Archiving artifact to storage with includes makes Ready=True" ,
591
+ dir : "testdata/git/repository" ,
592
+ includes : artifactSet {& sourcev1.Artifact {Revision : "main/revision" }},
593
+ beforeFunc : func (obj * sourcev1.GitRepository ) {
594
+ obj .Spec .Interval = metav1.Duration {Duration : interval }
595
+ },
596
+ afterFunc : func (t * WithT , obj * sourcev1.GitRepository , artifact sourcev1.Artifact ) {
597
+ t .Expect (obj .GetArtifact ()).ToNot (BeNil ())
598
+ t .Expect (obj .GetArtifact ().Checksum ).To (Equal ("b1fab897a1a0fb8094ce3ae0e9743a4b72bd7268" ))
599
+ t .Expect (obj .Status .IncludedArtifacts ).ToNot (BeEmpty ())
600
+ t .Expect (obj .Status .URL ).ToNot (BeEmpty ())
601
+ },
602
+ want : ctrl.Result {RequeueAfter : interval },
603
+ assertConditions : []metav1.Condition {
604
+ * conditions .TrueCondition (meta .ReadyCondition , meta .SucceededReason , "Stored artifact for revision 'main/revision'" ),
605
+ },
606
+ },
607
+ {
608
+ name : "Up-to-date artifact should not update status" ,
609
+ dir : "testdata/git/repository" ,
610
+ includes : artifactSet {& sourcev1.Artifact {Revision : "main/revision" }},
611
+ beforeFunc : func (obj * sourcev1.GitRepository ) {
612
+ obj .Spec .Interval = metav1.Duration {Duration : interval }
613
+ obj .Status .Artifact = & sourcev1.Artifact {Revision : "main/revision" }
614
+ obj .Status .IncludedArtifacts = []* sourcev1.Artifact {{Revision : "main/revision" }}
615
+ },
616
+ afterFunc : func (t * WithT , obj * sourcev1.GitRepository , artifact sourcev1.Artifact ) {
617
+ t .Expect (obj .Status .URL ).To (BeEmpty ())
581
618
},
582
619
want : ctrl.Result {RequeueAfter : interval },
583
620
assertConditions : []metav1.Condition {
@@ -600,6 +637,16 @@ func TestGitRepositoryReconciler_reconcileArtifact(t *testing.T) {
600
637
* conditions .TrueCondition (meta .ReadyCondition , meta .SucceededReason , "Stored artifact for revision 'main/revision'" ),
601
638
},
602
639
},
640
+ {
641
+ name : "Target path does not exists" ,
642
+ dir : "testdata/git/foo" ,
643
+ wantErr : true ,
644
+ },
645
+ {
646
+ name : "Target path is not a directory" ,
647
+ dir : "testdata/git/repository/foo.txt" ,
648
+ wantErr : true ,
649
+ },
603
650
}
604
651
605
652
for _ , tt := range tests {
@@ -624,7 +671,7 @@ func TestGitRepositoryReconciler_reconcileArtifact(t *testing.T) {
624
671
625
672
artifact := testStorage .NewArtifactFor (obj .Kind , obj , "main/revision" , "checksum.tar.gz" )
626
673
627
- got , err := r .reconcileArtifact (ctx , obj , artifact , nil , tt .dir )
674
+ got , err := r .reconcileArtifact (ctx , obj , artifact , tt . includes , tt .dir )
628
675
g .Expect (obj .Status .Conditions ).To (conditions .MatchConditions (tt .assertConditions ))
629
676
g .Expect (err != nil ).To (Equal (tt .wantErr ))
630
677
g .Expect (got ).To (Equal (tt .want ))
0 commit comments