dex/storage/sql/migrate_test.go
Mark Sagi-Kazar a02f2e8fac
chore: fix lint violations
Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
2022-05-25 11:17:34 +02:00

54 lines
1 KiB
Go

//go:build cgo
// +build cgo
package sql
import (
"database/sql"
"os"
"testing"
sqlite3 "github.com/mattn/go-sqlite3"
"github.com/sirupsen/logrus"
)
func TestMigrate(t *testing.T) {
db, err := sql.Open("sqlite3", ":memory:")
if err != nil {
t.Fatal(err)
}
defer db.Close()
logger := &logrus.Logger{
Out: os.Stderr,
Formatter: &logrus.TextFormatter{DisableColors: true},
Level: logrus.DebugLevel,
}
errCheck := func(err error) bool {
sqlErr, ok := err.(sqlite3.Error)
if !ok {
return false
}
return sqlErr.ExtendedCode == sqlite3.ErrConstraintUnique
}
var sqliteMigrations []migration
for _, m := range migrations {
if m.flavor == nil || m.flavor == &flavorSQLite3 {
sqliteMigrations = append(sqliteMigrations, m)
}
}
c := &conn{db, &flavorSQLite3, logger, errCheck}
for _, want := range []int{len(sqliteMigrations), 0} {
got, err := c.migrate()
if err != nil {
t.Fatal(err)
}
if got != want {
t.Errorf("expected %d migrations, got %d", want, got)
}
}
}