Files
new-api-custom/pkg/billingexpr/compile_usage_test.go
T
Codex bb7968b612
Publish Docker image (Multi-arch) / Build & push (amd64) (push) Failing after 9m20s
Release (Linux, macOS, Windows) / Linux Release (push) Failing after 55m7s
Publish Docker image (Multi-arch) / Build & push (arm64) (push) Canceled after 0s
Release (Linux, macOS, Windows) / macOS Release (push) Canceled after 0s
Release (Linux, macOS, Windows) / Windows Release (push) Canceled after 0s
Publish Docker image (Multi-arch) / Create multi-arch manifests (push) Canceled after 0s
feat: publish v1.0.0-rc.36-custom.1
2026-09-11 05:07:48 +08:00

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