Files
NianAIGC/backend/internal/billing/defaults_test.go
2026-09-23 15:10:13 +08:00

63 lines
2.1 KiB
Go

package billing
import "testing"
func TestDefaultBillingPriceRulesFreezeOfficialCatalogMatchKeys(t *testing.T) {
rules := DefaultBillingPriceRules()
want := map[string]bool{
"base-volcengine-jimeng-seedream46": false,
"base-evolink-gpt-image-2": false,
"base-evolink-gpt-image-2.5-flare": false,
"base-evolink-gpt-image-2.5-sunburst": false,
"base-bailian-wan27-image-pro": false,
"base-seedream-5-0-pro": false,
"base-seedream-5-0-pro-layers": false,
"base-bailian-wan27-i2v-720p": false,
"base-bailian-wan27-i2v-1080p": false,
"base-seedance-2-0-480p": false,
"base-seedance-2-0-720p": false,
"base-seedance-2-0-1080p": false,
"base-seedance-2-0-4k": false,
"base-seedance-2-5-480p": false,
"base-seedance-2-5-720p": false,
"base-seedance-2-5-1080p": false,
"base-minimax-h3-768p": false,
"base-minimax-h3-2k": false,
}
for _, rule := range rules {
if _, ok := want[rule.ID]; !ok {
t.Fatalf("unexpected default rule %q", rule.ID)
}
want[rule.ID] = true
if !rule.Enabled || rule.MarkupMultiplier != 1.2 || rule.StandardUnitPriceFen <= 0 {
t.Fatalf("invalid default rule %#v", rule)
}
}
for id, found := range want {
if !found {
t.Errorf("missing default rule %q", id)
}
}
}
func TestDefaultEvoLinkBillingSupportsThreeByFourAspectRatio(t *testing.T) {
for _, rule := range DefaultBillingPriceRules() {
if rule.Provider != "evolink" || rule.Capability != "image.generate" {
continue
}
for _, dimension := range rule.Dimensions {
if dimension.Key != "aspectRatio" {
continue
}
for _, tier := range dimension.Tiers {
if tier.Value == "3:4" && tier.Enabled && tier.StandardFactor == 1 {
return
}
}
t.Fatal("evolink aspectRatio dimension does not contain an enabled 3:4 tier with factor 1")
}
t.Fatal("evolink billing rule does not contain an aspectRatio dimension")
}
t.Fatal("default evolink image billing rule is missing")
}