account_concurrency_editable_test.go 1.2 KB

123456789101112131415161718192021222324252627282930
  1. package service
  2. import (
  3. "context"
  4. "github.com/stretchr/testify/require"
  5. "testing"
  6. )
  7. func TestAllProtectionStrategiesKeepEditableConcurrency(t *testing.T) {
  8. for _, raw := range RegisteredProtectionModes() {
  9. t.Run(raw, func(t *testing.T) {
  10. a := &Account{ID: 42, Platform: PlatformOpenAI, Type: AccountTypeOAuth, Concurrency: 64}
  11. PrepareNewAccountProtection(a)
  12. require.Equal(t, 64, a.Concurrency)
  13. admin, protection := protectionRegressionServices(a)
  14. configured, err := protection.ApplyAntiDegradeMode(context.Background(), 42, AntiDegradeMode(raw))
  15. require.NoError(t, err)
  16. require.Equal(t, 64, configured.Mode1EffectiveConcurrency(), "selecting a strategy does not restore its preset concurrency")
  17. wanted := 128
  18. updated, err := admin.UpdateAccount(context.Background(), 42, &UpdateAccountInput{Concurrency: &wanted})
  19. require.NoError(t, err)
  20. require.Equal(t, wanted, updated.Concurrency)
  21. require.Equal(t, wanted, updated.Mode1EffectiveConcurrency())
  22. require.NoError(t, ValidateAccountProtectionConfiguration(updated))
  23. restored, err := protection.RevertAntiDegrade(context.Background(), 42)
  24. require.NoError(t, err)
  25. require.Equal(t, wanted, restored.Concurrency)
  26. })
  27. }
  28. }