evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "Evaluates whether the redirect-aware client relies on make-fetch-happen's built-in redirect controls to meet the spec. Checks cover follow/manual/error modes, redirect limits, and method normalization across protocol switches without reimplementing redirect logic.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Follow mode",
"description": "Configures make-fetch-happen with redirect: 'follow' (and optional follow count) to traverse http->https chains, using the library's Response.url/redirected handling instead of manual HTTP requests.",
"max_score": 30
},
{
"name": "Manual mode",
"description": "Uses redirect: 'manual' so 302 responses surface without being followed, extracting the Location header from the Response while ensuring no secondary request is issued.",
"max_score": 20
},
{
"name": "Error mode",
"description": "Sets redirect: 'error' to reject on 3xx redirects and propagates the make-fetch-happen FetchError details (e.g., code ENOREDIRECT/type 'no-redirect') rather than custom redirect handling.",
"max_score": 20
},
{
"name": "Redirect limit",
"description": "Maps the spec's maxRedirects to the follow option so make-fetch-happen enforces hop limits, surfacing EMAXREDIRECT when the chain exceeds the limit instead of custom counters.",
"max_score": 15
},
{
"name": "Method normalization",
"description": "Relies on make-fetch-happen's redirect semantics that convert POST 303/301/302 to GET with body dropped on redirected requests, avoiding manual resubmission of the original body.",
"max_score": 15
}
]
}