mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-01 19:41:57 +00:00
22 lines
666 B
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",`))
|
|
}
|