package service import ( "net/http/httptest" "testing" "github.com/QuantumNous/new-api/common" "github.com/QuantumNous/new-api/constant" "github.com/QuantumNous/new-api/dto" "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" ) func TestResponseText2UsageSetsLocalCountFlagAndTotals(t *testing.T) { ctx, _ := gin.CreateTestContext(httptest.NewRecorder()) usage := ResponseText2Usage(ctx, "hello", "gpt-5", 3) require.Equal(t, 3, usage.PromptTokens) require.Equal(t, EstimateTokenByModel("gpt-5", "hello"), usage.CompletionTokens) require.Equal(t, usage.PromptTokens+usage.CompletionTokens, usage.TotalTokens) require.True(t, common.GetContextKeyBool(ctx, constant.ContextKeyLocalCountTokens)) } func TestValidUsageRequiresAtLeastOneNonZeroTokenCount(t *testing.T) { require.False(t, ValidUsage(nil)) require.False(t, ValidUsage(&dto.Usage{})) require.True(t, ValidUsage(&dto.Usage{PromptTokens: 1})) require.True(t, ValidUsage(&dto.Usage{CompletionTokens: 1})) }