CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-xmlhttprequest

XMLHttpRequest for Node.js that emulates the browser XMLHttpRequest object

Overall
score

75%

Overview
Eval results
Files

rubric.jsonevals/scenario-4/

{
  "context": "Evaluates how the solution uses the xmlhttprequest package to perform redirect-aware HTTP requests that match the spec, relying on its automatic handling of 301/302/303/307 responses and capturing the redirect chain.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "XMLHttpRequest usage",
      "description": "Imports the xmlhttprequest package and instantiates its XMLHttpRequest class as the primary client for all requests instead of other HTTP libraries.",
      "max_score": 20
    },
    {
      "name": "Open/send flow",
      "description": "Configures requests via xhr.open with the provided method and url, attaches ready state or load handlers, sets headers through setRequestHeader, and waits for xhr.status/xhr.responseText at DONE before resolving.",
      "max_score": 20
    },
    {
      "name": "Built-in redirects",
      "description": "Relies on xmlhttprequest's automatic redirect following for 301/302/303/307 responses (no custom Location parsing loops) and surfaces the final status/body from the redirected response, including the final xhr.responseURL.",
      "max_score": 30
    },
    {
      "name": "Redirect history",
      "description": "Tracks each hop using xmlhttprequest data—such as successive xhr.responseURL values or Location headers via getResponseHeader—building an ordered history that includes the starting and final URLs.",
      "max_score": 15
    },
    {
      "name": "303 vs 307 semantics",
      "description": "Allows xmlhttprequest to switch a 303 redirect to a GET without a body while keeping method and body intact for 307 redirects, avoiding manual overrides that would break those semantics.",
      "max_score": 15
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-xmlhttprequest

tile.json