//go:build mysql package mysql import ( "strings" "testing" ) func TestEnsureIMHTTPInfrastructureTablesUsesSelectedTenantDatabase(t *testing.T) { exec := &recordingGroupSchemaExecutor{} if err := ensureIMHTTPInfrastructureTables(exec); err != nil { t.Fatal(err) } if len(exec.statements) != 8 { t.Fatalf("created %d infrastructure tables, want 8", len(exec.statements)) } joined := strings.ToLower(strings.Join(exec.statements, "\n")) for _, table := range []string{ "im_http_idempotency", "im_business_events_outbox", "im_kafka_consume_log", "im_kafka_outbox", "im_kafka_dead_letters", "im_realname_appeals", "im_conversation_settings", "im_topic_drafts", } { if !strings.Contains(joined, table) { t.Fatalf("missing table %s", table) } } if strings.Contains(joined, "tinode.") || strings.Contains(joined, "create database") || strings.Contains(joined, "tenant_id") { t.Fatalf("infrastructure schema must stay inside the selected tenant database: %s", joined) } }