package engine

import "testing"

func TestResolveTopSQLDataSource(t *testing.T) {
	base := "oss://b/prefix/type=topsql/cluster=c1"
	cases := []struct {
		table string
		want  string
	}{
		{"topsql_tidb_123", base + "/component=tidb/"},
		{"topsql_tikv_123", base + "/component=tikv/"},
		{"topsql_plan_meta_123", base + "/component=topsql_plan_meta/"},
		{"topsql_sql_meta_123", base + "/component=topsql_sql_meta/"},
		{"topsql_topru_123", base + "/component=topru/"},
		{"topsql_123", base + "/component=tidb/"},
		{"slow_query_logs_123", base}, // unchanged — must use TrimRight base; Resolve returns baseDataSource
	}
	for _, tc := range cases {
		got := ResolveTopSQLDataSource(base, tc.table)
		if tc.table == "slow_query_logs_123" {
			if got != base {
				t.Fatalf("%s: got %q want %q", tc.table, got, base)
			}
			continue
		}
		if got != tc.want {
			t.Fatalf("%s: got %q want %q", tc.table, got, tc.want)
		}
	}
}
