anti_degrade_strategies_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. package service
  2. import "testing"
  3. func TestAntiDegradeStrategyProfilesAreStableAndDistinct(t *testing.T) {
  4. profiles := ListAntiDegradeStrategyProfiles()
  5. if len(profiles) < 8 {
  6. t.Fatalf("expected at least 8 strategy profiles, got %d", len(profiles))
  7. }
  8. seen := make(map[AntiDegradeMode]bool, len(profiles))
  9. for _, profile := range profiles {
  10. if profile.ID == "" || profile.Name == "" || profile.Description == "" {
  11. t.Fatalf("incomplete profile: %#v", profile)
  12. }
  13. if seen[profile.ID] {
  14. t.Fatalf("duplicate strategy id %q", profile.ID)
  15. }
  16. seen[profile.ID] = true
  17. }
  18. if antiDegradeStrategyProfile(AntiDegradeModeNative).ApplySupported {
  19. t.Fatal("native baseline must require explicit revert confirmation")
  20. }
  21. if DefaultAntiDegradeMode != AntiDegradeModeLegacy || antiDegradeStrategyProfile(DefaultAntiDegradeMode).DiagnosticOnly {
  22. t.Fatal("legacy must be the default regular strategy")
  23. }
  24. if fp, tls, cap := antiDegradeModeSettings(AntiDegradeModeMinimal); fp != codexFingerprintDevice || tls != "standard" || cap != 8 {
  25. t.Fatalf("minimal profile mismatch: fp=%s tls=%s cap=%d", fp, tls, cap)
  26. }
  27. if fp, tls, cap := antiDegradeModeSettings(AntiDegradeModeLowConcurrency); fp != codexFingerprintSession || tls != "standard" || cap != 4 {
  28. t.Fatalf("low-concurrency profile mismatch: fp=%s tls=%s cap=%d", fp, tls, cap)
  29. }
  30. }