46 lines
876 B
Go
46 lines
876 B
Go
//go:build mysql
|
|
// +build mysql
|
|
|
|
package mysql
|
|
|
|
import (
|
|
"testing"
|
|
|
|
ms "github.com/go-sql-driver/mysql"
|
|
)
|
|
|
|
func TestNormalizeMySQLDSN(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
dsn string
|
|
user string
|
|
}{
|
|
{
|
|
name: "go driver dsn",
|
|
dsn: "root:secret@tcp(127.0.0.1:3306)/tinode?parseTime=true",
|
|
user: "root",
|
|
},
|
|
{
|
|
name: "url scheme dsn",
|
|
dsn: "mysql://root:secret@tcp(127.0.0.1:3306)/tinode?parseTime=true",
|
|
user: "root",
|
|
},
|
|
{
|
|
name: "legacy scheme dsn",
|
|
dsn: "mysql:root:secret@tcp(127.0.0.1:3306)/tinode?parseTime=true",
|
|
user: "root",
|
|
},
|
|
}
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
cfg, err := ms.ParseDSN(normalizeMySQLDSN(tc.dsn))
|
|
if err != nil {
|
|
t.Fatalf("ParseDSN failed: %v", err)
|
|
}
|
|
if cfg.User != tc.user {
|
|
t.Fatalf("user=%q, want %q", cfg.User, tc.user)
|
|
}
|
|
})
|
|
}
|
|
}
|