Files
olons_server/internal/store/mysql_test.go
T

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)
}
}