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

Commit c54c29d

Browse files
committed
render: Add test with user settings map
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
1 parent 356151c commit c54c29d

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

render/render_test.go

Lines changed: 55 additions & 0 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,6 +86,55 @@ 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) {
84139
metadata := strings.NewReader(`version: "0.1"
85140
name: myname`)

0 commit comments

Comments
 (0)