package api

import (
	"testing"

	"github.com/onsi/gomega"
)

// func Test_listDashboards(t *testing.T) {
// 	g := gomega.NewWithT(t)
// 	results, err := listDashboards("../../dashboard/v5.x")
// 	g.Expect(err).To(gomega.Succeed())
// 	g.Expect(len(results) > 1).To(gomega.BeTrue())

// 	for _, v := range results {
// 		fmt.Printf("uid=%s, name=%s\n", v.Uid, v.Title)
// 	}
// }

func Test_GetFileMSize(t *testing.T) {
	g := gomega.NewWithT(t)
	g.Expect(getFileMSize(0)).To(gomega.Equal("0.0B"))
	g.Expect(getFileMSize(1)).To(gomega.Equal("1.0B"))
	g.Expect(getFileMSize(1025)).To(gomega.Equal("1.0KB"))
	g.Expect(getFileMSize(623*1024 + 1)).To(gomega.Equal("623.0KB"))
	g.Expect(getFileMSize(623*1024 + 777)).To(gomega.Equal("623.8KB"))
	g.Expect(getFileMSize(123*1024*1024 + 333)).To(gomega.Equal("123.0MB"))
	g.Expect(getFileMSize(177*1024*1024 + 777335)).To(gomega.Equal("177.7MB"))
	g.Expect(getFileMSize(777*1024*1024*1024 + 177*1024*1024 + 777335)).To(gomega.Equal("777.2GB"))
	g.Expect(getFileMSize(377*1024*1024*1024 + 377*1024*1024 + 777335)).To(gomega.Equal("377.4GB"))
	g.Expect(getFileMSize(377*1024*1024*1024*1024 + 377*1024*1024 + 777335)).To(gomega.Equal("386048.4GB"))
}

func Test_ExcludeLogAndMetricsFileName(t *testing.T) {
	g := gomega.NewWithT(t)
	g.Expect(excludeLogAndMetricsFileName("abc")).To(gomega.Equal("exclude-log-metric-abc"))
	g.Expect(excludeLogAndMetricsFileName("abc.diag")).To(gomega.Equal("abc-exclude-log-metric.diag"))
	g.Expect(excludeLogAndMetricsFileName("abc.diag.tar.gz")).To(gomega.Equal("abc-exclude-log-metric.diag.tar.gz"))
	g.Expect(excludeLogAndMetricsFileName("diag-fMndpTXtZ2F.diag.tar.gz.tar.zst")).To(gomega.Equal("diag-fMndpTXtZ2F-exclude-log-metric.diag.tar.gz.tar.zst"))
	g.Expect(excludeLogAndMetricsFileName("diag-fMndpTXtZ2F.20211103.diag.tar.gz.tar.zst")).To(gomega.Equal("diag-fMndpTXtZ2F-exclude-log-metric.20211103.diag.tar.gz.tar.zst"))
}

func Test_SlowQueyrSortField(t *testing.T) {
	g := gomega.NewWithT(t)

	g.Expect(getSortField("")).To(gomega.Equal("timestamp"))
	g.Expect(getSortField("abc")).To(gomega.Equal("timestamp"))
	g.Expect(getSortField("prewrite_region")).To(gomega.Equal("prewrite_region"))
	g.Expect(getSortField("prewrite_region")).To(gomega.Equal("prewrite_region"))
	g.Expect(getSortField("plan_digest")).To(gomega.Equal("plan_digest.keyword"))
}
