{"_id":"@buzzr/dfs-testkit","_rev":"7-b4aa13f63131ce9b4b119f6acb0b400d","name":"@buzzr/dfs-testkit","dist-tags":{"latest":"5.0.1"},"versions":{"2.0.0":{"name":"@buzzr/dfs-testkit","version":"2.0.0","author":{"name":"Sarvesh Chidambaram"},"license":"MIT","_id":"@buzzr/dfs-testkit@2.0.0","maintainers":[{"name":"sarveshsea","email":"sarveshjax@gmail.com"}],"dist":{"shasum":"b74a49997bdd1385bde70b00a2580581b351a7b2","tarball":"https://registry.npmjs.org/@buzzr/dfs-testkit/-/dfs-testkit-2.0.0.tgz","fileCount":9,"integrity":"sha512-loeGqokTkD4ApRdU4SQS2SfwF/Jx+XTgBzDZEZDQhhYv2uIJPVlbmvYMj1To9YjryueGP6dOF9nHCoMfi0czFw==","signatures":[{"sig":"MEQCIB7COfnUkRf65wtCphJ1df0SshQV1XFNz7jf0dw0zfCpAiBrNVyHC05W1BSyBthI/DvFgUQg5IO/yk4zSJqTK0tNdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10953},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"afa8d3ae11197be34b013d3cf8470ee7594e8cd9","scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --treeshake --target es2022","format":"prettier --write src tests","typecheck":"tsc --noEmit","format:check":"prettier --check src tests"},"_npmUser":{"name":"sarveshsea","email":"sarveshjax@gmail.com"},"_npmVersion":"10.9.2","description":"Fixture builders and mock providers for @buzzr/dfs-engine consumers.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@buzzr/dfs-engine":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dfs-testkit_2.0.0_1778641831922_0.12159754056866068","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@buzzr/dfs-testkit","version":"3.0.0","author":{"name":"Sarvesh Chidambaram"},"license":"MIT","_id":"@buzzr/dfs-testkit@3.0.0","maintainers":[{"name":"sarveshsea","email":"sarveshjax@gmail.com"}],"dist":{"shasum":"cda8857550f8b60010ccfc0d1820b0a1c27e56d0","tarball":"https://registry.npmjs.org/@buzzr/dfs-testkit/-/dfs-testkit-3.0.0.tgz","fileCount":9,"integrity":"sha512-+rLx2hqvAsmruJ2SHCp2/c2nvaBI4MdEI7W6X4w1HmwXeSWBNqC9bsV7NFNY0FVPQ/nXTTQgAvxGKWD43v+eMg==","signatures":[{"sig":"MEUCIHrXibPhM8J2JMmYNji+vqT4jIlyLmAf2L2msPTJ070xAiEAyqHkXSy6Mz7QUMIuKTAzExL0MAZlt1ej913CF7g1+TA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10973},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"2dcb5f56e54c6d92d5326b6ed6b48a33ce0d7421","scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --treeshake --target es2022","format":"prettier --write src tests","typecheck":"tsc --noEmit","format:check":"prettier --check src tests"},"_npmUser":{"name":"sarveshsea","email":"sarveshjax@gmail.com"},"_npmVersion":"10.9.2","description":"Fixture builders and mock providers for @buzzr/dfs-engine consumers.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@buzzr/dfs-engine":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dfs-testkit_3.0.0_1778679590987_0.026140344631725876","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@buzzr/dfs-testkit","version":"3.0.1","author":{"name":"Sarvesh Chidambaram"},"license":"MIT","_id":"@buzzr/dfs-testkit@3.0.1","maintainers":[{"name":"sarveshsea","email":"sarveshjax@gmail.com"}],"dist":{"shasum":"fd2c4fdce6824f7271d383f6f48773baba231826","tarball":"https://registry.npmjs.org/@buzzr/dfs-testkit/-/dfs-testkit-3.0.1.tgz","fileCount":9,"integrity":"sha512-KpVBOQ1Ihzz56821fuag4Cb7MQMIsaU8cFN65QNFoPbhqL1NQ8nKvm0a9ELSM8WXV/Wa1HvuADS4YShlWOTRng==","signatures":[{"sig":"MEUCIQDNoPQfdvaVFxyxnsYwqor9xpss4dwEEC4hA1ksJoDgbQIgKy8bY4scWr/KLP7jsoYpz5lDCHRu/5Tq8hddDYpixRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10973},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"de0d5dfb980d58d42c6dd5036b2fd6ee66414331","scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --treeshake --target es2022","format":"prettier --write src tests","typecheck":"tsc --noEmit","format:check":"prettier --check src tests"},"_npmUser":{"name":"sarveshsea","email":"sarveshjax@gmail.com"},"_npmVersion":"10.9.2","description":"Fixture builders and mock providers for @buzzr/dfs-engine consumers.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@buzzr/dfs-engine":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dfs-testkit_3.0.1_1778692884431_0.08045617832613305","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@buzzr/dfs-testkit","version":"4.0.0","author":{"name":"Sarvesh Chidambaram"},"license":"MIT","_id":"@buzzr/dfs-testkit@4.0.0","maintainers":[{"name":"sarveshsea","email":"sarveshjax@gmail.com"}],"dist":{"shasum":"e51f7e6c31fabd1172d90dedab3dcdae664a4479","tarball":"https://registry.npmjs.org/@buzzr/dfs-testkit/-/dfs-testkit-4.0.0.tgz","fileCount":9,"integrity":"sha512-V04gF7/tesDhx1/54ktIQsTOMoQW8kSAtmC/szo3TsIOrZ4lzN+j3M7ZxMasOJRxfgmxMPM4NpDlPDIBAhk/yQ==","signatures":[{"sig":"MEUCIEcytY2BgmqdsISw2ul/jgv3xAFewOea/gNF/N9RUaSzAiEAjV8ivyeCRIwt6/tTn9Rz8J8syOyOUb3XWf9Jxzod/L4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13011},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e6c5436b631c3fc31bbc8ec2c925c9443fcde9be","scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --treeshake --target es2022","format":"prettier --write src tests","typecheck":"tsc --noEmit","format:check":"prettier --check src tests"},"_npmUser":{"name":"sarveshsea","email":"sarveshjax@gmail.com"},"_npmVersion":"10.9.2","description":"Fixture builders and mock providers for @buzzr/dfs-engine consumers.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@buzzr/dfs-engine":"^4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dfs-testkit_4.0.0_1779851171408_0.6730659404125929","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@buzzr/dfs-testkit","version":"5.0.0","keywords":["dfs","daily-fantasy-sports","testing","fixtures","mocks","test-fixtures","fixture-builders","vitest","jest","settlement","grading","prizepicks","underdog","typescript","buzzr"],"author":{"name":"Sarvesh Chidambaram"},"license":"MIT","_id":"@buzzr/dfs-testkit@5.0.0","maintainers":[{"name":"sarveshsea","email":"sarveshjax@gmail.com"},{"name":"gangisettyrushil8","email":"gangisettyrushil@gmail.com"}],"homepage":"https://github.com/Buzzr-app/dfs-engine/tree/main/packages/dfs-testkit#readme","bugs":{"url":"https://github.com/Buzzr-app/dfs-engine/issues"},"dist":{"shasum":"9e429a6de577452be0473670a0c2e99e194b36c2","tarball":"https://registry.npmjs.org/@buzzr/dfs-testkit/-/dfs-testkit-5.0.0.tgz","fileCount":9,"integrity":"sha512-EZq7S1Y00j2bRqdA/VAXKobu6U59qhXenKVFjg8hCaYJn0Zemw8kI6ER+WFEv//+ZsMhSBQoBXaWHjVNrZox5A==","signatures":[{"sig":"MEUCIQC3mvEhMQyfvYxlFfvcqwQhqoOobJkX7+YpwyCqew32ZAIgfhgbUDmxRTNu91YMrlXKuFtE5z+5BuVMphuqoHzTsK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17672},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b727ec77a02352d6e3a5b21265889c41daedb4f4","scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --treeshake --target es2022","format":"prettier --write src tests","typecheck":"tsc --noEmit","format:check":"prettier --check src tests"},"_npmUser":{"name":"sarveshsea","email":"sarveshjax@gmail.com"},"repository":{"url":"git+https://github.com/Buzzr-app/dfs-engine.git","type":"git","directory":"packages/dfs-testkit"},"_npmVersion":"10.9.8","description":"Fixture builders and mock providers for @buzzr/dfs-engine consumers.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@buzzr/dfs-engine":"^5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dfs-testkit_5.0.0_1783385541831_0.015435463551218831","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@buzzr/dfs-testkit","version":"5.0.1","description":"Fixture builders and mock providers for @buzzr/dfs-engine consumers.","license":"MIT","author":{"name":"Sarvesh Chidambaram"},"repository":{"type":"git","url":"git+https://github.com/Buzzr-app/dfs-engine.git","directory":"packages/dfs-testkit"},"homepage":"https://github.com/Buzzr-app/dfs-engine/tree/main/packages/dfs-testkit#readme","bugs":{"url":"https://github.com/Buzzr-app/dfs-engine/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --sourcemap --clean --treeshake --target es2022","typecheck":"tsc --noEmit","test":"vitest run","lint":"eslint src tests","format":"prettier --write src tests","format:check":"prettier --check src tests"},"keywords":["dfs","daily-fantasy-sports","testing","fixtures","mocks","test-fixtures","fixture-builders","vitest","jest","settlement","grading","prizepicks","underdog","typescript","buzzr"],"dependencies":{"@buzzr/dfs-engine":"^5.1.0"},"engines":{"node":">=22"},"publishConfig":{"access":"public"},"gitHead":"c26ad054f999ea726eb29c93d75e5a0dd8a7ea7e","_id":"@buzzr/dfs-testkit@5.0.1","_integrity":"sha512-pXaylQhkXgD8Ttee63eoGik+58MVMer6/84v6FCax5KQ4B/4wxLtTgC2a4EpOR7g/APVL/JO2N6ZE4eHHOWiAQ==","_resolved":"/home/runner/work/_temp/release-packs/buzzr-dfs-testkit-5.0.1.tgz","_from":"file:/home/runner/work/_temp/release-packs/buzzr-dfs-testkit-5.0.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-pXaylQhkXgD8Ttee63eoGik+58MVMer6/84v6FCax5KQ4B/4wxLtTgC2a4EpOR7g/APVL/JO2N6ZE4eHHOWiAQ==","shasum":"4a05db9973f5219d0c7426974595d8e03794fc1c","tarball":"https://registry.npmjs.org/@buzzr/dfs-testkit/-/dfs-testkit-5.0.1.tgz","fileCount":9,"unpackedSize":18465,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@buzzr%2fdfs-testkit@5.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICSY5wNkPPrP04jKv50rtnffILiC27OAeskQLiObKH5WAiEAu9Wk/EnUfXy7xBGa6GhDmMFEdBny3xjH4AbnixUBFPw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ec5531e3-a813-4b81-8bc5-1b303e8f34e2"}},"directories":{},"maintainers":[{"name":"sarveshsea","email":"sarveshjax@gmail.com"},{"name":"gangisettyrushil8","email":"gangisettyrushil@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dfs-testkit_5.0.1_1784225526517_0.25336158754678184"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-13T03:10:31.790Z","modified":"2026-07-16T18:12:07.052Z","2.0.0":"2026-05-13T03:10:32.060Z","3.0.0":"2026-05-13T13:39:51.209Z","3.0.1":"2026-05-13T17:21:24.568Z","4.0.0":"2026-05-27T03:06:11.602Z","5.0.0":"2026-07-07T00:52:21.943Z","5.0.1":"2026-07-16T18:12:06.649Z"},"bugs":{"url":"https://github.com/Buzzr-app/dfs-engine/issues"},"author":{"name":"Sarvesh Chidambaram"},"license":"MIT","homepage":"https://github.com/Buzzr-app/dfs-engine/tree/main/packages/dfs-testkit#readme","keywords":["dfs","daily-fantasy-sports","testing","fixtures","mocks","test-fixtures","fixture-builders","vitest","jest","settlement","grading","prizepicks","underdog","typescript","buzzr"],"repository":{"type":"git","url":"git+https://github.com/Buzzr-app/dfs-engine.git","directory":"packages/dfs-testkit"},"description":"Fixture builders and mock providers for @buzzr/dfs-engine consumers.","maintainers":[{"name":"sarveshsea","email":"sarveshjax@gmail.com"},{"name":"gangisettyrushil8","email":"gangisettyrushil@gmail.com"}],"readme":"# @buzzr/dfs-testkit\n\n[![npm version](https://img.shields.io/npm/v/@buzzr/dfs-testkit)](https://www.npmjs.com/package/@buzzr/dfs-testkit)\n[![npm downloads](https://img.shields.io/npm/dm/@buzzr/dfs-testkit)](https://www.npmjs.com/package/@buzzr/dfs-testkit)\n[![CI](https://github.com/Buzzr-app/dfs-engine/actions/workflows/ci.yml/badge.svg)](https://github.com/Buzzr-app/dfs-engine/actions/workflows/ci.yml)\n[![types](https://img.shields.io/npm/types/@buzzr/dfs-testkit)](https://www.npmjs.com/package/@buzzr/dfs-testkit)\n[![license](https://img.shields.io/npm/l/@buzzr/dfs-testkit)](https://github.com/Buzzr-app/dfs-engine/blob/main/LICENSE)\n\n**Fixture builders and mock stat providers for testing [`@buzzr/dfs-engine`](https://www.npmjs.com/package/@buzzr/dfs-engine) integrations.** Build a valid v4-canonical DFS entry in one line, override only what your test cares about, and wire a deterministic stat provider without touching the network.\n\n## Install\n\n```bash\nnpm install --save-dev @buzzr/dfs-testkit @buzzr/dfs-engine\n```\n\n## 30-second quick start\n\nWorks with Vitest, Jest, or any test runner:\n\n```ts\nimport { test, expect } from 'vitest';\nimport { createDfsEngine } from '@buzzr/dfs-engine';\nimport {\n  makeDfsEntry,\n  makeDfsLeg,\n  makeGameLogEntry,\n  createMockStatProvider,\n} from '@buzzr/dfs-testkit';\n\ntest('a PrizePicks Power entry settles as won when both legs hit', async () => {\n  const entry = makeDfsEntry({\n    legs: [\n      makeDfsLeg({ legId: 'leg-1', propType: 'Points', line: 20.5 }),\n      makeDfsLeg({ legId: 'leg-2', propType: 'Rebounds', line: 6.5 }),\n    ],\n  });\n\n  const provider = createMockStatProvider({\n    'leg-1': [makeGameLogEntry({ points: '24' })],\n    'leg-2': [makeGameLogEntry({ rebounds: '9' })],\n  });\n\n  const engine = createDfsEngine({ statProviders: [provider] });\n  const result = await engine.settleEntry(entry, { statProviderId: provider.id });\n\n  expect(result.status).toBe('won');\n});\n```\n\nEvery builder returns a complete, engine-valid object with sensible defaults (`prizepicks` / `power` / NBA points over), so tests only spell out what they assert.\n\n## API\n\n| Export                     | Purpose                                                                      |\n| -------------------------- | ---------------------------------------------------------------------------- |\n| `makeDfsEntry()`           | A valid `DfsEntryInput` (PrizePicks Power, one leg) with overridable fields  |\n| `makeDfsLeg()`             | A valid `DfsLegInput` (NBA Points over 20.5) with overridable fields         |\n| `makeGameLogEntry()`       | A valid `PlayerGameLogEntryShape` boxscore row with overridable stats        |\n| `createMockStatProvider()` | A deterministic `StatProvider` serving rows from a `legId → rows` map        |\n| `makeInvalidDfsEntry()`    | An entry with duplicate leg ids and zero stake, for validation-path tests    |\n\nFixtures emit v4-canonical shapes (`actual`, `status`, per-leg `legId` keys), so anything you build here passes the engine's boundary validators — except `makeInvalidDfsEntry`, which is designed to fail them.\n\n## When to use this vs siblings\n\n| You want to…                                          | Reach for                                                                                       |\n| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------ |\n| Write unit tests for your own settlement integration  | **this package**                                                                                  |\n| Replay versioned engine regression fixtures           | [`@buzzr/dfs-engine-test-vectors`](https://www.npmjs.com/package/@buzzr/dfs-engine-test-vectors)  |\n| Grade entries in production code                      | [`@buzzr/dfs-engine`](https://www.npmjs.com/package/@buzzr/dfs-engine)                            |\n| Grade entries from the command line                   | [`@buzzr/dfs-cli`](https://www.npmjs.com/package/@buzzr/dfs-cli)                                  |\n\nThe regression fixtures are review gates for a matching engine version, not official operator conformance.\n\n## Links\n\n- [All-package API index](../../docs/api-reference.md)\n- [Generated root-export reference](https://buzzr-app.github.io/dfs-engine/modules/_buzzr_dfs-testkit.html)\n- [Monorepo & full package family](https://github.com/Buzzr-app/dfs-engine)\n- [Issues](https://github.com/Buzzr-app/dfs-engine/issues)\n\n## Compatibility and support\n\nNode.js >= 22 is supported. Import the supported API from `@buzzr/dfs-testkit`.\nDeep `src/*` and `dist/*` imports are unsupported. The package is intended for\ndevelopment and test dependencies and uses the compatible `@buzzr/dfs-engine`\nrange declared in its package manifest.\n\nReport vulnerabilities privately through [SECURITY.md](../../SECURITY.md). The\n[versioning and support policy](../../docs/versioning-and-support.md) defines the\nsupported runtime and SemVer contract.\n\n## License\n\n[MIT](../../LICENSE)\n","readmeFilename":"README.md"}