Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit fc098ab

Browse files
authored
Merge pull request #372 from chris-crone/add-render-test
Add render test with user settings
2 parents 356151c + 331bd13 commit fc098ab

1 file changed

Lines changed: 57 additions & 4 deletions

File tree

render/render_test.go

Lines changed: 57 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,16 @@ import (
66

77
"github.com/docker/app/types"
88
composetypes "github.com/docker/cli/cli/compose/types"
9+
yaml "gopkg.in/yaml.v2"
910
"gotest.tools/assert"
1011
is "gotest.tools/assert/cmp"
1112
)
1213

14+
const (
15+
validMeta = `version: "0.1"
16+
name: my-app`
17+
)
18+
1319
func TestRenderMissingValue(t *testing.T) {
1420
configFiles := []composetypes.ConfigFile{
1521
{
@@ -80,9 +86,57 @@ func TestRenderEnabledFalse(t *testing.T) {
8086
}
8187
}
8288

89+
func TestRenderUserSettings(t *testing.T) {
90+
metadata := strings.NewReader(validMeta)
91+
composeFile := strings.NewReader(`
92+
version: "3.6"
93+
services:
94+
front:
95+
image: ${front.image}
96+
ports:
97+
- "${front.port}:80"
98+
back:
99+
image: ${back.image}
100+
`)
101+
settings := strings.NewReader(`
102+
front:
103+
image: wrong
104+
port: 8484
105+
back:
106+
image: wrong
107+
`)
108+
app := &types.App{Path: "my-app"}
109+
err := types.Metadata(metadata)(app)
110+
assert.NilError(t, err)
111+
err = types.WithComposes(composeFile)(app)
112+
assert.NilError(t, err)
113+
err = types.WithSettings(settings)(app)
114+
assert.NilError(t, err)
115+
userSettings := map[string]string{
116+
"front.image": "nginx",
117+
"front.port": "4242",
118+
"back.image": "myapp",
119+
}
120+
c, err := Render(app, userSettings)
121+
assert.NilError(t, err)
122+
s, err := yaml.Marshal(c)
123+
assert.NilError(t, err)
124+
assert.Equal(t, string(s), `version: "3.6"
125+
services:
126+
back:
127+
image: myapp
128+
front:
129+
image: nginx
130+
ports:
131+
- mode: ingress
132+
target: 80
133+
published: 4242
134+
protocol: tcp
135+
`)
136+
}
137+
83138
func TestValidateBrokenComposeFile(t *testing.T) {
84-
metadata := strings.NewReader(`version: "0.1"
85-
name: myname`)
139+
metadata := strings.NewReader(validMeta)
86140
brokenComposeFile := strings.NewReader(`version: "3.6"
87141
unknown-property: value`)
88142
app := &types.App{Path: "my-app"}
@@ -96,8 +150,7 @@ unknown-property: value`)
96150
}
97151

98152
func TestValidateRenderedApplication(t *testing.T) {
99-
metadata := strings.NewReader(`version: "0.1"
100-
name: myname`)
153+
metadata := strings.NewReader(validMeta)
101154
composeFile := strings.NewReader(`
102155
version: "3.6"
103156
services:

0 commit comments

Comments
 (0)