Updated sql_builder_template to check if column is in a conflicted column name array and renames to {col}_ if it is a conflicting name. Added unit tests.

This commit is contained in:
johnflynn 2024-10-26 22:40:49 -04:00
parent e715b13615
commit 9f8732cd95
2 changed files with 36 additions and 1 deletions

View file

@ -1,6 +1,7 @@
package template
import (
"github.com/go-jet/jet/v2/generator/metadata"
"github.com/stretchr/testify/require"
"testing"
)
@ -9,3 +10,27 @@ 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: "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)
})
}
}