evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "Evaluates how the solution leverages make-fetch-happen to build a disk-backed fetch wrapper that honors fetch-style cache modes and exposes cache awareness through the API. Focuses solely on correct use of the library's caching options rather than general code quality.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Dependency use",
"description": "Imports and calls make-fetch-happen (or its defaults helper) as the underlying fetch rather than native fetch or manual HTTP handling.",
"max_score": 20
},
{
"name": "cachePath setup",
"description": "Configures the make-fetch-happen client with the provided cache directory via the cachePath option so GET/HEAD responses persist across calls.",
"max_score": 20
},
{
"name": "Cache mode mapping",
"description": "Maps defaultCacheMode/cacheMode inputs to the make-fetch-happen cache option (e.g., \"default\", \"reload\", \"no-cache\", \"only-if-cached\") on each request, falling back correctly when no per-call mode is provided.",
"max_score": 20
},
{
"name": "Reload refresh",
"description": "Uses cache: \"reload\" to bypass cached entries and replace them with the network response, rather than deleting cache files manually or ignoring cachePath.",
"max_score": 15
},
{
"name": "Only-if-cached",
"description": "Uses cache: \"only-if-cached\" so calls without a stored entry reject with the library's cache-miss behavior and calls with an entry serve cached data, marking fromCache via Response.fromCache or x-local-cache headers.",
"max_score": 10
},
{
"name": "No-cache revalidate",
"description": "Uses cache: \"no-cache\" to trigger conditional requests using stored validators and handles 304 vs 200 responses by returning cached bodies or updating the cached entry accordingly.",
"max_score": 15
}
]
}