1package common
2
3import (
4 "strings"
5 "testing"
6
7 "github.com/charmbracelet/crush/internal/ui/styles"
8 "github.com/charmbracelet/x/ansi"
9 "github.com/stretchr/testify/require"
10)
11
12func TestFormatTokensAndCostPrefixesEstimatedUsage(t *testing.T) {
13 t.Parallel()
14
15 sty := styles.CharmtonePantera()
16
17 rendered := formatTokensAndCost(&sty, 120, 1000, 0, true)
18 actual := ansi.Strip(rendered)
19
20 require.Contains(t, actual, "~12%")
21 require.Contains(t, actual, "(120)")
22 require.Contains(t, actual, "$0.00")
23 require.True(t, strings.Contains(rendered, sty.ModelInfo.TokenPercentage.Render("~12%")))
24}
25
26func TestFormatTokensAndCostOmitsEstimatedPrefix(t *testing.T) {
27 t.Parallel()
28
29 sty := styles.CharmtonePantera()
30
31 actual := ansi.Strip(formatTokensAndCost(&sty, 120, 1000, 0, false))
32
33 require.Contains(t, actual, "12%")
34 require.NotContains(t, actual, "~12%")
35}