1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package interpolation
- import (
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/docker/docker/cli/compose/types"
- )
- var defaults = map[string]string{
- "USER": "jenny",
- "FOO": "bar",
- }
- func defaultMapping(name string) (string, bool) {
- val, ok := defaults[name]
- return val, ok
- }
- func TestInterpolate(t *testing.T) {
- services := types.Dict{
- "servicea": types.Dict{
- "image": "example:${USER}",
- "volumes": []interface{}{"$FOO:/target"},
- "logging": types.Dict{
- "driver": "${FOO}",
- "options": types.Dict{
- "user": "$USER",
- },
- },
- },
- }
- expected := types.Dict{
- "servicea": types.Dict{
- "image": "example:jenny",
- "volumes": []interface{}{"bar:/target"},
- "logging": types.Dict{
- "driver": "bar",
- "options": types.Dict{
- "user": "jenny",
- },
- },
- },
- }
- result, err := Interpolate(services, "service", defaultMapping)
- assert.NoError(t, err)
- assert.Equal(t, expected, result)
- }
- func TestInvalidInterpolation(t *testing.T) {
- services := types.Dict{
- "servicea": types.Dict{
- "image": "${",
- },
- }
- _, err := Interpolate(services, "service", defaultMapping)
- assert.EqualError(t, err, `Invalid interpolation format for "image" option in service "servicea": "${"`)
- }
|