fix: route workbench requests to tenant database

This commit is contained in:
richjohnrambo
2026-09-17 18:32:26 +08:00
parent dd5986d57a
commit 9cfeb5f2c7
3 changed files with 224 additions and 72 deletions
+30
View File
@@ -0,0 +1,30 @@
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)
}
}