- upd(all): indent spec.json files on all apps - upd(auth): rename auth app to cmd - upd(sam): move orgs, teams to system - upd(system): extend spec.json for check - upd(codegen): include system/ - upd(codegen): always generate spec files - upd(sam): references from auth to system
48 lines
1013 B
Go
48 lines
1013 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/titpetric/dockertest"
|
|
"github.com/titpetric/factory"
|
|
)
|
|
|
|
func TestMigrations(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip("skipping test in short mode.")
|
|
return
|
|
}
|
|
|
|
args := []string{
|
|
"--rm",
|
|
"-e", "MYSQL_ROOT_PASSWORD=root",
|
|
"-e", "MYSQL_DATABASE=test",
|
|
}
|
|
|
|
ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(30*time.Second))
|
|
defer cancel()
|
|
|
|
count := 0
|
|
|
|
mysql, err := dockertest.RunContainerContext(ctx, "titpetric/percona-xtrabackup", "3306", func(addr string) error {
|
|
factory.Database.Add("default", "root:root@tcp("+addr+")/test?collation=utf8mb4_general_ci")
|
|
log.Println(addr)
|
|
_, err := factory.Database.Get()
|
|
count++
|
|
time.Sleep(time.Second)
|
|
return err
|
|
}, args...)
|
|
defer mysql.Terminate() // Shutdown()
|
|
if err != nil {
|
|
t.Fatalf("Error starting mysql: %#v", err)
|
|
}
|
|
|
|
db := factory.Database.MustGet()
|
|
if err := Migrate(db); err != nil {
|
|
t.Fatalf("Unexpected error: %#v", err)
|
|
}
|
|
}
|