jet/generator/template/model_template_test.go
2025-04-10 09:28:51 -04:00

73 lines
1.4 KiB
Go

package template
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/go-jet/jet/v2/generator/metadata"
)
func Test_TableModelField(t *testing.T) {
require.Equal(t, DefaultTableModelField(metadata.Column{
Name: "col_name",
IsPrimaryKey: true,
IsNullable: true,
DataType: metadata.DataType{
Name: "smallint",
Kind: "base",
IsUnsigned: true,
},
}), TableModelField{
Name: "ColName",
Type: Type{
ImportPath: "",
Name: "*uint16",
},
Tags: []string{"sql:\"primary_key\""},
})
require.Equal(t, DefaultTableModelField(metadata.Column{
Name: "time_column_1",
IsPrimaryKey: false,
IsNullable: true,
DataType: metadata.DataType{
Name: "timestamp with time zone",
Kind: "base",
IsUnsigned: false,
},
}), TableModelField{
Name: "TimeColumn1",
Type: Type{
ImportPath: "time",
Name: "*time.Time",
},
Tags: nil,
})
}
func Test_Model_ShouldSkip(t *testing.T) {
tests := []struct {
name string
initial Model
skip bool
}{
{
name: "True",
initial: Model{Skip: false},
skip: true,
},
{
name: "False",
initial: Model{Skip: true},
skip: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
updatedModel := tt.initial.ShouldSkip(tt.skip)
require.Equal(t, tt.skip, updatedModel.Skip)
})
}
}