Add more UseSchema tests.
Rename newly generated file to avoid potentional conflict with tables named table or views named view.
This commit is contained in:
parent
a9aa25416a
commit
5e34bef288
10 changed files with 250 additions and 160 deletions
|
|
@ -7,6 +7,7 @@ import (
|
|||
"github.com/go-jet/jet/v2/generator/postgres"
|
||||
"github.com/go-jet/jet/v2/generator/template"
|
||||
"github.com/go-jet/jet/v2/internal/3rdparty/snaker"
|
||||
"github.com/go-jet/jet/v2/internal/testutils"
|
||||
"github.com/go-jet/jet/v2/internal/utils"
|
||||
postgres2 "github.com/go-jet/jet/v2/postgres"
|
||||
"github.com/go-jet/jet/v2/tests/dbconfig"
|
||||
|
|
@ -207,28 +208,65 @@ func TestGeneratorTemplate_SQLBuilder_SkipTableAndEnum(t *testing.T) {
|
|||
return template.DefaultSchema(schemaMetaData).
|
||||
UseSQLBuilder(template.DefaultSQLBuilder().
|
||||
UseTable(func(table metadata.Table) template.TableSQLBuilder {
|
||||
return template.TableSQLBuilder{
|
||||
Skip: true,
|
||||
if table.Name != "city" {
|
||||
return template.TableSQLBuilder{Skip: true}
|
||||
}
|
||||
|
||||
return template.DefaultTableSQLBuilder(table)
|
||||
}).
|
||||
UseView(func(table metadata.Table) template.TableSQLBuilder {
|
||||
return template.TableSQLBuilder{
|
||||
Skip: true,
|
||||
UseView(func(view metadata.Table) template.ViewSQLBuilder {
|
||||
if view.Name != "film_list" {
|
||||
return template.TableSQLBuilder{Skip: true}
|
||||
}
|
||||
|
||||
return template.DefaultViewSQLBuilder(view)
|
||||
}).
|
||||
UseEnum(func(enumMetaData metadata.Enum) template.EnumSQLBuilder {
|
||||
return template.EnumSQLBuilder{
|
||||
Skip: true,
|
||||
}
|
||||
return template.EnumSQLBuilder{Skip: true}
|
||||
}),
|
||||
)
|
||||
}),
|
||||
)
|
||||
require.Nil(t, err)
|
||||
|
||||
file2.NotExists(t, defaultTableSQLBuilderFilePath, "actor.go")
|
||||
file2.NotExists(t, defaultViewSQLBuilderFilePath, "actor_info.go")
|
||||
testutils.AssertFileNamesEqual(t, defaultTableSQLBuilderFilePath, "city.go", "table_use_schema.go")
|
||||
testutils.AssertFileNamesEqual(t, defaultViewSQLBuilderFilePath, "film_list.go", "view_use_schema.go")
|
||||
file2.NotExists(t, defaultEnumSQLBuilderFilePath, "mpaa_rating.go")
|
||||
|
||||
testutils.AssertFileContent(t, defaultTableSQLBuilderFilePath+"/table_use_schema.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 table
|
||||
|
||||
// UseSchema sets a new schema name for all generated table SQL builder types. It is recommended to invoke
|
||||
// this method only once at the beginning of the program.
|
||||
func UseSchema(schema string) {
|
||||
City = City.FromSchema(schema)
|
||||
}
|
||||
`)
|
||||
|
||||
testutils.AssertFileContent(t, defaultViewSQLBuilderFilePath+"/view_use_schema.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 view
|
||||
|
||||
// UseSchema sets a new schema name for all generated view SQL builder types. It is recommended to invoke
|
||||
// this method only once at the beginning of the program.
|
||||
func UseSchema(schema string) {
|
||||
FilmList = FilmList.FromSchema(schema)
|
||||
}
|
||||
`)
|
||||
|
||||
}
|
||||
|
||||
func TestGeneratorTemplate_SQLBuilder_ChangeTypeAndFileName(t *testing.T) {
|
||||
|
|
@ -269,6 +307,37 @@ func TestGeneratorTemplate_SQLBuilder_ChangeTypeAndFileName(t *testing.T) {
|
|||
require.Contains(t, actorInfo, "var V_ActorInfo = newActorInfoViewSQLBuilder(\"dvds\", \"actor_info\", \"\")")
|
||||
mpaaRating := file2.Exists(t, defaultEnumSQLBuilderFilePath, "dvds_mpaa_rating_enum.go")
|
||||
require.Contains(t, mpaaRating, "var MpaaRatingEnumSQLBuilder = &struct {")
|
||||
|
||||
testutils.AssertFileContent(t, defaultTableSQLBuilderFilePath+"/table_use_schema.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 table
|
||||
|
||||
// UseSchema sets a new schema name for all generated table SQL builder types. It is recommended to invoke
|
||||
// this method only once at the beginning of the program.
|
||||
func UseSchema(schema string) {
|
||||
T_Actor = T_Actor.FromSchema(schema)
|
||||
T_Address = T_Address.FromSchema(schema)
|
||||
T_Category = T_Category.FromSchema(schema)
|
||||
T_City = T_City.FromSchema(schema)
|
||||
T_Country = T_Country.FromSchema(schema)
|
||||
T_Customer = T_Customer.FromSchema(schema)
|
||||
T_Film = T_Film.FromSchema(schema)
|
||||
T_FilmActor = T_FilmActor.FromSchema(schema)
|
||||
T_FilmCategory = T_FilmCategory.FromSchema(schema)
|
||||
T_Inventory = T_Inventory.FromSchema(schema)
|
||||
T_Language = T_Language.FromSchema(schema)
|
||||
T_Payment = T_Payment.FromSchema(schema)
|
||||
T_Rental = T_Rental.FromSchema(schema)
|
||||
T_Staff = T_Staff.FromSchema(schema)
|
||||
T_Store = T_Store.FromSchema(schema)
|
||||
}
|
||||
`)
|
||||
}
|
||||
|
||||
func TestGeneratorTemplate_Model_AddTags(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue