evcc-io/util/templates/utils_test.go
andig 560ba89734
Some checks failed
Release / call-build-workflow (push) Has been cancelled
Release / Publish Docker :release (push) Has been cancelled
Release / Github & APT (push) Has been cancelled
Release / Demo (push) Has been cancelled
Release / Hassio Addon (push) Has been cancelled
Fritzdect: fix double-quoting of ain
2023-02-24 17:43:13 +01:00

34 lines
732 B
Go

package templates
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3"
)
func TestYamlDecode(t *testing.T) {
for _, value := range []string{`value`, `!value`, `@value`, `"value"`, `"va"lue"`, `va'lue`, `@va'lue`, `0815`, `"0815"`, `4711`, `#pwd`, ``} {
t.Run(value, func(t *testing.T) {
quoted := yamlQuote(value)
input := fmt.Sprintf("key: %s", quoted)
var res struct {
Value string `yaml:"key"`
}
err := yaml.Unmarshal([]byte(input), &res)
assert.NoError(t, err)
assert.Equal(t, value, res.Value)
})
}
}
func TestYamlDecodeLeadingZero(t *testing.T) {
exp := "'0815'"
if res := yamlQuote("0815"); res != exp {
t.Fatalf("expected %s, got %s", exp, res)
}
}