{
  "slug": "wrangler-createtestharness-exposes-per-worker-resource-accessors-2edb85540bdb",
  "title": "wrangler createTestHarness exposes per-Worker resource accessors",
  "tools": [
    "wrangler"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-06-16T15:36:57.000Z",
  "announced_at": "2026-06-16T15:36:57.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When testing a Worker with configured KV, R2, D1, or Durable Object bindings, call `server.getWorker(name)` and use that handle’s accessor for the binding.",
    "examples": [
      "import { createTestHarness } from \"wrangler\";\n\nconst server = createTestHarness({ workers: [{ configPath: \"<wrangler-config-path>\" }] });\nconst worker = server.getWorker(\"<worker-name>\");\nconst kv = await worker.getKVNamespace(\"<KV-binding>\");\nconst bucket = await worker.getR2Bucket(\"<R2-binding>\");\nconst db = await worker.getD1Database(\"<D1-binding>\");\nconst objects = await worker.getDurableObjectNamespace(\"<DO-binding>\");"
    ],
    "gotchas": [
      "Version: 4.101.0",
      "server.getWorker(name): Returns a handle for the named Worker; without a name, returns the primary Worker.",
      "bindingName (required): Binding name passed to `getKVNamespace`, `getR2Bucket`, `getD1Database`, or `getDurableObjectNamespace`; returns that configured resource on this Worker.",
      "Prerequisite: Create the harness with at least one Worker; the resource must be configured on the selected Worker.",
      "Accessors are for configured KV namespaces, R2 buckets, D1 databases, and Durable Object namespaces.",
      "Resources are scoped to the specific Worker returned by `server.getWorker(name)`. The source does not name accessor methods for KV namespaces or Durable Object namespaces."
    ]
  },
  "why_it_matters": "Test a Worker that uses configured KV, R2, D1, or Durable Object resources.",
  "sources": [
    "https://github.com/cloudflare/workers-sdk/releases/tag/wrangler%404.101.0",
    "https://github.com/cloudflare/workers-sdk/blob/41f391fdda4112ee333782aad02d16dacaa95f8f/packages/wrangler/src/api/test-harness.ts"
  ],
  "rank": 0.97021,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v1+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "backfill-20261007",
    "verdict_id": "backfill-20261007:backfill-20261007-54bffe1864378a09-1:gate",
    "evidence_hash": "0a992b44516bd1a709411b1d042d151678de84495a0a854904679e178c6f0f86"
  },
  "review": {
    "draft_hash": "125d06d2a03390f8b3eba4ba56d9b2f33944b31b5cd41057e32834a3fb6a1203",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "backfill-20261007:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.71 (>= 0.6 needed)."
  }
}
