@@ -82,10 +82,7 @@ func TestSourcesAsTarStream(t *testing.T) {
8282}
8383
8484func Test_createPipelinePersistentVolumeClaim (t * testing.T ) {
85- type mockCreateType func (ctx context.Context , name , namespaceOverride string , labels map [string ]string , annotations map [string ]string , accessMode corev1.PersistentVolumeAccessMode , resourceRequest resource.Quantity , storageClass string ) (err error )
86- type mockGetType func (ctx context.Context , name , namespaceOverride string ) (* corev1.PersistentVolumeClaim , error )
87- type mockDeleteType func (ctx context.Context , name , namespaceOverride string ) error
88- type mockWaitType func (ctx context.Context , name , namespaceOverride string ) error
85+ type mockType func (ctx context.Context , name , namespaceOverride string , labels map [string ]string , annotations map [string ]string , accessMode corev1.PersistentVolumeAccessMode , resourceRequest resource.Quantity , storageClass string ) (err error )
8986
9087 type args struct {
9188 ctx context.Context
@@ -95,13 +92,10 @@ func Test_createPipelinePersistentVolumeClaim(t *testing.T) {
9592 size string
9693 }
9794 tests := []struct {
98- name string
99- args args
100- mockCreate mockCreateType
101- mockGet mockGetType
102- mockDelete mockDeleteType
103- mockWait mockWaitType
104- wantErr bool
95+ name string
96+ args args
97+ mock mockType
98+ wantErr bool
10599 }{
106100 {
107101 name : "returns error if pvc creation failed" ,
@@ -112,102 +106,46 @@ func Test_createPipelinePersistentVolumeClaim(t *testing.T) {
112106 labels : nil ,
113107 size : DefaultPersistentVolumeClaimSize .String (),
114108 },
115- mockGet : func (ctx context.Context , name , namespaceOverride string ) (* corev1.PersistentVolumeClaim , error ) {
116- return nil , & apiErrors.StatusError {ErrStatus : metav1.Status {Reason : metav1 .StatusReasonNotFound }}
117- },
118- mockCreate : func (ctx context.Context , name , namespaceOverride string , labels map [string ]string , annotations map [string ]string , accessMode corev1.PersistentVolumeAccessMode , resourceRequest resource.Quantity , storageClass string ) (err error ) {
109+ mock : func (ctx context.Context , name , namespaceOverride string , labels map [string ]string , annotations map [string ]string , accessMode corev1.PersistentVolumeAccessMode , resourceRequest resource.Quantity , storageClass string ) (err error ) {
119110 return errors .New ("creation of pvc failed" )
120111 },
121112 wantErr : true ,
122113 },
123114 {
124- name : "deletes and recreates if pvc already exists" ,
115+ name : "returns nil if pvc already exists" ,
125116 args : args {
126117 ctx : t .Context (),
127118 f : fn.Function {},
128119 namespace : "test-ns" ,
129120 labels : nil ,
130121 size : DefaultPersistentVolumeClaimSize .String (),
131122 },
132- mockGet : func (ctx context.Context , name , namespaceOverride string ) (* corev1.PersistentVolumeClaim , error ) {
133- return & corev1.PersistentVolumeClaim {}, nil
134- },
135- mockDelete : func (ctx context.Context , name , namespaceOverride string ) error {
136- return nil
137- },
138- mockWait : func (ctx context.Context , name , namespaceOverride string ) error {
139- return nil
140- },
141- mockCreate : func (ctx context.Context , name , namespaceOverride string , labels map [string ]string , annotations map [string ]string , accessMode corev1.PersistentVolumeAccessMode , resourceRequest resource.Quantity , storageClass string ) (err error ) {
142- return nil
123+ mock : func (ctx context.Context , name , namespaceOverride string , labels map [string ]string , annotations map [string ]string , accessMode corev1.PersistentVolumeAccessMode , resourceRequest resource.Quantity , storageClass string ) (err error ) {
124+ return & apiErrors.StatusError {ErrStatus : metav1.Status {Reason : metav1 .StatusReasonAlreadyExists }}
143125 },
144126 wantErr : false ,
145127 },
146128 {
147- name : "returns error if deletion fails" ,
148- args : args {
149- ctx : t .Context (),
150- f : fn.Function {},
151- namespace : "test-ns" ,
152- labels : nil ,
153- size : DefaultPersistentVolumeClaimSize .String (),
154- },
155- mockGet : func (ctx context.Context , name , namespaceOverride string ) (* corev1.PersistentVolumeClaim , error ) {
156- return & corev1.PersistentVolumeClaim {}, nil
157- },
158- mockDelete : func (ctx context.Context , name , namespaceOverride string ) error {
159- return errors .New ("deletion failed" )
160- },
161- wantErr : true ,
162- },
163- {
164- name : "returns error if waiting for deletion fails" ,
129+ name : "returns err if namespace not defined and default returns an err" ,
165130 args : args {
166131 ctx : t .Context (),
167132 f : fn.Function {},
168- namespace : "test-ns " ,
133+ namespace : "" ,
169134 labels : nil ,
170135 size : DefaultPersistentVolumeClaimSize .String (),
171136 },
172- mockGet : func (ctx context.Context , name , namespaceOverride string ) (* corev1.PersistentVolumeClaim , error ) {
173- return & corev1.PersistentVolumeClaim {}, nil
174- },
175- mockDelete : func (ctx context.Context , name , namespaceOverride string ) error {
176- return nil
177- },
178- mockWait : func (ctx context.Context , name , namespaceOverride string ) error {
179- return errors .New ("wait for deletion failed" )
137+ mock : func (ctx context.Context , name , namespaceOverride string , labels map [string ]string , annotations map [string ]string , accessMode corev1.PersistentVolumeAccessMode , resourceRequest resource.Quantity , storageClass string ) (err error ) {
138+ return errors .New ("no namespace defined" )
180139 },
181140 wantErr : true ,
182141 },
183142 }
184143 for _ , tt := range tests {
185- t .Run (tt .name , func (t * testing.T ) {
186- // save current functions and restore them at the end
187- oldCreate := createPersistentVolumeClaim
188- oldGet := getPersistentVolumeClaim
189- oldDelete := deletePersistentVolumeClaim
190- oldWait := waitForPVCDeletion
191- defer func () {
192- createPersistentVolumeClaim = oldCreate
193- getPersistentVolumeClaim = oldGet
194- deletePersistentVolumeClaim = oldDelete
195- waitForPVCDeletion = oldWait
196- }()
197-
198- if tt .mockCreate != nil {
199- createPersistentVolumeClaim = tt .mockCreate
200- }
201- if tt .mockGet != nil {
202- getPersistentVolumeClaim = tt .mockGet
203- }
204- if tt .mockDelete != nil {
205- deletePersistentVolumeClaim = tt .mockDelete
206- }
207- if tt .mockWait != nil {
208- waitForPVCDeletion = tt .mockWait
209- }
144+ t .Run (tt .name , func (t * testing.T ) { // save current function and restore it at the end
145+ old := createPersistentVolumeClaim
146+ defer func () { createPersistentVolumeClaim = old }()
210147
148+ createPersistentVolumeClaim = tt .mock
211149 tt .args .f .Build .PVCSize = tt .args .size
212150 if err := createPipelinePersistentVolumeClaim (tt .args .ctx , tt .args .f , tt .args .namespace , tt .args .labels ); (err != nil ) != tt .wantErr {
213151 t .Errorf ("createPipelinePersistentVolumeClaim() error = %v, wantErr %v" , err , tt .wantErr )
0 commit comments