github.com/jenkins-x/jx/v2@v2.1.155/pkg/cmd/opts/kustomize_integration_test.go (about) 1 // +build integration 2 3 package opts_test 4 5 import ( 6 "os" 7 "path/filepath" 8 "testing" 9 10 "github.com/jenkins-x/jx/v2/pkg/cmd/testhelpers" 11 "github.com/jenkins-x/jx/v2/pkg/versionstream" 12 "github.com/stretchr/testify/assert" 13 14 "github.com/jenkins-x/jx-logging/pkg/log" 15 "github.com/jenkins-x/jx/v2/pkg/cmd/clients" 16 "github.com/jenkins-x/jx/v2/pkg/cmd/opts" 17 ) 18 19 // TestInstallKustomize tests that Kustomize gets properly installed into JX_HOME 20 func TestInstallKustomize(t *testing.T) { 21 origJXHome, testJXHome, err := testhelpers.CreateTestJxHomeDir() 22 assert.NoError(t, err, "failed to create a test JX Home directory") 23 24 defer func() { 25 err := testhelpers.CleanupTestJxHomeDir(origJXHome, testJXHome) 26 if err != nil { 27 log.Logger().Warnf("unable to remove temporary directory %s: %s", testJXHome, err) 28 } 29 }() 30 31 o := opts.NewCommonOptionsWithFactory(clients.NewFactory()) 32 o.NoBrew = true 33 34 err = o.InstallKustomize() 35 assert.NoError(t, err, "error installing kustomize") 36 37 // test that tmpJXHome/bin contains kustomize binary and retrieve its version 38 // unset PATH to ensure no unwanted binary will be used 39 origPath := os.Getenv("PATH") 40 err = os.Setenv("PATH", "") 41 assert.NoError(t, err, "unable to temporarily unset PATH: %s", err) 42 43 version, err := o.Kustomize().Version() 44 assert.FileExists(t, filepath.Join(testJXHome, "bin", "kustomize")) 45 assert.NoError(t, err, "kustomize was not installed in the temp JX_HOME %s", testJXHome) 46 47 err = os.Setenv("PATH", origPath) 48 assert.NoError(t, err, "unable to reset PATH: %s", err) 49 50 // get the stable jx supported version of kustomize to be install 51 versionResolver, err := o.GetVersionResolver() 52 assert.NoError(t, err, "unable to retrieve version resolver") 53 54 stableVersion, err := versionResolver.StableVersion(versionstream.KindPackage, "kustomize") 55 assert.NoError(t, err, "unable to retrieve stable version for kustomize from version resolver") 56 assert.Contains(t, version, stableVersion.Version) 57 }