codegen: move generated test helpers to new 'db_test.go' file
This commit is contained in:
@@ -15,71 +15,6 @@ func GenerateModelTestAST(tbl schema.Table, gomodName string) *ast.File {
|
||||
packageName := "db"
|
||||
testpackageName := packageName + "_test"
|
||||
|
||||
testDBDecl := &ast.GenDecl{
|
||||
Tok: token.VAR,
|
||||
Specs: []ast.Spec{
|
||||
&ast.ValueSpec{
|
||||
Names: []*ast.Ident{ast.NewIdent("TestDB")},
|
||||
Type: &ast.StarExpr{X: ast.NewIdent("DB")},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
initFuncDecl := &ast.FuncDecl{
|
||||
Name: ast.NewIdent("init"),
|
||||
Type: &ast.FuncType{Params: &ast.FieldList{}},
|
||||
Body: &ast.BlockStmt{
|
||||
List: []ast.Stmt{
|
||||
&ast.AssignStmt{
|
||||
Lhs: []ast.Expr{ast.NewIdent("TestDB")},
|
||||
Tok: token.ASSIGN,
|
||||
Rhs: []ast.Expr{&ast.CallExpr{
|
||||
Fun: ast.NewIdent("MakeDB"),
|
||||
Args: []ast.Expr{&ast.BasicLit{Kind: token.STRING, Value: `"tmp"`}},
|
||||
}},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
makeDBHelperDecl := &ast.FuncDecl{
|
||||
Name: ast.NewIdent("MakeDB"),
|
||||
Type: &ast.FuncType{
|
||||
Params: &ast.FieldList{
|
||||
List: []*ast.Field{{
|
||||
Names: []*ast.Ident{ast.NewIdent("dbName")},
|
||||
Type: ast.NewIdent("string"),
|
||||
}},
|
||||
},
|
||||
Results: &ast.FieldList{
|
||||
List: []*ast.Field{{Type: &ast.StarExpr{X: ast.NewIdent("DB")}}},
|
||||
},
|
||||
},
|
||||
Body: &ast.BlockStmt{
|
||||
List: []ast.Stmt{
|
||||
// db := Must(Create(fmt.Sprintf("file:%s?mode=memory&cache=shared", dbName)))
|
||||
&ast.AssignStmt{
|
||||
Lhs: []ast.Expr{ast.NewIdent("db")},
|
||||
Tok: token.DEFINE,
|
||||
Rhs: []ast.Expr{mustCall(&ast.CallExpr{
|
||||
Fun: ast.NewIdent("Create"),
|
||||
Args: []ast.Expr{&ast.CallExpr{
|
||||
Fun: &ast.SelectorExpr{X: ast.NewIdent("fmt"), Sel: ast.NewIdent("Sprintf")},
|
||||
Args: []ast.Expr{
|
||||
&ast.BasicLit{Kind: token.STRING, Value: `"file:%s?mode=memory&cache=shared"`},
|
||||
ast.NewIdent("dbName"),
|
||||
},
|
||||
}},
|
||||
})},
|
||||
},
|
||||
// return db
|
||||
&ast.ReturnStmt{
|
||||
Results: []ast.Expr{ast.NewIdent("db")},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// func MakeItem() Item { return Item{} }
|
||||
makeItemFunc := &ast.FuncDecl{
|
||||
Name: ast.NewIdent("Make" + tbl.GoTypeName),
|
||||
@@ -364,16 +299,7 @@ func GenerateModelTestAST(tbl schema.Table, gomodName string) *ast.File {
|
||||
}
|
||||
|
||||
testList := []ast.Decl{
|
||||
// var TestDB *DB
|
||||
testDBDecl,
|
||||
makeItemFunc,
|
||||
|
||||
// func init() { TestDB = MakeDB("tmp") }
|
||||
initFuncDecl,
|
||||
|
||||
// func MakeDB(dbName string) *DB { db := Must(Create(fmt.Sprintf("file:%s?mode=memory&cache=shared", dbName))); return db }
|
||||
makeDBHelperDecl,
|
||||
|
||||
testCreateUpdateDelete,
|
||||
testGetAll,
|
||||
}
|
||||
@@ -386,7 +312,6 @@ func GenerateModelTestAST(tbl schema.Table, gomodName string) *ast.File {
|
||||
&ast.GenDecl{
|
||||
Tok: token.IMPORT,
|
||||
Specs: []ast.Spec{
|
||||
&ast.ImportSpec{Path: &ast.BasicLit{Kind: token.STRING, Value: `"fmt"`}},
|
||||
&ast.ImportSpec{Path: &ast.BasicLit{Kind: token.STRING, Value: `"testing"`}},
|
||||
&ast.ImportSpec{
|
||||
Path: &ast.BasicLit{Kind: token.STRING, Value: `"git.offline-twitter.com/offline-labs/gas-stack/pkg/db"`},
|
||||
|
||||
Reference in New Issue
Block a user