claude_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package model_setting
  2. import (
  3. "net/http"
  4. "testing"
  5. )
  6. func TestClaudeSettingsWriteHeadersMergesConfiguredValuesIntoSingleHeader(t *testing.T) {
  7. settings := &ClaudeSettings{
  8. HeadersSettings: map[string]map[string][]string{
  9. "claude-3-7-sonnet-20250219-thinking": {
  10. "anthropic-beta": {
  11. "token-efficient-tools-2025-02-19",
  12. },
  13. },
  14. },
  15. }
  16. headers := http.Header{}
  17. headers.Set("anthropic-beta", "output-128k-2025-02-19")
  18. settings.WriteHeaders("claude-3-7-sonnet-20250219-thinking", &headers)
  19. got := headers.Values("anthropic-beta")
  20. if len(got) != 1 {
  21. t.Fatalf("expected a single merged header value, got %v", got)
  22. }
  23. expected := "output-128k-2025-02-19,token-efficient-tools-2025-02-19"
  24. if got[0] != expected {
  25. t.Fatalf("expected merged header %q, got %q", expected, got[0])
  26. }
  27. }
  28. func TestClaudeSettingsWriteHeadersDeduplicatesAcrossCommaSeparatedAndRepeatedValues(t *testing.T) {
  29. settings := &ClaudeSettings{
  30. HeadersSettings: map[string]map[string][]string{
  31. "claude-3-7-sonnet-20250219-thinking": {
  32. "anthropic-beta": {
  33. "token-efficient-tools-2025-02-19",
  34. "computer-use-2025-01-24",
  35. },
  36. },
  37. },
  38. }
  39. headers := http.Header{}
  40. headers.Add("anthropic-beta", "output-128k-2025-02-19, token-efficient-tools-2025-02-19")
  41. headers.Add("anthropic-beta", "token-efficient-tools-2025-02-19")
  42. settings.WriteHeaders("claude-3-7-sonnet-20250219-thinking", &headers)
  43. got := headers.Values("anthropic-beta")
  44. if len(got) != 1 {
  45. t.Fatalf("expected duplicate values to collapse into one header, got %v", got)
  46. }
  47. expected := "output-128k-2025-02-19,token-efficient-tools-2025-02-19,computer-use-2025-01-24"
  48. if got[0] != expected {
  49. t.Fatalf("expected deduplicated merged header %q, got %q", expected, got[0])
  50. }
  51. }