{"_id":"@alinea/suite","_rev":"6-852689d9635dbacd7414757e0f9e2acc","name":"@alinea/suite","dist-tags":{"latest":"0.6.3"},"versions":{"0.4.0":{"name":"@alinea/suite","version":"0.4.0","license":"MIT","_id":"@alinea/suite@0.4.0","maintainers":[{"name":"benmerckx","email":"ben@codeurs.be"}],"dist":{"shasum":"aab1f1650f20dbb55bc657bdd7ca273444bd3c19","tarball":"https://registry.npmjs.org/@alinea/suite/-/suite-0.4.0.tgz","fileCount":8,"integrity":"sha512-4kwLqPYnMwGXZ6CZWkFFqu1kC0kRIz5AHlsJwQpSjFu6ETDWvC83WlZ25FGaPP3KRX9CShmBXplAcOcHGxrX9A==","signatures":[{"sig":"MEUCIEAtab7SqEIjlVC2tL8xnvPv5KYSmHAiEw4IpppJOgWwAiEA1xvQ+mk4d/+7U24sVLLLYvjx99IGXNxd0wKgEqqVJgc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15150},"type":"module","types":"./src/suite.d.ts","exports":{".":{"bun":"./src/suite.bun.js","deno":"./dist/suite.deno.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"},"./package.json":"./package.json"},"gitHead":"dbfd140acf8567c1e7c720190246ee9566db5b75","imports":{"#suite":{"bun":"./src/suite.bun.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"}},"scripts":{"test":"node --test && deno test && bun test","build":"bun build src/suite.deno.js --outdir=dist --minify","deploy":"npm publish && npx jsr publish","prepublishOnly":"bun run build"},"_npmUser":{"name":"benmerckx","email":"ben@codeurs.be"},"_npmVersion":"10.7.0","description":"[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)","directories":{},"_nodeVersion":"18.20.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0","@jsr/std__assert":"^0.225.2"},"_npmOperationalInternal":{"tmp":"tmp/suite_0.4.0_1724929680281_0.4222510327032898","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@alinea/suite","version":"0.5.0","license":"MIT","_id":"@alinea/suite@0.5.0","maintainers":[{"name":"benmerckx","email":"ben@codeurs.be"}],"dist":{"shasum":"2b24cc631a904b955596b0a36eecb4698abe804c","tarball":"https://registry.npmjs.org/@alinea/suite/-/suite-0.5.0.tgz","fileCount":8,"integrity":"sha512-Py2p2JWx/RvyQb7DtgokJY7N7MVeNgy+eldyO3lvAqNOxBulZC8rQjnyLfAMEtkHvZ+z/1ZmgbJG5DhMG7QfpA==","signatures":[{"sig":"MEQCIFfwlJ8V/cVbsTinpbjl0qjevFmOijUBOp9zexIIRgP8AiAT6+nOoIJHug9Tu260pvCBM9bh8nu/mUb4FFAEm/D1yw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15184},"type":"module","types":"./src/suite.d.ts","exports":{".":{"bun":"./src/suite.bun.js","deno":"./dist/suite.deno.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"},"./package.json":"./package.json"},"gitHead":"507468b82c6ef8260b18c98f34a0bf9f19d384ad","imports":{"#suite":{"bun":"./src/suite.bun.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"}},"scripts":{"test":"node --test && deno test && bun test","build":"bun build src/suite.deno.js --outdir=dist --minify","deploy":"npm publish && npx jsr publish","prepublishOnly":"bun run build"},"_npmUser":{"name":"benmerckx","email":"ben@codeurs.be"},"_npmVersion":"10.8.2","description":"[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)","directories":{},"_nodeVersion":"20.18.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.0.0","@jsr/std__assert":"^0.225.2"},"_npmOperationalInternal":{"tmp":"tmp/suite_0.5.0_1737453183782_0.6527767108062283","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@alinea/suite","version":"0.6.0","license":"MIT","_id":"@alinea/suite@0.6.0","maintainers":[{"name":"benmerckx","email":"ben@codeurs.be"}],"dist":{"shasum":"397b9a22c70b4f0303f79a98e374cdbed86a9fad","tarball":"https://registry.npmjs.org/@alinea/suite/-/suite-0.6.0.tgz","fileCount":9,"integrity":"sha512-xh6tIjoUM1A+VabymBrzAemiy7LMrNedeA0HaoPu6xtMAtVg3CNCQxU0Jb2Zxj+3WCTlnd3fWTCcngs4EePL+A==","signatures":[{"sig":"MEUCIQD8cyWux0sTAq++csIsM+/2YwcK7B2DMLvQlpFMtMWRfQIgPEMNLv9C6ahx3O6dACkNhXbZsbisBlZJ0DXIp82C1K4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26257},"type":"module","types":"./src/suite.d.ts","exports":{".":{"bun":"./src/suite.bun.js","deno":"./dist/suite.deno.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"},"./package.json":"./package.json"},"gitHead":"7714af80418d06504a2dd8f8a6180258296a39b7","imports":{"#suite":{"bun":"./src/suite.bun.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"}},"scripts":{"build":"bun build src/suite.deno.js --outdir=dist --minify","deploy":"npm publish && npx jsr publish","test:deno":"bun run build && deno test","test:node":"node --test","prepublishOnly":"bun run build"},"_npmUser":{"name":"benmerckx","email":"ben@codeurs.be"},"_npmVersion":"10.8.2","description":"[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.3","@jsr/std__assert":"^1.0.9","@jsr/std__testing":"^1.0.9"},"_npmOperationalInternal":{"tmp":"tmp/suite_0.6.0_1739905820153_0.7551602553483727","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@alinea/suite","version":"0.6.1","license":"MIT","_id":"@alinea/suite@0.6.1","maintainers":[{"name":"benmerckx","email":"ben@codeurs.be"}],"dist":{"shasum":"34dfa3c3f9257d6e084f69ebc2bb4193a7f0dd87","tarball":"https://registry.npmjs.org/@alinea/suite/-/suite-0.6.1.tgz","fileCount":9,"integrity":"sha512-0+KsLBCNELTX+qC2iyBJqTmpSnGxcZ4R/wxPja2Ad9/3f6bro4DHo2YfO5yhctun+o072TvTRvtoNC+n4IS8cA==","signatures":[{"sig":"MEUCIQC61XXzORAYhqew7zXjcHRk4l/nIKEW/zYLV2/iUhAVSQIgeniwI4OWq1Oz2yUYV+kjElshBDn4irSX/PzAO+oeb8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26260},"type":"module","types":"./src/suite.d.ts","exports":{".":{"bun":"./src/suite.bun.js","deno":"./dist/suite.deno.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"},"./package.json":"./package.json"},"gitHead":"e3bff641c4ed393f881194432d602d912b1147e2","imports":{"#suite":{"bun":"./src/suite.bun.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"}},"scripts":{"build":"bun build src/suite.deno.js --outdir=dist --minify","deploy":"npm publish && npx jsr publish","test:deno":"bun run build && deno test","test:node":"node --test","prepublishOnly":"bun run build"},"_npmUser":{"name":"benmerckx","email":"ben@codeurs.be"},"_npmVersion":"10.8.2","description":"[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.3","@jsr/std__assert":"^1.0.9","@jsr/std__testing":"^1.0.9"},"_npmOperationalInternal":{"tmp":"tmp/suite_0.6.1_1739959329958_0.35128710917491945","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@alinea/suite","version":"0.6.2","license":"MIT","_id":"@alinea/suite@0.6.2","maintainers":[{"name":"benmerckx","email":"ben@codeurs.be"}],"dist":{"shasum":"c7d5787d9e7ada4a6c2b91d5826180335902ba79","tarball":"https://registry.npmjs.org/@alinea/suite/-/suite-0.6.2.tgz","fileCount":9,"integrity":"sha512-UEYs2OLLb5DCMVE/0C8AAhP+xjKdOujbfL+NIXtcCW0dyeQqxjRVVFu+JH5VsjNxkx9ZNgId0fU4HkoKRU49CQ==","signatures":[{"sig":"MEQCIF6YiGbC2Cu8+i3JI0oLlqHoEOh41LKku1aAX+CpSrDgAiBCSS+dtOh+vA2ISb75nvyC/04w0evqxECmpWWTB7LU/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26427},"type":"module","types":"./src/suite.d.ts","exports":{".":{"bun":"./src/suite.bun.js","deno":"./dist/suite.deno.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"},"./package.json":"./package.json"},"gitHead":"076bbb34721f79d651de473e1515cae27b4215a8","imports":{"#suite":{"bun":"./src/suite.bun.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"}},"scripts":{"build":"bun build src/suite.deno.js --outdir=dist --minify","deploy":"npm publish && npx jsr publish","test:deno":"bun run build && deno test","test:node":"node --test","prepublishOnly":"bun run build"},"_npmUser":{"name":"benmerckx","email":"ben@codeurs.be"},"_npmVersion":"10.8.2","description":"[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.7.3","@jsr/std__assert":"^1.0.9","@jsr/std__testing":"^1.0.9"},"_npmOperationalInternal":{"tmp":"tmp/suite_0.6.2_1740049328091_0.5367224472867194","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@alinea/suite","version":"0.6.3","license":"MIT","types":"./src/suite.d.ts","type":"module","publishConfig":{"access":"public"},"scripts":{"build":"bun build src/suite.deno.js --outdir=dist --minify","test:node":"node --test","test:deno":"bun run build && deno test","deploy":"npm publish && npx jsr publish","prepublishOnly":"bun run build"},"devDependencies":{"@jsr/std__assert":"^1.0.9","@jsr/std__testing":"^1.0.9","@types/bun":"latest","typescript":"^5.7.3"},"exports":{".":{"deno":"./dist/suite.deno.js","bun":"./src/suite.bun.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"},"./package.json":"./package.json"},"imports":{"#suite":{"bun":"./src/suite.bun.js","node":"./src/suite.node.js","types":"./src/suite.d.ts"}},"_id":"@alinea/suite@0.6.3","gitHead":"0ccb6e3fada9f4a828618868edb45390bca583cb","description":"[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-4oGhbwAGq3rQeuuq9ylmybMkIT1mAl6e+DiiTLwwmwNzHFQiVihishgOpkIGrs0fGVSD4T8jOLyNTuQ30RtVuQ==","shasum":"66e454ecc0419313bc75103f377c0689e989a4cb","tarball":"https://registry.npmjs.org/@alinea/suite/-/suite-0.6.3.tgz","fileCount":9,"unpackedSize":27136,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICSu6kV+1nI/20mNvkZF02tT5768yKEw/71lFwBfZqVAAiBO3Bb2lbD7Qebm4U7i0y9CXOnR1eXbwjGTmycRyKYvag=="}]},"_npmUser":{"name":"benmerckx","email":"ben@codeurs.be"},"directories":{},"maintainers":[{"name":"benmerckx","email":"ben@codeurs.be"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/suite_0.6.3_1749733035452_0.283861822090546"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-29T11:08:00.176Z","modified":"2025-06-12T12:57:15.857Z","0.4.0":"2024-08-29T11:08:00.472Z","0.5.0":"2025-01-21T09:53:03.967Z","0.6.0":"2025-02-18T19:10:20.384Z","0.6.1":"2025-02-19T10:02:10.199Z","0.6.2":"2025-02-20T11:02:08.264Z","0.6.3":"2025-06-12T12:57:15.633Z"},"license":"MIT","description":"[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)","maintainers":[{"name":"benmerckx","email":"ben@codeurs.be"}],"readme":"# suite\n\n[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite)\n[![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)\n\nDescribe tests that run in the native test runners of Node.js, Deno and Bun.\n\n## example\n\n````ts\n// example.test.js\nimport {suite} from '@alinea/suite'\n\nconst test = suite(import.meta)\n\ntest('is', () => {\n  test.is(1, 1)\n})\n\ntest('deep equal', () => {\n  test.equal({a: 1}, {a: 1})\n})\n\ntest('async', async () => {\n  await new Promise(resolve => setTimeout(resolve, 100))\n  test.ok(true)\n})\n\ntest('throws', () => {\n  test.throws(() => {\n    throw new Error('test')\n  }, 'test')\n})\n\ntest.skip('skip', () => {\n  test.ok(false)\n})\n````\n\nRun with:\n- `node --test`\n- `bun test`\n- `deno test`\n\n## api\n\n````ts\n/** Define a test suite */\nexport function suite(meta: ImportMeta): (test: DefineTest) => void\nexport function suite(meta: ImportMeta, define: (test: DefineTest) => void): void\n\n/** Describe a test */\nexport type Describe =\n  (name: string, run: () => void | Promise<void>): void\n\n/** Define a test suite */\nexport interface DefineTest extends Describe {\n  /** Skip the test */\n  skip: Describe\n  /** Only run this test */\n  only: Describe\n  /** Assert that actual is a truthy value */\n  ok(actual: any): void\n  /** Assert that actual strictly equals (===) the expects value */\n  is(actual: any, expects: any): void\n  /** Assert that actual is deeply equal to the expects value */\n  equal(actual: any, expects: any): void\n  /** Assert that the fn function throws an Error */\n  throws(fn: () => void, messageIncludes?: string): void\n  /** Assert inverse */\n  not: {\n    /** Assert that actual is a falsy value */\n    ok(actual: any): void\n    /** Assert that actual does not strictly equal (===) the expects value */\n    is(actual: any, expects: any): void\n    /** Assert that actual is not deeply equal to the expects value */\n    equal(actual: any, expects: any): void\n  }\n}\n````\n","readmeFilename":"README.md"}