package mesh

import (
	"net/http"
	"net/url"
	"testing"

	. "github.com/smartystreets/goconvey/convey"
	"github.com/stretchr/testify/require"
)

func TestGetByBaseURL(t *testing.T) {
	var err error
	baseURL := "https://host/proxy/cluster/6"
	req := &http.Request{URL: &url.URL{}}

	req.URL.Path = "cluster/6/pd/dashboard/"
	_, _, err = getByBaseURL(req, baseURL)
	require.Nil(t, err)
	require.Equal(t, "/proxy/cluster/6/pd/dashboard/", req.URL.Path)

	baseURL = "https://host/proxy/cluster/6/prometheus"
	req.URL.Path = "cluster/6/prometheus/api/ff/kk"
	_, _, err = getByBaseURL(req, baseURL)
	require.Nil(t, err)
	require.Equal(t, "/proxy/cluster/6/prometheus/api/ff/kk", req.URL.Path)
}

func Test_pingcapEmail(t *testing.T) {
	Convey("Test_pingcapEmail", t, func() {
		So(pingcapEmail(""), ShouldBeFalse)
		So(pingcapEmail("a@"), ShouldBeFalse)
		So(pingcapEmail("a@abc.com"), ShouldBeFalse)
		So(pingcapEmail("a@pingcap.com"), ShouldBeTrue)
		So(pingcapEmail("@pingcap.com"), ShouldBeTrue)
		So(pingcapEmail("a@pingcap.com@pingcap.com"), ShouldBeTrue)
		So(pingcapEmail("a@pingcap.com@pingcap"), ShouldBeTrue)
	})
}
