Ctrl K
ComunidadGuías…

pkg/billingexpr/compile_usage_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package billingexpr_test

import (
	"testing"

	"github.com/QuantumNous/new-api/pkg/billingexpr"
	"github.com/stretchr/testify/assert"
)

func TestUsedUsageKeysExtractsLiteralCallsAndSkipsDynamicArguments(t *testing.T) {
	expression := `tier("base", u(" seconds ") * 0.4 + (u("clips") > 0 ? u("clips") * 0.1 : 0)) + (u(header("usage-key")) == nil ? 0 : 0)`

	keys := billingexpr.UsedUsageKeys(expression)

	assert.Equal(t, map[string]bool{"seconds": true, "clips": true}, keys)
}

func TestUsedUsageKeysReturnsNilForEmptyOrInvalidExpressions(t *testing.T) {
	assert.Nil(t, billingexpr.UsedUsageKeys(""))
	assert.Nil(t, billingexpr.UsedUsageKeys(`tier("broken",`))
}