jet/generator/template/sql_builder_template_test.go
2025-04-10 09:28:51 -04:00

65 lines
1.4 KiB
Go

package template
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/go-jet/jet/v2/generator/metadata"
)
func TestToGoEnumValueIdentifier(t *testing.T) {
require.Equal(t, defaultEnumValueName("enum_name", "enum_value"), "EnumValue")
require.Equal(t, defaultEnumValueName("NumEnum", "100"), "NumEnum100")
}
func TestColumnRenameReserved(t *testing.T) {
tests := []struct {
col string
want string
}{
{col: "TableName", want: "TableName_"},
{col: "Table", want: "Table_"},
{col: "SchemaName", want: "SchemaName_"},
{col: "Alias", want: "Alias_"},
{col: "AllColumns", want: "AllColumns_"},
{col: "MutableColumns", want: "MutableColumns_"},
{col: "DefaultColumns", want: "DefaultColumns_"},
{col: "OtherColumn", want: "OtherColumn"},
}
for _, tt := range tests {
t.Run(tt.col, func(t *testing.T) {
builder := DefaultTableSQLBuilderColumn(metadata.Column{
Name: tt.col,
})
require.Equal(t, builder.Name, tt.want)
})
}
}
func Test_SQLBuilder_ShouldSkip(t *testing.T) {
tests := []struct {
name string
initial SQLBuilder
skip bool
}{
{
name: "True",
initial: SQLBuilder{Skip: false},
skip: true,
},
{
name: "False",
initial: SQLBuilder{Skip: true},
skip: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
updatedBuilder := tt.initial.ShouldSkip(tt.skip)
require.Equal(t, tt.skip, updatedBuilder.Skip)
})
}
}