or run

tessl search
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-1/

{
  "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
    }
  ]
}