diff --git a/pkg/porter/create_test.go b/pkg/porter/create_test.go index fa952a35a..935b842a0 100644 --- a/pkg/porter/create_test.go +++ b/pkg/porter/create_test.go @@ -84,3 +84,45 @@ func TestCreateWithBundleName(t *testing.T) { require.NoError(t, yaml.Unmarshal(data, &porterYaml)) require.True(t, porterYaml.Name == bundleName) } + +// make sure bundlename is not the entire file structure, just the "base" +func TestCreateNestedBundleName(t *testing.T) { + dir := "foo/bar/bar" + bundleName := "mybundle" + + p := NewTestPorter(t) + err := p.CreateInDir(filepath.Join(dir, bundleName)) + require.NoError(t, err) + + // Verify that files are present in the "mybundle" directory + configFileStats, err := p.FileSystem.Stat(filepath.Join(bundleName, "porter.yaml")) + require.NoError(t, err) + tests.AssertFilePermissionsEqual(t, filepath.Join(bundleName, "porter.yaml"), pkg.FileModeWritable, configFileStats.Mode()) + + helperFileStats, err := p.FileSystem.Stat(filepath.Join(bundleName, "helpers.sh")) + require.NoError(t, err) + tests.AssertFilePermissionsEqual(t, filepath.Join(bundleName, "helpers.sh"), pkg.FileModeExecutable, helperFileStats.Mode()) + + dockerfileStats, err := p.FileSystem.Stat(filepath.Join(bundleName, "template.Dockerfile")) + require.NoError(t, err) + tests.AssertFilePermissionsEqual(t, filepath.Join(bundleName, "template.Dockerfile"), pkg.FileModeWritable, dockerfileStats.Mode()) + + readmeStats, err := p.FileSystem.Stat(filepath.Join(bundleName, "README.md")) + require.NoError(t, err) + tests.AssertFilePermissionsEqual(t, filepath.Join(bundleName, "README.md"), pkg.FileModeWritable, readmeStats.Mode()) + + gitignoreStats, err := p.FileSystem.Stat(filepath.Join(bundleName, ".gitignore")) + require.NoError(t, err) + tests.AssertFilePermissionsEqual(t, filepath.Join(bundleName, ".gitignore"), pkg.FileModeWritable, gitignoreStats.Mode()) + + dockerignoreStats, err := p.FileSystem.Stat(filepath.Join(bundleName, ".dockerignore")) + require.NoError(t, err) + tests.AssertFilePermissionsEqual(t, filepath.Join(bundleName, ".dockerignore"), pkg.FileModeWritable, dockerignoreStats.Mode()) + + // verify "name" inside porter.yaml is set to "mybundle" + porterYaml := &manifest.Manifest{} + data, err := p.FileSystem.ReadFile(filepath.Join(bundleName, "porter.yaml")) + require.NoError(t, err) + require.NoError(t, yaml.Unmarshal(data, &porterYaml)) + require.True(t, porterYaml.Name == bundleName) +}