get.porter.sh/porter@v1.3.0/pkg/templates/templates_test.go (about) 1 package templates 2 3 import ( 4 "os" 5 "testing" 6 7 "get.porter.sh/porter/pkg/config" 8 "get.porter.sh/porter/pkg/experimental" 9 "get.porter.sh/porter/pkg/test" 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestTemplates_GetManifest(t *testing.T) { 15 c := config.NewTestConfig(t) 16 tmpl := NewTemplates(c.Config) 17 18 gotTmpl, err := tmpl.GetManifest() 19 require.NoError(t, err) 20 21 wantTmpl, _ := os.ReadFile("./templates/create/porter.yaml") 22 assert.Equal(t, string(wantTmpl), string(gotTmpl)) 23 } 24 25 func TestTemplates_GetRunScript(t *testing.T) { 26 c := config.NewTestConfig(t) 27 tmpl := NewTemplates(c.Config) 28 29 gotTmpl, err := tmpl.GetRunScript() 30 require.NoError(t, err) 31 32 wantTmpl, _ := os.ReadFile("./templates/build/cnab/app/run") 33 assert.Equal(t, wantTmpl, gotTmpl) 34 } 35 36 func TestTemplates_GetDockerfile(t *testing.T) { 37 c := config.NewTestConfig(t) 38 tmpl := NewTemplates(c.Config) 39 40 gotTmpl, err := tmpl.GetDockerfile() 41 require.NoError(t, err) 42 43 strTmpl := string(gotTmpl) 44 require.Contains(t, strTmpl, "--platform=linux/amd64", "missing default platform flag") 45 test.CompareGoldenFile(t, "./templates/build/buildkit.Dockerfile", strTmpl) 46 } 47 48 func TestTemplates_GetDockerfileTemplate(t *testing.T) { 49 c := config.NewTestConfig(t) 50 tmpl := NewTemplates(c.Config) 51 52 gotTmpl, err := tmpl.GetDockerfileTemplate() 53 require.NoError(t, err) 54 55 strTmpl := string(gotTmpl) 56 require.Contains(t, strTmpl, "--platform=linux/amd64", "missing default platform flag") 57 test.CompareGoldenFile(t, "./templates/create/template.buildkit.Dockerfile", strTmpl) 58 } 59 60 func TestTemplates_GetCredentialSetJSON(t *testing.T) { 61 c := config.NewTestConfig(t) 62 tmpl := NewTemplates(c.Config) 63 64 gotTmpl, err := tmpl.GetCredentialSetJSON() 65 require.NoError(t, err) 66 67 wantTmpl, err := os.ReadFile("./templates/credentials/create/credential-set.json") 68 require.NoError(t, err) 69 assert.Equal(t, wantTmpl, gotTmpl) 70 } 71 72 func TestTemplates_GetCredentialSetYAML(t *testing.T) { 73 c := config.NewTestConfig(t) 74 tmpl := NewTemplates(c.Config) 75 76 gotTmpl, err := tmpl.GetCredentialSetYAML() 77 require.NoError(t, err) 78 79 wantTmpl, err := os.ReadFile("./templates/credentials/create/credential-set.yaml") 80 require.NoError(t, err) 81 assert.Equal(t, wantTmpl, gotTmpl) 82 } 83 84 func TestTemplates_GetParameterSetJSON(t *testing.T) { 85 c := config.NewTestConfig(t) 86 tmpl := NewTemplates(c.Config) 87 88 gotTmpl, err := tmpl.GetParameterSetJSON() 89 require.NoError(t, err) 90 91 wantTmpl, err := os.ReadFile("./templates/parameters/create/parameter-set.json") 92 require.NoError(t, err) 93 assert.Equal(t, wantTmpl, gotTmpl) 94 } 95 96 func TestTemplates_GetParameterSetYAML(t *testing.T) { 97 c := config.NewTestConfig(t) 98 tmpl := NewTemplates(c.Config) 99 100 gotTmpl, err := tmpl.GetParameterSetYAML() 101 require.NoError(t, err) 102 103 wantTmpl, err := os.ReadFile("./templates/parameters/create/parameter-set.yaml") 104 require.NoError(t, err) 105 assert.Equal(t, wantTmpl, gotTmpl) 106 } 107 108 func TestTemplates_GetSchema(t *testing.T) { 109 t.Run("stable schema", func(t *testing.T) { 110 c := config.NewTestConfig(t) 111 tmpl := NewTemplates(c.Config) 112 113 gotTmpl, err := tmpl.GetSchema() 114 require.NoError(t, err) 115 116 wantTmpl, err := os.ReadFile("./templates/schema.json") 117 require.NoError(t, err) 118 require.Equal(t, string(wantTmpl), string(gotTmpl)) 119 }) 120 121 t.Run("experimental schema", func(t *testing.T) { 122 c := config.NewTestConfig(t) 123 c.SetExperimentalFlags(experimental.FlagDependenciesV2) 124 tmpl := NewTemplates(c.Config) 125 126 gotTmpl, err := tmpl.GetSchema() 127 require.NoError(t, err) 128 129 wantTmpl, err := os.ReadFile("./templates/v1.1.0.schema.json") 130 require.NoError(t, err) 131 require.Equal(t, string(wantTmpl), string(gotTmpl)) 132 }) 133 }