github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/cmd/step/buildpack/step_buildpack_apply_integration_test.go (about) 1 // +build integration 2 3 package buildpack_test 4 5 import ( 6 "io/ioutil" 7 "os" 8 "path" 9 "path/filepath" 10 "testing" 11 12 "github.com/olli-ai/jx/v2/pkg/cmd/opts/step" 13 14 "github.com/olli-ai/jx/v2/pkg/cmd/step/buildpack" 15 "github.com/olli-ai/jx/v2/pkg/cmd/testhelpers" 16 17 v1 "github.com/jenkins-x/jx-api/pkg/apis/jenkins.io/v1" 18 "github.com/olli-ai/jx/v2/pkg/cmd/opts" 19 "github.com/olli-ai/jx/v2/pkg/gits" 20 "github.com/olli-ai/jx/v2/pkg/helm" 21 "github.com/olli-ai/jx/v2/pkg/jenkinsfile" 22 resources_test "github.com/olli-ai/jx/v2/pkg/kube/resources/mocks" 23 "github.com/olli-ai/jx/v2/pkg/testkube" 24 "github.com/olli-ai/jx/v2/pkg/tests" 25 "github.com/olli-ai/jx/v2/pkg/util" 26 "github.com/stretchr/testify/assert" 27 "github.com/stretchr/testify/require" 28 "k8s.io/apimachinery/pkg/runtime" 29 ) 30 31 func TestStepBuildPackApply(t *testing.T) { 32 const buildPackURL = v1.KubernetesWorkloadBuildPackURL 33 const buildPackRef = "master" 34 35 tests.SkipForWindows(t, "go-expect does not work on windows") 36 37 originalJxHome, tempJxHome, err := testhelpers.CreateTestJxHomeDir() 38 assert.NoError(t, err) 39 defer func() { 40 err := testhelpers.CleanupTestJxHomeDir(originalJxHome, tempJxHome) 41 assert.NoError(t, err) 42 }() 43 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 44 assert.NoError(t, err) 45 defer func() { 46 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 47 assert.NoError(t, err) 48 }() 49 50 tempDir, err := ioutil.TempDir("", "test-step-buildpack-apply") 51 require.NoError(t, err) 52 53 testData := path.Join("test_data", "import_projects", "maven_camel") 54 _, err = os.Stat(testData) 55 require.NoError(t, err) 56 57 err = util.CopyDir(testData, tempDir, true) 58 require.NoError(t, err) 59 60 o := &buildpack.StepBuildPackApplyOptions{ 61 StepOptions: step.StepOptions{ 62 CommonOptions: &opts.CommonOptions{ 63 In: os.Stdin, 64 Out: os.Stdout, 65 Err: os.Stderr, 66 }, 67 }, 68 Dir: tempDir, 69 } 70 71 testhelpers.ConfigureTestOptionsWithResources(o.CommonOptions, 72 []runtime.Object{ 73 testkube.CreateFakeGitSecret(), 74 }, 75 []runtime.Object{}, 76 gits.NewGitCLI(), 77 nil, 78 helm.NewHelmCLI("helm", helm.V2, "", true), 79 resources_test.NewMockInstaller(), 80 ) 81 82 err = o.ModifyDevEnvironment(func(env *v1.Environment) error { 83 env.Spec.TeamSettings.BuildPackURL = buildPackURL 84 env.Spec.TeamSettings.BuildPackRef = buildPackRef 85 return nil 86 }) 87 require.NoError(t, err) 88 89 // lets configure the correct build pack for our test 90 settings, err := o.TeamSettings() 91 require.NoError(t, err) 92 assert.Equal(t, buildPackURL, settings.BuildPackURL, "TeamSettings.BuildPackURL") 93 assert.Equal(t, buildPackRef, settings.BuildPackRef, "TeamSettings.BuildPackRef") 94 95 err = o.Run() 96 require.NoError(t, err, "failed to run step") 97 98 actualJenkinsfile := filepath.Join(tempDir, jenkinsfile.Name) 99 assert.FileExists(t, actualJenkinsfile, "No Jenkinsfile created!") 100 101 t.Logf("Found Jenkinsfile at %s\n", actualJenkinsfile) 102 }