package api

import (
	"testing"

	"github.com/pingcap/dbaas/billing2/forms"
	"github.com/shopspring/decimal"
)

func TestFormatExportUsageValue(t *testing.T) {
	tests := []struct {
		name        string
		usageDetail forms.ExportUsageDetails
		want        string
	}{
		{
			name: "empty unit keeps usage blank",
			usageDetail: forms.ExportUsageDetails{
				Usage: decimal.RequireFromString("123.456789"),
			},
			want: "",
		},
		{
			name: "truncates usage to six decimal places",
			usageDetail: forms.ExportUsageDetails{
				Usage: decimal.RequireFromString("123.456789987"),
				Unit:  "RCU",
			},
			want: "123.456789",
		},
		{
			name: "integer usage stays compact",
			usageDetail: forms.ExportUsageDetails{
				Usage: decimal.NewFromInt(2000),
				Unit:  "RU",
			},
			want: "2000",
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			got := formatExportUsageValue(tt.usageDetail, 6)
			if got != tt.want {
				t.Fatalf("expected %q, got %q", tt.want, got)
			}
		})
	}
}
