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:
go-jet 2023-04-02 13:58:44 +02:00
parent a9aa25416a
commit 5e34bef288
10 changed files with 250 additions and 160 deletions

View file

@ -1,7 +1,6 @@
package sqlite
import (
"io/ioutil"
"os"
"os/exec"
"reflect"
@ -88,52 +87,36 @@ func TestCmdGeneratorIgnoreTablesViewsEnums(t *testing.T) {
err := cmd.Run()
require.NoError(t, err)
tableSQLBuilderFiles, err := ioutil.ReadDir(genDestDir + "/table")
require.NoError(t, err)
testutils.AssertFileNamesEqual(t, tableSQLBuilderFiles, "country.go",
testutils.AssertFileNamesEqual(t, genDestDir+"/table", "country.go",
"customer.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go",
"payment.go", "staff.go", "table.go")
"payment.go", "staff.go", "table_use_schema.go")
viewSQLBuilderFiles, err := ioutil.ReadDir(genDestDir + "/view")
require.NoError(t, err)
testutils.AssertFileNamesEqual(t, viewSQLBuilderFiles, "sales_by_film_category.go",
"sales_by_store.go", "view.go")
testutils.AssertFileNamesEqual(t, genDestDir+"/view", "sales_by_film_category.go",
"sales_by_store.go", "view_use_schema.go")
modelFiles, err := ioutil.ReadDir(genDestDir + "/model")
require.NoError(t, err)
testutils.AssertFileNamesEqual(t, modelFiles, "country.go",
testutils.AssertFileNamesEqual(t, genDestDir+"/model", "country.go",
"customer.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go",
"payment.go", "staff.go", "sales_by_film_category.go", "sales_by_store.go")
}
func assertGeneratedFiles(t *testing.T) {
// Table SQL Builder files
tableSQLBuilderFiles, err := ioutil.ReadDir(genDestDir + "/table")
require.NoError(t, err)
testutils.AssertFileNamesEqual(t, tableSQLBuilderFiles, "actor.go", "address.go", "category.go", "city.go", "country.go",
testutils.AssertFileNamesEqual(t, genDestDir+"/table", "actor.go", "address.go", "category.go", "city.go", "country.go",
"customer.go", "film.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go",
"payment.go", "rental.go", "staff.go", "store.go", "table.go")
"payment.go", "rental.go", "staff.go", "store.go", "table_use_schema.go")
testutils.AssertFileContent(t, genDestDir+"/table/actor.go", actorSQLBuilderFile)
testutils.AssertFileContent(t, genDestDir+"/table/table.go", actorSQLBuilderTableFile)
testutils.AssertFileContent(t, genDestDir+"/table/table_use_schema.go", tableUseSchemaFile)
// View SQL Builder files
viewSQLBuilderFiles, err := ioutil.ReadDir(genDestDir + "/view")
require.NoError(t, err)
testutils.AssertFileNamesEqual(t, viewSQLBuilderFiles, "film_list.go", "sales_by_film_category.go",
"customer_list.go", "sales_by_store.go", "staff_list.go", "view.go")
testutils.AssertFileNamesEqual(t, genDestDir+"/view", "film_list.go", "sales_by_film_category.go",
"customer_list.go", "sales_by_store.go", "staff_list.go", "view_use_schema.go")
testutils.AssertFileContent(t, genDestDir+"/view/film_list.go", filmListSQLBuilderFile)
testutils.AssertFileContent(t, genDestDir+"/view/view.go", filmListSQLBuilderViewFile)
testutils.AssertFileContent(t, genDestDir+"/view/view_use_schema.go", viewUseSchemaFile)
// Model files
modelFiles, err := ioutil.ReadDir(genDestDir + "/model")
require.NoError(t, err)
testutils.AssertFileNamesEqual(t, modelFiles, "actor.go", "address.go", "category.go", "city.go", "country.go",
testutils.AssertFileNamesEqual(t, genDestDir+"/model", "actor.go", "address.go", "category.go", "city.go", "country.go",
"customer.go", "film.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go",
"payment.go", "rental.go", "staff.go", "store.go",
"film_list.go", "sales_by_film_category.go",
@ -228,7 +211,7 @@ func newActorTableImpl(schemaName, tableName, alias string) actorTable {
}
}
`
const actorSQLBuilderTableFile = `
const tableUseSchemaFile = `
//
// Code generated by go-jet DO NOT EDIT.
//
@ -238,9 +221,8 @@ const actorSQLBuilderTableFile = `
package table
// UseSchema changes all global tables/views with the value returned
// returned by calling FromSchema on them. Passing an empty string to this function
// will cause queries to be generated without any table/view alias.
// 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) {
Actor = Actor.FromSchema(schema)
Address = Address.FromSchema(schema)
@ -360,7 +342,7 @@ func newFilmListTableImpl(schemaName, tableName, alias string) filmListTable {
}
`
const filmListSQLBuilderViewFile = `
const viewUseSchemaFile = `
//
// Code generated by go-jet DO NOT EDIT.
//
@ -370,9 +352,8 @@ const filmListSQLBuilderViewFile = `
package view
// UseSchema changes all global tables/views with the value returned
// returned by calling FromSchema on them. Passing an empty string to this function
// will cause queries to be generated without any table/view alias.
// 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) {
CustomerList = CustomerList.FromSchema(schema)
FilmList = FilmList.FromSchema(schema)