package dialect

import (
	"strings"
	"testing"
)

func TestRewriteForEngineSynapseLimitToTop(t *testing.T) {
	got, err := RewriteForEngine(`SELECT digest FROM slow_query_logs WHERE date IN ('20260226') LIMIT 3`, "synapse", nil)
	if err != nil {
		t.Fatalf("RewriteForEngine() error = %v", err)
	}
	if !strings.Contains(got, `select top 3 "digest"`) {
		t.Fatalf("rewritten SQL = %q", got)
	}
	if strings.Contains(strings.ToLower(got), "limit") {
		t.Fatalf("rewritten SQL still contains LIMIT: %q", got)
	}
}

func TestRewriteForEngineSynapseWithLimitToTop(t *testing.T) {
	got, err := RewriteForEngine(`WITH base AS (SELECT digest FROM slow_query_logs WHERE date IN ('20260226')) SELECT digest FROM base LIMIT 5`, "synapse", nil)
	if err != nil {
		t.Fatalf("RewriteForEngine() error = %v", err)
	}
	if !strings.Contains(got, `select top 5 "digest" from "base"`) {
		t.Fatalf("rewritten SQL = %q", got)
	}
}
