package executor

import (
	"context"
	"strings"
	"testing"

	"github.com/everything-on-mysql/cassandra-on-mysql/pkg/cql/parser"
)

func TestExecuteCreateIndexAllowsCustom(t *testing.T) {
	exec := &Executor{}
	stmt := &parser.CreateIndexStatement{
		Custom:     true,
		UsingClass: "sai",
		Options:    map[string]interface{}{"mode": "CONTAINS"},
		Table: &parser.TableName{
			Schema: "ks",
			Name:   "tbl",
		},
		Columns: []string{"col"},
	}

	_, err := exec.executeCreateIndex(context.Background(), "user", "pass", stmt)
	if err == nil {
		t.Fatalf("expected error due to missing schema manager")
	}
	if strings.Contains(err.Error(), "custom indexes are not supported") {
		t.Fatalf("unexpected custom index rejection: %v", err)
	}
	if !strings.Contains(err.Error(), "schema manager is not configured") {
		t.Fatalf("unexpected error: %v", err)
	}
}
