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