31 lines
997 B
Go
31 lines
997 B
Go
package store
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestTenantDSNUsesConfiguredDSN(t *testing.T) {
|
|
got, err := tenantDSN("root:pass@tcp(127.0.0.1:3306)/tinode?parseTime=true", "", "mysql:user:secret@tcp(db:3306)/meeting_im?parseTime=true")
|
|
if err != nil {
|
|
t.Fatalf("tenantDSN returned error: %v", err)
|
|
}
|
|
want := "user:secret@tcp(db:3306)/meeting_im?parseTime=true"
|
|
if got != want {
|
|
t.Fatalf("tenantDSN = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestTenantDSNDerivesDBName(t *testing.T) {
|
|
got, err := tenantDSN("root:pass@tcp(127.0.0.1:3306)/tinode?charset=utf8mb4&parseTime=true&loc=Local", "meeting_im", "")
|
|
if err != nil {
|
|
t.Fatalf("tenantDSN returned error: %v", err)
|
|
}
|
|
if got == "" || got == "root:pass@tcp(127.0.0.1:3306)/tinode?charset=utf8mb4&parseTime=true&loc=Local" {
|
|
t.Fatalf("tenantDSN did not derive a tenant database DSN: %q", got)
|
|
}
|
|
if parsed := "meeting_im"; !strings.Contains(got, "/"+parsed+"?") {
|
|
t.Fatalf("tenantDSN = %q, want database %q", got, parsed)
|
|
}
|
|
}
|