package template import ( "os" "path/filepath" "testing" ) const ( templateYamlFile = "test_tpl/test.yaml.tpl" parsedYamlDir = "test_tpl_parsed" parsedYamlFileName = "test.yaml" ) const ( templateYaml = `[[ .key ]]: "[[ .value ]]"` parsedYaml = `key: "value"` ) func TestParseTemplatesDir(t *testing.T) { err := ParseTemplatesDir("test_tpl", parsedYamlDir, map[string]any{ "key": "key", "value": "value", }, WithDelim("[[", "]]")) if err != nil { t.Fatal(err) } defer func() { err := os.RemoveAll(parsedYamlDir) if err != nil { t.Fatal(err) } }() parsedBytes, err := os.ReadFile(filepath.Join(parsedYamlDir, parsedYamlFileName)) if err != nil { t.Fatal(err) } if string(parsedBytes) != parsedYaml { t.Fatal("渲染后的模板值不一致") } } func TestParseTemplateFileToFile(t *testing.T) { err := ParseTemplateFileToFile(templateYamlFile, parsedYamlFileName, map[string]any{ "key": "key", "value": "value", }, WithDelim("[[", "]]")) if err != nil { t.Fatal(err) } defer func() { err := os.RemoveAll(parsedYamlFileName) if err != nil { t.Fatal(err) } }() parsedBytes, err := os.ReadFile(parsedYamlFileName) if err != nil { t.Fatal(err) } if string(parsedBytes) != parsedYaml { t.Fatal("渲染后的模板值不一致") } } func TestParseTemplateFileToString(t *testing.T) { parsed, err := ParseTemplateFileToString(templateYamlFile, map[string]any{ "key": "key", "value": "value", }, WithDelim("[[", "]]")) if err != nil { t.Fatal(err) } if parsed != parsedYaml { t.Fatal("渲染后的模板值不一致") } } func TestParseTemplateFileToBytes(t *testing.T) { parsedBytes, err := ParseTemplateFileToBytes(templateYamlFile, map[string]any{ "key": "key", "value": "value", }, WithDelim("[[", "]]")) if err != nil { t.Fatal(err) } if string(parsedBytes) != parsedYaml { t.Fatal("渲染后的模板值不一致") } } func TestParseTemplateStringToString(t *testing.T) { parsed, err := ParseTemplateStringToString(templateYaml, map[string]any{ "key": "key", "value": "value", }, WithDelim("[[", "]]")) if err != nil { t.Fatal(err) } if parsed != parsedYaml { t.Fatal("渲染后的模板值不一致") } } func TestParseTemplateStringToBytes(t *testing.T) { parsedBytes, err := ParseTemplateStringToBytes(templateYaml, map[string]any{ "key": "key", "value": "value", }, WithDelim("[[", "]]")) if err != nil { t.Fatal(err) } if string(parsedBytes) != parsedYaml { t.Fatal("渲染后的模板值不一致") } }