//go:build mysql // +build mysql package mysql import ( "strings" "testing" ) func TestEnsureIMAdminGovernanceTablesUsesSelectedTenantDatabase(t *testing.T) { exec := &recordingGroupSchemaExecutor{} if err := ensureIMAdminGovernanceTables(exec); err != nil { t.Fatal(err) } if len(exec.statements) != 5 { t.Fatalf("created %d admin governance tables, want 5", len(exec.statements)) } joined := strings.ToLower(strings.Join(exec.statements, "\n")) for _, table := range []string{"im_user_login_logs", "im_login_failure_logs", "im_login_lockouts", "im_message_admin_actions", "im_user_ip_whitelists"} { 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("admin governance schema must stay inside the selected tenant database: %s", joined) } }