@@ -118,7 +118,7 @@ func formatTokensAndCost(t *styles.Styles, tokens, contextWindow int64, cost flo
formattedTokens = t.ModelInfo.TokenCount.Render(fmt.Sprintf("(%s)", formattedTokens))
percentageText := fmt.Sprintf("%d%%", int(percentage))
if estimated {
- percentageText = t.ModelInfo.EstimatedUsagePrefix.Render("~") + percentageText
+ percentageText = "~" + percentageText
}
formattedPercentage := t.ModelInfo.TokenPercentage.Render(percentageText)
formattedTokens = fmt.Sprintf("%s %s", formattedPercentage, formattedTokens)
@@ -1,6 +1,7 @@
package common
import (
+ "strings"
"testing"
"github.com/charmbracelet/crush/internal/ui/styles"
@@ -13,11 +14,13 @@ func TestFormatTokensAndCostPrefixesEstimatedUsage(t *testing.T) {
sty := styles.CharmtonePantera()
- actual := ansi.Strip(formatTokensAndCost(&sty, 120, 1000, 0, true))
+ rendered := formatTokensAndCost(&sty, 120, 1000, 0, true)
+ actual := ansi.Strip(rendered)
require.Contains(t, actual, "~12%")
require.Contains(t, actual, "(120)")
require.Contains(t, actual, "$0.00")
+ require.True(t, strings.Contains(rendered, sty.ModelInfo.TokenPercentage.Render("~12%")))
}
func TestFormatTokensAndCostOmitsEstimatedPrefix(t *testing.T) {
@@ -150,7 +150,7 @@ func renderHeaderDetails(
percentage := (float64(session.CompletionTokens+session.PromptTokens) / float64(model.ContextWindow)) * 100
percentageText := fmt.Sprintf("%d%%", int(percentage))
if session.EstimatedUsage {
- percentageText = t.ModelInfo.EstimatedUsagePrefix.Render("~") + percentageText
+ percentageText = "~" + percentageText
}
formattedPercentage := t.Header.Percentage.Render(percentageText)
parts = append(parts, formattedPercentage)