package proxy

import "testing"

func TestJoinO11yInternalReadPath(t *testing.T) {
	t.Parallel()
	cases := []struct {
		dataplane, prom, want string
	}{
		{
			"/clusters/abc/api/v1/",
			"/api/v1/query_range",
			"/clusters/abc/api/v1/query_range",
		},
		{
			"/clusters/abc/api/v1",
			"/api/v1/query_range",
			"/clusters/abc/api/v1/query_range",
		},
		{
			"/prefix/api/v1/",
			"/api/v1/query",
			"/prefix/api/v1/query",
		},
		{
			"/historical/metrics/api/v1/staging-tidbcloud/orgs/100/projects/200/clusters/300/prometheus/",
			"/api/v1/query_range",
			"/historical/metrics/api/v1/staging-tidbcloud/orgs/100/projects/200/clusters/300/prometheus/query_range",
		},
		{
			"/historical/metrics/api/v1/staging-tidbcloud/orgs/100/projects/200/clusters/300/prometheus/",
			"/api/v1/query",
			"/historical/metrics/api/v1/staging-tidbcloud/orgs/100/projects/200/clusters/300/prometheus/query",
		},
	}
	for _, tc := range cases {
		if got := joinO11yInternalReadPath(tc.dataplane, tc.prom); got != tc.want {
			t.Fatalf("joinO11yInternalReadPath(%q, %q) = %q, want %q", tc.dataplane, tc.prom, got, tc.want)
		}
	}
}
