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  }