Add additional generator template tests:
- TestRenameEnumValueName - TestGeneratorTemplate_Model_SqlBuilder_RenameStructFieldNames test.
This commit is contained in:
parent
aace1156ba
commit
bea828d64d
2 changed files with 103 additions and 1 deletions
|
|
@ -20,6 +20,7 @@ import (
|
|||
const tempTestDir = "./.tempTestDir"
|
||||
|
||||
var defaultModelPath = path.Join(tempTestDir, "jetdb/dvds/model")
|
||||
var defaultSqlBuilderPath = path.Join(tempTestDir, "jetdb/dvds/table")
|
||||
var defaultActorModelFilePath = path.Join(tempTestDir, "jetdb/dvds/model", "actor.go")
|
||||
var defaultTableSQLBuilderFilePath = path.Join(tempTestDir, "jetdb/dvds/table")
|
||||
var defaultViewSQLBuilderFilePath = path.Join(tempTestDir, "jetdb/dvds/view")
|
||||
|
|
@ -454,3 +455,104 @@ func TestGeneratorTemplate_SQLBuilder_ChangeColumnTypes(t *testing.T) {
|
|||
actor := file2.Exists(t, defaultActorSQLBuilderFilePath)
|
||||
require.Contains(t, actor, "ActorID postgres.ColumnString")
|
||||
}
|
||||
|
||||
func TestRenameEnumValueName(t *testing.T) {
|
||||
err := postgres.Generate(
|
||||
tempTestDir,
|
||||
dbConnection,
|
||||
template.Default(postgres2.Dialect).
|
||||
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
|
||||
return template.DefaultSchema(schemaMetaData).
|
||||
UseSQLBuilder(template.DefaultSQLBuilder().
|
||||
UseEnum(func(enum metadata.Enum) template.EnumSQLBuilder {
|
||||
defaultEnumSqlBuilder := template.DefaultEnumSQLBuilder(enum)
|
||||
|
||||
defaultValueNameFunc := defaultEnumSqlBuilder.ValueName
|
||||
|
||||
defaultEnumSqlBuilder.ValueName = func(enumValue string) string {
|
||||
if enumValue == "G" {
|
||||
return "GRating"
|
||||
}
|
||||
return defaultValueNameFunc(enumValue)
|
||||
}
|
||||
|
||||
return defaultEnumSqlBuilder
|
||||
}),
|
||||
)
|
||||
}),
|
||||
)
|
||||
require.NoError(t, err)
|
||||
testutils.AssertFileContent(t, defaultEnumSQLBuilderFilePath+"/mpaa_rating.go", `
|
||||
//
|
||||
// Code generated by go-jet DO NOT EDIT.
|
||||
//
|
||||
// WARNING: Changes to this file may cause incorrect behavior
|
||||
// and will be lost if the code is regenerated
|
||||
//
|
||||
|
||||
package enum
|
||||
|
||||
import "github.com/go-jet/jet/v2/postgres"
|
||||
|
||||
var MpaaRating = &struct {
|
||||
GRating postgres.StringExpression
|
||||
Pg postgres.StringExpression
|
||||
Pg13 postgres.StringExpression
|
||||
R postgres.StringExpression
|
||||
Nc17 postgres.StringExpression
|
||||
}{
|
||||
GRating: postgres.NewEnumValue("G"),
|
||||
Pg: postgres.NewEnumValue("PG"),
|
||||
Pg13: postgres.NewEnumValue("PG-13"),
|
||||
R: postgres.NewEnumValue("R"),
|
||||
Nc17: postgres.NewEnumValue("NC-17"),
|
||||
}
|
||||
`)
|
||||
}
|
||||
|
||||
func TestGeneratorTemplate_Model_SqlBuilder_RenameStructFieldNames(t *testing.T) {
|
||||
err := postgres.Generate(
|
||||
tempTestDir,
|
||||
dbConnection,
|
||||
template.Default(postgres2.Dialect).
|
||||
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
|
||||
return template.DefaultSchema(schemaMetaData).
|
||||
UseModel(template.DefaultModel().
|
||||
UseTable(func(table metadata.Table) template.TableModel {
|
||||
return template.DefaultTableModel(table).
|
||||
UseField(func(column metadata.Column) template.TableModelField {
|
||||
defaultTableModelField := template.DefaultTableModelField(column)
|
||||
|
||||
if table.Name == "payment" && column.Name == "amount" {
|
||||
defaultTableModelField.Name = "AmountInCents"
|
||||
}
|
||||
return defaultTableModelField
|
||||
})
|
||||
}),
|
||||
).
|
||||
UseSQLBuilder(template.DefaultSQLBuilder().
|
||||
UseTable(func(table metadata.Table) template.TableSQLBuilder {
|
||||
return template.DefaultTableSQLBuilder(table).
|
||||
UseColumn(func(column metadata.Column) template.TableSQLBuilderColumn {
|
||||
defaultSqlBuilderColumn := template.DefaultTableSQLBuilderColumn(column)
|
||||
|
||||
if table.Name == "payment" && column.Name == "amount" {
|
||||
defaultSqlBuilderColumn.Name = "AmountInCents"
|
||||
}
|
||||
|
||||
return defaultSqlBuilderColumn
|
||||
})
|
||||
}),
|
||||
)
|
||||
}),
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
filmModelData := file2.Exists(t, defaultModelPath, "payment.go")
|
||||
require.Contains(t, filmModelData, "AmountInCents float64")
|
||||
filmSqlBuilderData := file2.Exists(t, defaultSqlBuilderPath, "payment.go")
|
||||
require.Contains(t, filmSqlBuilderData, "AmountInCents postgres.ColumnFloat")
|
||||
require.Contains(t, filmSqlBuilderData, "AmountInCentsColumn = postgres.FloatColumn(\"amount\")")
|
||||
require.Contains(t, filmSqlBuilderData, "allColumns = postgres.ColumnList{PaymentIDColumn, CustomerIDColumn, StaffIDColumn, RentalIDColumn, AmountInCentsColumn, PaymentDateColumn}")
|
||||
require.Contains(t, filmSqlBuilderData, "AmountInCents: AmountInCentsColumn,")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit c17c7dd9b29882499e8d22078e6c5ea098581aec
|
||||
Subproject commit 3398b9735b9d097d2ee0c282976726affc6b96f0
|
||||
Loading…
Add table
Add a link
Reference in a new issue