33 lines
1.0 KiB
Go
33 lines
1.0 KiB
Go
//go:build mysql
|
|
|
|
package mysql
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestEnsureIMFileReviewTablesUsesSelectedTenantDatabase(t *testing.T) {
|
|
exec := &recordingGroupSchemaExecutor{}
|
|
if err := ensureIMFileReviewTables(exec); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(exec.statements) != 1 {
|
|
t.Fatalf("created %d file review tables, want 1", len(exec.statements))
|
|
}
|
|
joined := strings.ToLower(strings.Join(exec.statements, "\n"))
|
|
for _, expected := range []string{
|
|
"im_file_review_tasks",
|
|
"unique index uk_im_file_review_tasks_file_provider(file_id, task_type, provider)",
|
|
"index idx_im_file_review_tasks_pending(status, next_retry_at, id)",
|
|
"index idx_im_file_review_tasks_object(storage_provider, object_name(191))",
|
|
} {
|
|
if !strings.Contains(joined, expected) {
|
|
t.Fatalf("file review schema is missing %q", expected)
|
|
}
|
|
}
|
|
if strings.Contains(joined, "tinode.") || strings.Contains(joined, "create database") || strings.Contains(joined, "tenant_id") {
|
|
t.Fatalf("file review schema must stay inside the selected tenant database: %s", joined)
|
|
}
|
|
}
|