Files
descrybe/apps/api/internal/billing/cost_test.go
T
greeneclipse 8580c996c3 Initial commit of Descrybe v2 without local scratch artifacts.
Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
2026-08-09 22:47:43 +02:00

48 lines
943 B
Go

package billing
import "testing"
func TestTokenPackMath(t *testing.T) {
// Mirrors DebitAmount pack math: ceil(tokens/1000).
cases := []struct {
tokens int
packs int
}{
{0, 0},
{1, 1},
{1000, 1},
{1001, 2},
{2500, 3},
}
for _, c := range cases {
packs := 0
if c.tokens > 0 {
packs = (c.tokens + 999) / 1000
}
got := DebitAmount(1, 1, c.tokens)
want := 1 + packs
if got != want {
t.Fatalf("tokens=%d DebitAmount=%d want %d (packs=%d)", c.tokens, got, want, packs)
}
}
}
func TestEstimateDebitMath(t *testing.T) {
// Pure pack math aligned with EstimateDebit / ConsumeCredits (costs=1).
cases := []struct {
featureTokens int
want int
}{
{0, 1}, // base feature cost only
{1, 2},
{1000, 2},
{1001, 3},
}
for _, c := range cases {
got := DebitAmount(1, 1, c.featureTokens)
if got != c.want {
t.Fatalf("tokens=%d debit=%d want %d", c.featureTokens, got, c.want)
}
}
}