Files
new-api/pkg/billingexpr/compile_usage_test.go

22 lines
666 B
Go

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",`))
}