mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-01-23 04:48:17 -05:00
58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
package migrate
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/jmoiron/sqlx"
|
|
_ "github.com/lib/pq"
|
|
"github.com/pressly/goose/v3"
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"scroll-tech/common/utils"
|
|
|
|
"scroll-tech/common/docker"
|
|
|
|
"scroll-tech/database"
|
|
docker_db "scroll-tech/database/docker"
|
|
)
|
|
|
|
var (
|
|
pgDB *sqlx.DB
|
|
img docker.ImgInstance
|
|
)
|
|
|
|
func initEnv(t *testing.T) {
|
|
img = docker_db.NewImgDB(t, "postgres", "123456", "test_1", 5434)
|
|
assert.NoError(t, img.Start())
|
|
|
|
var err error
|
|
factory, err := database.NewOrmFactory(&database.DBConfig{
|
|
DriverName: utils.GetEnvWithDefault("TEST_DB_DRIVER", "postgres"),
|
|
DSN: img.Endpoint(),
|
|
})
|
|
assert.NoError(t, err)
|
|
pgDB = factory.GetDB()
|
|
}
|
|
|
|
func TestMegration(t *testing.T) {
|
|
initEnv(t)
|
|
defer img.Stop()
|
|
|
|
err := Migrate(pgDB.DB)
|
|
assert.NoError(t, err)
|
|
|
|
db := pgDB.DB
|
|
version0, err := goose.GetDBVersion(db)
|
|
assert.NoError(t, err)
|
|
t.Log("current version is ", version0)
|
|
|
|
// rollback one version
|
|
assert.NoError(t, Rollback(db, nil))
|
|
|
|
version1, err := Current(db)
|
|
assert.NoError(t, err)
|
|
|
|
// check version expect less than 1
|
|
assert.Equal(t, version0-1, version1)
|
|
}
|