34 lines
935 B
Go
34 lines
935 B
Go
//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) != 5 {
|
|
t.Fatalf("created %d infrastructure tables, want 5", len(exec.statements))
|
|
}
|
|
joined := strings.ToLower(strings.Join(exec.statements, "\n"))
|
|
for _, table := range []string{
|
|
"im_http_idempotency",
|
|
"im_business_events_outbox",
|
|
"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)
|
|
}
|
|
}
|