@@ -21,6 +21,7 @@ import (
2121 "time"
2222
2323 . "github.com/onsi/gomega"
24+ "helm.sh/helm/v4/pkg/action"
2425 helmaction "helm.sh/helm/v4/pkg/action"
2526 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627
@@ -208,4 +209,100 @@ func Test_newInstall(t *testing.T) {
208209 g .Expect (got ).ToNot (BeNil ())
209210 g .Expect (got .ServerSideApply ).To (BeFalse ())
210211 })
212+
213+ t .Run ("post render strategy defaults to combined with Helm4 defaults" , func (t * testing.T ) {
214+ g := NewWithT (t )
215+
216+ // Save and restore UseHelm3Defaults
217+ oldUseHelm3Defaults := UseHelm3Defaults
218+ t .Cleanup (func () { UseHelm3Defaults = oldUseHelm3Defaults })
219+ UseHelm3Defaults = false
220+
221+ obj := & v2.HelmRelease {
222+ ObjectMeta : metav1.ObjectMeta {
223+ Name : "install" ,
224+ Namespace : "install-ns" ,
225+ },
226+ Spec : v2.HelmReleaseSpec {},
227+ }
228+
229+ got := newInstall (& helmaction.Configuration {}, obj , nil )
230+ g .Expect (got ).ToNot (BeNil ())
231+ g .Expect (got .PostRenderStrategy ).To (Equal (action .PostRenderStrategyCombined ))
232+ })
233+
234+ t .Run ("post render strategy defaults to nohooks with UseHelm3Defaults" , func (t * testing.T ) {
235+ g := NewWithT (t )
236+
237+ // Save and restore UseHelm3Defaults
238+ oldUseHelm3Defaults := UseHelm3Defaults
239+ t .Cleanup (func () { UseHelm3Defaults = oldUseHelm3Defaults })
240+ UseHelm3Defaults = true
241+
242+ obj := & v2.HelmRelease {
243+ ObjectMeta : metav1.ObjectMeta {
244+ Name : "install" ,
245+ Namespace : "install-ns" ,
246+ },
247+ Spec : v2.HelmReleaseSpec {},
248+ }
249+
250+ got := newInstall (& helmaction.Configuration {}, obj , nil )
251+ g .Expect (got ).ToNot (BeNil ())
252+ g .Expect (got .PostRenderStrategy ).To (Equal (action .PostRenderStrategyNoHooks ))
253+ })
254+
255+ t .Run ("post render strategy combined" , func (t * testing.T ) {
256+ g := NewWithT (t )
257+
258+ obj := & v2.HelmRelease {
259+ ObjectMeta : metav1.ObjectMeta {
260+ Name : "install" ,
261+ Namespace : "install-ns" ,
262+ },
263+ Spec : v2.HelmReleaseSpec {
264+ PostRenderStrategy : v2 .PostRenderStrategyCombined ,
265+ },
266+ }
267+
268+ got := newInstall (& helmaction.Configuration {}, obj , nil )
269+ g .Expect (got ).ToNot (BeNil ())
270+ g .Expect (got .PostRenderStrategy ).To (Equal (action .PostRenderStrategyCombined ))
271+ })
272+
273+ t .Run ("post render strategy separate" , func (t * testing.T ) {
274+ g := NewWithT (t )
275+
276+ obj := & v2.HelmRelease {
277+ ObjectMeta : metav1.ObjectMeta {
278+ Name : "install" ,
279+ Namespace : "install-ns" ,
280+ },
281+ Spec : v2.HelmReleaseSpec {
282+ PostRenderStrategy : v2 .PostRenderStrategySeparate ,
283+ },
284+ }
285+
286+ got := newInstall (& helmaction.Configuration {}, obj , nil )
287+ g .Expect (got ).ToNot (BeNil ())
288+ g .Expect (got .PostRenderStrategy ).To (Equal (action .PostRenderStrategySeparate ))
289+ })
290+
291+ t .Run ("post render strategy nohooks" , func (t * testing.T ) {
292+ g := NewWithT (t )
293+
294+ obj := & v2.HelmRelease {
295+ ObjectMeta : metav1.ObjectMeta {
296+ Name : "install" ,
297+ Namespace : "install-ns" ,
298+ },
299+ Spec : v2.HelmReleaseSpec {
300+ PostRenderStrategy : v2 .PostRenderStrategyNoHooks ,
301+ },
302+ }
303+
304+ got := newInstall (& helmaction.Configuration {}, obj , nil )
305+ g .Expect (got ).ToNot (BeNil ())
306+ g .Expect (got .PostRenderStrategy ).To (Equal (action .PostRenderStrategyNoHooks ))
307+ })
211308}
0 commit comments