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"
|
const tempTestDir = "./.tempTestDir"
|
||||||
|
|
||||||
var defaultModelPath = path.Join(tempTestDir, "jetdb/dvds/model")
|
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 defaultActorModelFilePath = path.Join(tempTestDir, "jetdb/dvds/model", "actor.go")
|
||||||
var defaultTableSQLBuilderFilePath = path.Join(tempTestDir, "jetdb/dvds/table")
|
var defaultTableSQLBuilderFilePath = path.Join(tempTestDir, "jetdb/dvds/table")
|
||||||
var defaultViewSQLBuilderFilePath = path.Join(tempTestDir, "jetdb/dvds/view")
|
var defaultViewSQLBuilderFilePath = path.Join(tempTestDir, "jetdb/dvds/view")
|
||||||
|
|
@ -454,3 +455,104 @@ func TestGeneratorTemplate_SQLBuilder_ChangeColumnTypes(t *testing.T) {
|
||||||
actor := file2.Exists(t, defaultActorSQLBuilderFilePath)
|
actor := file2.Exists(t, defaultActorSQLBuilderFilePath)
|
||||||
require.Contains(t, actor, "ActorID postgres.ColumnString")
|
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