package globalapi

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

	"github.com/gin-gonic/gin"
	"github.com/stretchr/testify/assert"
	"github.com/tidbcloud/observability/pkg/common/structs"
)

func Test_ListClusterExternalAlerts(t *testing.T) {
	w := httptest.NewRecorder()
	c, _ := gin.CreateTestContext(w)

	// set context
	c.Set(structs.GlobalServerRequestParametersKey, requestParameters)

	c.Request = &http.Request{
		Method: http.MethodGet,
		URL: &url.URL{
			Path:     "/api/v1",
			RawQuery: "vendor=aws&region=us-west-2",
		},
	}

	t.Setenv("AWS_ROLE_ARN", "arn:aws:iam::1234567890:role/test")
	t.Setenv("AWS_WEB_IDENTITY_TOKEN_FILE", "./clusterapi_test.go")
	t.Setenv("AWS_REGION", "us-west-2")

	ListClusterExternalAlerts(c)

	assert.Equal(t, http.StatusOK, w.Code)
	assert.NotEmpty(t, w.Body.String())
}
