elements_test.go

 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}