package tests

import (
	"net/http"
	"testing"

	"github.com/gin-gonic/gin"
	"github.com/pingcap/dbaas/billing2/api"
	"github.com/pingcap/dbaas/billing2/forms"
	"github.com/pingcap/dbaas/billing2/utils/ginutils"
	"github.com/pingcap/dbaas/billing2/utils/tests"
	"github.com/stretchr/testify/suite"
)

type DocsTestSuite struct {
	tests.BillingTestSuite
	router            *gin.Engine
	generalUnitFilter *forms.UnitFilter
}

func (suite *DocsTestSuite) SetupTest() {
	suite.BillingTestSuite.SetupTest()

	suite.router = gin.New()
	//suite.router.Use(ginutils.ErrorMiddleWare)
	tests.MockCentralHandler()
	api.InitializeDocRouter(ginutils.MyRoute{Route: suite.router})
}

func TestDocsTestSuite(t *testing.T) {
	suite.Run(t, new(DocsTestSuite))
}
func (suite *DocsTestSuite) TestDocs() {
	assert := suite.Assert()

	w := tests.PerformGetRequest(suite.router, "/swaggerDoc")
	assert.Equal(http.StatusOK, w.Code, w.Body.String())

	w1 := tests.PerformGetRequest(suite.router, "/userManualDoc")
	assert.Equal(http.StatusOK, w1.Code, w1.Body.String())

}
