File size: 883 Bytes
8d3471e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package claude

import (
	"encoding/json"
	"net/http"
	"net/http/httptest"
	"testing"
)

func TestWriteClaudeErrorIncludesUnifiedFields(t *testing.T) {
	rec := httptest.NewRecorder()
	writeClaudeError(rec, http.StatusUnauthorized, "bad token")
	if rec.Code != http.StatusUnauthorized {
		t.Fatalf("expected 401, got %d", rec.Code)
	}

	var body map[string]any
	if err := json.Unmarshal(rec.Body.Bytes(), &body); err != nil {
		t.Fatalf("decode body: %v", err)
	}
	errObj, _ := body["error"].(map[string]any)
	if errObj["message"] != "bad token" {
		t.Fatalf("unexpected message: %v", errObj["message"])
	}
	if errObj["type"] != "invalid_request_error" {
		t.Fatalf("unexpected type: %v", errObj["type"])
	}
	if errObj["code"] != "authentication_failed" {
		t.Fatalf("unexpected code: %v", errObj["code"])
	}
	if _, ok := errObj["param"]; !ok {
		t.Fatal("expected param field")
	}
}