You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-zero/tools/goctl/util/templatex_test.go

94 lines
1.3 KiB
Go

package util
import (
"testing"
"github.com/zeromicro/go-zero/tools/goctl/test"
)
func TestIsTemplate(t *testing.T) {
executor := test.NewExecutor[string, bool]()
executor.Add([]test.Data[string, bool]{
{
Name: "empty",
Want: false,
},
{
Name: "invalid",
Input: "{foo}",
Want: false,
},
{
Name: "invalid",
Input: "{.foo}",
Want: false,
},
{
Name: "invalid",
Input: "$foo",
Want: false,
},
{
Name: "invalid",
Input: "{{foo}}",
Want: false,
},
{
Name: "invalid",
Input: "{{.}}",
Want: false,
},
{
Name: "valid",
Input: "{{.foo}}",
Want: true,
},
{
Name: "valid",
Input: "{{.foo.bar}}",
Want: true,
},
}...)
executor.Run(t, IsTemplateVariable)
}
func TestTemplateVariable(t *testing.T) {
executor := test.NewExecutor[string, string]()
executor.Add([]test.Data[string, string]{
{
Name: "empty",
},
{
Name: "invalid",
Input: "{foo}",
},
{
Name: "invalid",
Input: "{.foo}",
},
{
Name: "invalid",
Input: "$foo",
},
{
Name: "invalid",
Input: "{{foo}}",
},
{
Name: "invalid",
Input: "{{.}}",
},
{
Name: "valid",
Input: "{{.foo}}",
Want: "foo",
},
{
Name: "valid",
Input: "{{.foo.bar}}",
Want: "foo.bar",
},
}...)
executor.Run(t, TemplateVariable)
}