package handler

import (
	"fmt"
	"testing"
	"time"

	"github.com/jstemmer/go-junit-report/v2/junit"
	"github.com/pingcap/test-infra/common/model"
	htest "github.com/pingcap/test-infra/services/tcms/tests/httptest"
	"github.com/stretchr/testify/require"
)

func TestToJUnitXml(t *testing.T) {
	report := model.TestReport{
		Suits: []model.SuitReport{
			{
				Name: "plan1",
				Cases: []model.CaseReport{
					{Name: "case1", Time: 3 * time.Second},
					{Name: "case2", Time: 2 * time.Second, Failure: &model.CaseDetail{Message: "exit 2"}}},
			}}}
	xml := toJUnitXml(report)
	fmt.Printf("%v", xml)
}

func TestGetPlanReport(t *testing.T) {
	h := setup(t)
	defer h.Shutdown()
	_, obj := htest.GET[junit.Testsuites](h.Echo, "/api/v1/reports/plan/1", htest.WithUser(1))
	require.Equal(t, "plan1", obj.Suites[0].Name)
	require.Equal(t, "case1", obj.Suites[0].Testcases[0].Name)
}
