Refactor select test
This commit is contained in:
parent
f40688cfe3
commit
ad1b588fd4
1 changed files with 16 additions and 32 deletions
|
@ -3,43 +3,27 @@
|
|||
{{- $varNamePlural := .Table.Name | plural | camelCase -}}
|
||||
{{- $varNameSingular := .Table.Name | singular | camelCase -}}
|
||||
func Test{{$tableNamePlural}}Select(t *testing.T) {
|
||||
// Only run this test if there are ample cols to test on
|
||||
if len({{$varNameSingular}}AutoIncrementColumns) == 0 {
|
||||
return
|
||||
{{$varNameSingular}} := &{{$tableNameSingular}}{}
|
||||
if err := boil.RandomizeStruct({{$varNameSingular}}, {{$varNameSingular}}DBTypes, true, {{$varNameSingular}}ColumnsWithDefault...); err != nil {
|
||||
t.Errorf("Unable to randomize {{$tableNameSingular}} slice: %s", err)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
x := &struct{
|
||||
{{- $colNames := .Table.Columns | filterColumnsByAutoIncrement true | columnNames }}
|
||||
{{ $colTypes := .Table.Columns | filterColumnsByAutoIncrement true | columnTypes }}
|
||||
{{range $index, $element := $colNames}}
|
||||
{{$element | titleCase}} {{index $colTypes $index}}
|
||||
{{end}}
|
||||
}{}
|
||||
|
||||
item := {{$tableNameSingular}}{}
|
||||
|
||||
blacklistCols := strmangle.SetMerge({{$varNameSingular}}AutoIncrementColumns, {{$varNameSingular}}PrimaryKeyColumns)
|
||||
if err = boil.RandomizeStruct(&item, {{$varNameSingular}}DBTypes, false, blacklistCols...); err != nil {
|
||||
t.Errorf("Unable to randomize {{$tableNameSingular}} struct: %s", err)
|
||||
}
|
||||
|
||||
if err = item.InsertG(); err != nil {
|
||||
t.Errorf("Unable to insert item {{$tableNameSingular}}:\n%#v\nErr: %s", item, err)
|
||||
}
|
||||
|
||||
err = {{$tableNamePlural}}G(qm.Select({{$varNameSingular}}AutoIncrementColumns...), qm.Where(`{{whereClause 1 .Table.PKey.Columns}}`, {{.Table.PKey.Columns | stringMap .StringFuncs.titleCase | prefixStringSlice "item." | join ", "}})).Bind(x)
|
||||
tx, err := boil.Begin()
|
||||
if err != nil {
|
||||
t.Errorf("Unable to select insert results with bind: %s", err)
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer tx.Rollback()
|
||||
|
||||
if err = {{$varNameSingular}}.Insert(tx); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
{{range $index, $element := $colNames }}
|
||||
{{$e := titleCase $element}}
|
||||
if item.{{$e}} != x.{{$e}} || x.{{$e}} == {{index $colTypes $index}}(0) {
|
||||
t.Errorf("Expected item.{{$e}} to match x.{{$e}}, but got: %v, %v", item.{{$e}}, x.{{$e}})
|
||||
slice, err := {{$tableNamePlural}}(tx).All()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
{{end}}
|
||||
|
||||
{{$varNamePlural}}DeleteAllRows(t)
|
||||
if len(slice) != 1 {
|
||||
t.Error("want one record, got:", len(slice))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue