Skip to content

Commit 0a336d6

Browse files
committed
Merge branch 'master' into pgx
2 parents b575139 + a366feb commit 0a336d6

File tree

3 files changed

+42
-26
lines changed

3 files changed

+42
-26
lines changed

generator/template/model_template.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,10 @@ func getTableModelImports(modelType TableModel, tableMetaData metadata.Table) []
106106
importPaths := map[string]bool{}
107107
for _, columnMetaData := range tableMetaData.Columns {
108108
field := modelType.Field(columnMetaData)
109-
importPath := field.Type.ImportPath
110-
111-
if importPath != "" {
112-
importPaths[importPath] = true
109+
for _, importPath := range append([]string{field.Type.ImportPath}, field.Type.AdditionalImportPaths...) {
110+
if importPath != "" {
111+
importPaths[importPath] = true
112+
}
113113
}
114114
}
115115

@@ -207,8 +207,9 @@ func (f TableModelField) TagsString() string {
207207

208208
// Type represents type of the struct field
209209
type Type struct {
210-
ImportPath string
211-
Name string
210+
ImportPath string
211+
AdditionalImportPaths []string
212+
Name string
212213
}
213214

214215
// NewType creates new type for dummy object

tests/mysql/generator_template_test.go

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/go-jet/jet/v2/generator/template"
99
"github.com/go-jet/jet/v2/internal/3rdparty/snaker"
1010
"github.com/go-jet/jet/v2/internal/utils/dbidentifier"
11-
postgres2 "github.com/go-jet/jet/v2/postgres"
11+
"github.com/go-jet/jet/v2/mysql"
1212
"github.com/go-jet/jet/v2/tests/dbconfig"
1313
file2 "github.com/go-jet/jet/v2/tests/internal/utils/file"
1414
"github.com/stretchr/testify/require"
@@ -49,7 +49,7 @@ func TestGeneratorTemplate_Schema_ChangePath(t *testing.T) {
4949
err := mysql2.Generate(
5050
tempTestDir,
5151
dbConnection("dvds"),
52-
template.Default(postgres2.Dialect).
52+
template.Default(mysql.Dialect).
5353
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
5454
return template.DefaultSchema(schemaMetaData).UsePath("new/schema/path")
5555
}),
@@ -67,7 +67,7 @@ func TestGeneratorTemplate_Model_SkipGeneration(t *testing.T) {
6767
err := mysql2.Generate(
6868
tempTestDir,
6969
dbConnection("dvds"),
70-
template.Default(postgres2.Dialect).
70+
template.Default(mysql.Dialect).
7171
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
7272
return template.DefaultSchema(schemaMetaData).
7373
UseModel(template.Model{
@@ -88,7 +88,7 @@ func TestGeneratorTemplate_SQLBuilder_SkipGeneration(t *testing.T) {
8888
err := mysql2.Generate(
8989
tempTestDir,
9090
dbConnection("dvds"),
91-
template.Default(postgres2.Dialect).
91+
template.Default(mysql.Dialect).
9292
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
9393
return template.DefaultSchema(schemaMetaData).
9494
UseSQLBuilder(template.SQLBuilder{
@@ -111,7 +111,7 @@ func TestGeneratorTemplate_Model_ChangePath(t *testing.T) {
111111
err := mysql2.Generate(
112112
tempTestDir,
113113
dbConnection("dvds"),
114-
template.Default(postgres2.Dialect).
114+
template.Default(mysql.Dialect).
115115
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
116116
return template.DefaultSchema(schemaMetaData).
117117
UseModel(template.DefaultModel().UsePath(newModelPath))
@@ -129,7 +129,7 @@ func TestGeneratorTemplate_SQLBuilder_ChangePath(t *testing.T) {
129129
err := mysql2.Generate(
130130
tempTestDir,
131131
dbConnection("dvds"),
132-
template.Default(postgres2.Dialect).
132+
template.Default(mysql.Dialect).
133133
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
134134
return template.DefaultSchema(schemaMetaData).
135135
UseSQLBuilder(template.DefaultSQLBuilder().UsePath(newModelPath))
@@ -150,7 +150,7 @@ func TestGeneratorTemplate_Model_RenameFilesAndTypes(t *testing.T) {
150150
err := mysql2.Generate(
151151
tempTestDir,
152152
dbConnection("dvds"),
153-
template.Default(postgres2.Dialect).
153+
template.Default(mysql.Dialect).
154154
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
155155
return template.DefaultSchema(schemaMetaData).
156156
UseModel(template.DefaultModel().
@@ -188,7 +188,7 @@ func TestGeneratorTemplate_Model_SkipTableAndEnum(t *testing.T) {
188188
err := mysql2.Generate(
189189
tempTestDir,
190190
dbConnection("dvds"),
191-
template.Default(postgres2.Dialect).
191+
template.Default(mysql.Dialect).
192192
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
193193
return template.DefaultSchema(schemaMetaData).
194194
UseModel(template.DefaultModel().
@@ -216,7 +216,7 @@ func TestGeneratorTemplate_SQLBuilder_SkipTableAndEnum(t *testing.T) {
216216
err := mysql2.Generate(
217217
tempTestDir,
218218
dbConnection("dvds"),
219-
template.Default(postgres2.Dialect).
219+
template.Default(mysql.Dialect).
220220
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
221221
return template.DefaultSchema(schemaMetaData).
222222
UseSQLBuilder(template.DefaultSQLBuilder().
@@ -249,7 +249,7 @@ func TestGeneratorTemplate_SQLBuilder_ChangeTypeAndFileName(t *testing.T) {
249249
err := mysql2.Generate(
250250
tempTestDir,
251251
dbConnection("dvds"),
252-
template.Default(postgres2.Dialect).
252+
template.Default(mysql.Dialect).
253253
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
254254
return template.DefaultSchema(schemaMetaData).
255255
UseSQLBuilder(template.DefaultSQLBuilder().
@@ -289,7 +289,7 @@ func TestGeneratorTemplate_SQLBuilder_DefaultAlias(t *testing.T) {
289289
err := mysql2.Generate(
290290
tempTestDir,
291291
dbConnection("dvds"),
292-
template.Default(postgres2.Dialect).
292+
template.Default(mysql.Dialect).
293293
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
294294
return template.DefaultSchema(schemaMetaData).
295295
UseSQLBuilder(template.DefaultSQLBuilder().
@@ -313,7 +313,7 @@ func TestGeneratorTemplate_Model_AddTags(t *testing.T) {
313313
err := mysql2.Generate(
314314
tempTestDir,
315315
dbConnection("dvds"),
316-
template.Default(postgres2.Dialect).
316+
template.Default(mysql.Dialect).
317317
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
318318
return template.DefaultSchema(schemaMetaData).
319319
UseModel(template.DefaultModel().
@@ -354,7 +354,7 @@ func TestGeneratorTemplate_Model_ChangeFieldTypes(t *testing.T) {
354354
err := mysql2.Generate(
355355
tempTestDir,
356356
dbConnection("dvds"),
357-
template.Default(postgres2.Dialect).
357+
template.Default(mysql.Dialect).
358358
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
359359
return template.DefaultSchema(schemaMetaData).
360360
UseModel(template.DefaultModel().
@@ -376,6 +376,12 @@ func TestGeneratorTemplate_Model_ChangeFieldTypes(t *testing.T) {
376376
defaultTableModelField.Type = template.NewType(sql.NullFloat64{})
377377
case "*time.Time":
378378
defaultTableModelField.Type = template.NewType(sql.NullTime{})
379+
case "time.Time":
380+
defaultTableModelField.Type = template.Type{
381+
ImportPath: "database/sql",
382+
AdditionalImportPaths: []string{"github.com/google/uuid"},
383+
Name: "sql.Null[uuid.UUID]",
384+
}
379385
}
380386
return defaultTableModelField
381387
})
@@ -387,17 +393,19 @@ func TestGeneratorTemplate_Model_ChangeFieldTypes(t *testing.T) {
387393
require.Nil(t, err)
388394

389395
data := file2.Exists(t, defaultModelPath, "film.go")
390-
require.Contains(t, data, "\"database/sql\"")
396+
require.Contains(t, data, `database/sql"`)
397+
require.Contains(t, data, `"github.com/google/uuid"`)
391398
require.Contains(t, data, "Description sql.NullString")
392399
require.Contains(t, data, "ReleaseYear *int16")
393400
require.Contains(t, data, "SpecialFeatures sql.NullString")
401+
require.Contains(t, data, "LastUpdate sql.Null[uuid.UUID]")
394402
}
395403

396404
func TestGeneratorTemplate_SQLBuilder_ChangeColumnTypes(t *testing.T) {
397405
err := mysql2.Generate(
398406
tempTestDir,
399407
dbConnection("dvds"),
400-
template.Default(postgres2.Dialect).
408+
template.Default(mysql.Dialect).
401409
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
402410
return template.DefaultSchema(schemaMetaData).
403411
UseSQLBuilder(template.DefaultSQLBuilder().
@@ -420,5 +428,5 @@ func TestGeneratorTemplate_SQLBuilder_ChangeColumnTypes(t *testing.T) {
420428
require.Nil(t, err)
421429

422430
actor := file2.Exists(t, defaultActorSQLBuilderFilePath)
423-
require.Contains(t, actor, "ActorID postgres.ColumnString")
431+
require.Contains(t, actor, "ActorID mysql.ColumnString")
424432
}

tests/postgres/generator_template_test.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ package postgres
33
import (
44
"database/sql"
55
"fmt"
6-
"path/filepath"
7-
"testing"
8-
96
"github.com/go-jet/jet/v2/generator/metadata"
107
"github.com/go-jet/jet/v2/generator/postgres"
118
"github.com/go-jet/jet/v2/generator/template"
@@ -16,6 +13,8 @@ import (
1613
"github.com/go-jet/jet/v2/tests/dbconfig"
1714
file2 "github.com/go-jet/jet/v2/tests/internal/utils/file"
1815
"github.com/stretchr/testify/require"
16+
"path/filepath"
17+
"testing"
1918
)
2019

2120
const tempTestDir = "./.tempTestDir"
@@ -432,6 +431,12 @@ func TestGeneratorTemplate_Model_ChangeFieldTypes(t *testing.T) {
432431
defaultTableModelField.Type = template.NewType(sql.NullFloat64{})
433432
case "*time.Time":
434433
defaultTableModelField.Type = template.NewType(sql.NullTime{})
434+
case "time.Time":
435+
defaultTableModelField.Type = template.Type{
436+
ImportPath: "database/sql",
437+
AdditionalImportPaths: []string{"github.com/google/uuid"},
438+
Name: "sql.Null[uuid.UUID]",
439+
}
435440
}
436441
return defaultTableModelField
437442
})
@@ -443,10 +448,12 @@ func TestGeneratorTemplate_Model_ChangeFieldTypes(t *testing.T) {
443448
require.Nil(t, err)
444449

445450
data := file2.Exists(t, defaultModelPath, "film.go")
446-
require.Contains(t, data, "\"database/sql\"")
451+
require.Contains(t, data, `"database/sql"`)
452+
require.Contains(t, data, `"github.com/google/uuid"`)
447453
require.Contains(t, data, "Description sql.NullString")
448454
require.Contains(t, data, "ReleaseYear sql.NullInt32")
449455
require.Contains(t, data, "SpecialFeatures sql.NullString")
456+
require.Contains(t, data, "LastUpdate sql.Null[uuid.UUID]")
450457
}
451458

452459
func TestGeneratorTemplate_SQLBuilder_ChangeColumnTypes(t *testing.T) {

0 commit comments

Comments
 (0)