github.com/lovung/GoCleanArchitecture@v0.0.0-20210302152432-50d91fd29f9f/pkg/testhelper/gorm.go (about)

     1  package testhelper
     2  
     3  import (
     4  	"github.com/DATA-DOG/go-sqlmock"
     5  	"gorm.io/driver/mysql"
     6  	"gorm.io/gorm"
     7  )
     8  
     9  // OpenDBConnection create mock for gorm
    10  func OpenDBConnection() (*gorm.DB, sqlmock.Sqlmock, error) {
    11  	db, mock, err := sqlmock.New()
    12  	if err != nil {
    13  		return nil, nil, err
    14  	}
    15  
    16  	gormDB, err := gorm.Open(mysql.New(mysql.Config{
    17  		Conn:                      db,
    18  		SkipInitializeWithVersion: true,
    19  	}), &gorm.Config{})
    20  
    21  	if err != nil {
    22  		return nil, nil, err
    23  	}
    24  
    25  	return gormDB, mock, nil
    26  }