{"_id":"@bonniernews/node-test-bdd","_rev":"24-53dfe4e75b413abdd3a6498933b8a369","name":"@bonniernews/node-test-bdd","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@bonniernews/node-test-bdd","version":"0.0.1","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/node-test-bdd@0.0.1","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"}],"homepage":"https://github.com/BonnierNews/node-test-bdd#readme","bugs":{"url":"https://github.com/BonnierNews/node-test-bdd/issues"},"dist":{"shasum":"2d5dcab9ac1c5097da5812600b5fd6fcb1442804","tarball":"https://registry.npmjs.org/@bonniernews/node-test-bdd/-/node-test-bdd-0.0.1.tgz","fileCount":5,"integrity":"sha512-sPJynACM+QDyvf8sJSBtGbjrd68WQKs9eaVbS0ZHQ+hyR3pDq69Fu6nu9zUGmiViEN/8uTqCkoZFrHyx/FgZgA==","signatures":[{"sig":"MEUCIDqllUuN9Ku60XP4U1CFJmt/jfXRjAUS5b1bDOWqXCYNAiEAtUA68++Lkd5YOyD1F1OlSknZ/Y4IX0bp7B35OxE14Yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4524},"main":"index.js","exports":{".":"./index.js","./register-bdd":"./register-bdd.js"},"gitHead":"6879dad251d4aba340dc243a01b679159b56a331","scripts":{"test":"node --test"},"_npmUser":{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/node-test-bdd.git","type":"git"},"_npmVersion":"10.8.1","description":"BDD syntax for node test","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"@bonniernews/eslint-config":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-test-bdd_0.0.1_1741965792311_0.4277396971329468","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@bonniernews/node-test-bdd","version":"0.0.2","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/node-test-bdd@0.0.2","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"}],"homepage":"https://github.com/BonnierNews/node-test-bdd#readme","bugs":{"url":"https://github.com/BonnierNews/node-test-bdd/issues"},"dist":{"shasum":"e6450ac324d6db0d0cf94ce45e3b07ddd12a6d14","tarball":"https://registry.npmjs.org/@bonniernews/node-test-bdd/-/node-test-bdd-0.0.2.tgz","fileCount":5,"integrity":"sha512-VOJAcJ5U1gk33+COSXST6hTEBngFFxlpBVqWgaCS1Xe5kXGeXfyLysjgjHfVl3rnwRmIO+ARFxWWoxWnxJXgdw==","signatures":[{"sig":"MEUCIQCHaAR5QWaqqSowiwBUFB67bqBwkSpMmoSNL0EoKX1ArwIgJ7HHomXmUxBea0hSksSVX83iISxZ1HAjtHZ+Nx2waLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8146},"main":"index.js","exports":{".":"./index.js","./register-bdd":"./register-bdd.js"},"gitHead":"c45a8078b8d58b63d3454be9c3260e4eaa8cf81e","scripts":{"test":"node --test"},"_npmUser":{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/node-test-bdd.git","type":"git"},"_npmVersion":"10.8.1","description":"BDD syntax for node test","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"@bonniernews/eslint-config":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-test-bdd_0.0.2_1743077472062_0.9566582862763908","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@bonniernews/node-test-bdd","version":"0.0.3","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/node-test-bdd@0.0.3","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"}],"homepage":"https://github.com/BonnierNews/node-test-bdd#readme","bugs":{"url":"https://github.com/BonnierNews/node-test-bdd/issues"},"dist":{"shasum":"97d4b280cd28b3e39795aa3a963885f5a8f97e47","tarball":"https://registry.npmjs.org/@bonniernews/node-test-bdd/-/node-test-bdd-0.0.3.tgz","fileCount":6,"integrity":"sha512-ZSwiB+xNL+aYt5ufJAgR6rA+V4d6dKpdE1to9P7N5I7l4layc7BaQx3wQIT7sGuhIUyxR9lElyJ47WrBNkrYDQ==","signatures":[{"sig":"MEUCIQDjqV9/2JtelDVRxtvn6E8umMpBtPDlBe7Ws41oecj8LAIgKZpV5HSZz7ZPliSyWh8h4cP6FYyuF4/xx959D7E1CQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9250},"main":"index.js","types":"index.d.ts","exports":{".":"./index.js","./register-bdd":"./register-bdd.js"},"gitHead":"1b2919da37dfc8171be8eca87a96958646fc012e","scripts":{"lint":"eslint . --cache","test":"node --test --test-reporter spec"},"_npmUser":{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/node-test-bdd.git","type":"git"},"_npmVersion":"10.8.2","description":"BDD syntax for node test","directories":{},"_nodeVersion":"20.18.3","_hasShrinkwrap":false,"devDependencies":{"@bonniernews/eslint-config":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-test-bdd_0.0.3_1745502803837_0.7971506806404789","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@bonniernews/node-test-bdd","version":"0.0.4","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/node-test-bdd@0.0.4","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"}],"homepage":"https://github.com/BonnierNews/node-test-bdd#readme","bugs":{"url":"https://github.com/BonnierNews/node-test-bdd/issues"},"dist":{"shasum":"7cbd8b9dae856820da74dfb60a1696bcfa83c023","tarball":"https://registry.npmjs.org/@bonniernews/node-test-bdd/-/node-test-bdd-0.0.4.tgz","fileCount":6,"integrity":"sha512-CUwr4o/JsOtNomZ8/lgK9Ni37iBoWbPTxbQaPXbFQlQXRq3KUAqpB3m+wBXLM+BA7z7fJzf80R+P3V4B+UlkDQ==","signatures":[{"sig":"MEUCIENeLNU8RdXReHIAhwOnZVYrGXbABtIDprIh6FfgacGGAiEA6H6WhRCwSgUgDLlC2WoPy1X4wrW63HoZWDd695h7L2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9155},"main":"index.js","types":"index.d.ts","exports":{".":"./index.js","./register-bdd":"./register-bdd.js"},"gitHead":"c0607dac2dd71e74c8520e6b8d47c9361acde914","scripts":{"lint":"eslint . --cache","test":"node --test --test-reporter spec"},"_npmUser":{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/node-test-bdd.git","type":"git"},"_npmVersion":"10.8.2","description":"BDD syntax for node test","directories":{},"_nodeVersion":"20.18.3","_hasShrinkwrap":false,"devDependencies":{"@bonniernews/eslint-config":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-test-bdd_0.0.4_1745576994261_0.010568180842725594","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-03-14T15:23:12.228Z","modified":"2026-08-26T12:06:54.277Z","0.0.1":"2025-03-14T15:23:12.505Z","0.0.2":"2025-03-27T12:11:12.269Z","0.0.3":"2025-04-24T13:53:24.003Z","0.0.4":"2025-04-25T10:29:54.441Z"},"bugs":{"url":"https://github.com/BonnierNews/node-test-bdd/issues"},"author":{"name":"Bonnier News"},"license":"MIT","homepage":"https://github.com/BonnierNews/node-test-bdd#readme","repository":{"url":"git+https://github.com/BonnierNews/node-test-bdd.git","type":"git"},"description":"BDD syntax for node test","maintainers":[{"email":"markus@botten.org","name":"markusn"},{"email":"max.olofsson@bonniernews.se","name":"mxtr"},{"email":"mats@rorbecker.com","name":"matsrorbecker"},{"email":"dan.arola@bonniernews.se","name":"dan.karlsson"},{"email":"adil.aboulkacim@bonniernews.se","name":"adil.aboulkacim"},{"email":"marie.winther@bonniernews.se","name":"marie-winther"},{"email":"marcus.gronblad@bonniernews.se","name":"marcusgronblad"},{"email":"axel.johansson@bonniernews.se","name":"axeljohanssonbonniernews"},{"email":"christoffer.karlberg@bonniernews.se","name":"karlbergc"},{"email":"chavah.forler@bonniernews.se","name":"chavah"},{"email":"joel.ekman@bonniernews.se","name":"joelekman"},{"email":"adam.hakansson@bonniernews.se","name":"adam.hakansson"},{"email":"marcus.hilleso@expressen.se","name":"hilleso"},{"email":"gusliden@gmail.com","name":"gusliden"},{"email":"andreas.samuelsson@bonniernews.se","name":"andreas.samuelsson"},{"email":"jesper.zachrisson@bonniernews.se","name":"jzachrisson"},{"email":"mattias.norlander@gmail.com","name":"norla"},{"email":"simon.varney@bonniernews.se","name":"varneynz"},{"email":"alice.boberg@bonniernews.se","name":"aliceboberg"},{"email":"johan.arkad@bonniernews.se","name":"johark"},{"email":"niklas.forsstrom@bonniernews.se","name":"nifo"},{"email":"herman.jansson@bonniernews.se","name":"herbola"},{"email":"andre.nordlund@bonniernews.se","name":"vitryssen"},{"email":"william.takolander@bonniernews.se","name":"takolander"},{"email":"marten.persson@hdsydsvenskan.se","name":"morre"},{"email":"mikael.mattsson@bonniernews.se","name":"mikael.mattsson"},{"email":"seb.christiansson@bonniernews.se","name":"schristianssonbn"},{"email":"mattias.olla@bonniernews.se","name":"mattiasobn"},{"email":"markus@daghall.se","name":"daghall"},{"email":"ericandersson1@gmail.com","name":"erandersson"},{"email":"jonathan.ek@bonniernews.se","name":"jonaek"},{"email":"amundsentb@gmail.com","name":"amundsentb"},{"email":"daniel.rasmussen@bonniernews.se","name":"drgeobn"},{"email":"oscar@tholander.nu","name":"oscartholander"},{"email":"peter.pettersson@bonniernews.se","name":"peterpettersson"},{"email":"basistoscar@gmail.com","name":"liroliro"},{"email":"andreas.egneblad@bonniernews.se","name":"torkelberget"},{"email":"johan@kasperi.se","name":"johankasperi"},{"email":"jon.eldeklint@bonniernews.se","name":"jon.eldeklint"},{"email":"niklas.blom@bonniernews.se","name":"nblom"},{"email":"jakob.pedersen@bonniernews.se","name":"jackesa"},{"email":"olle.nordin@bonniernews.se","name":"ollenolle"},{"email":"emil@thatemil.com","name":"emilbjorklund"},{"email":"japlilian@gmail.com","name":"lilianj"},{"email":"kristoffer.jansson@bonniernews.se","name":"kristofferjansson"},{"email":"kit.gustavsson@bonniernews.se","name":"kitgus"},{"email":"alexi.rahman@r76.se","name":"odynvolk"}],"readme":"# @bonniernews/node-test-bdd\n\n**Node Test BDD** is a Gherkin/Cucumber-style testing framework for Node.js, designed to work seamlessly with the [Node test runner](https://nodejs.org/api/test.html#test-runner).  \n\nIt serves as a drop-in replacement for [Mocha Cakes 2](https://www.npmjs.com/package/mocha-cakes-2) for users transitioning from [Mocha](https://mochajs.org/) to Node's native test runner.\n\n## 🚀 Quick Start  \n\nInstall the package:\n\n```sh\nnpm install --save-dev @bonniernews/node-test-bdd\n```\n\nWrite your first test:\n\n```js\nimport assert from \"node:assert\";\nimport { Feature, Scenario, Given, When, Then } from \"@bonniernews/node-test-bdd\";\n\nFeature(\"Basic Math\", () => {\n  Scenario(\"Incrementing a number\", () => {\n    let number = 1;\n\n    Given(\"I have a number 1\", () => {\n      assert.strictEqual(number, 1);\n    });\n\n    When(\"I add 1\", () => {\n      number += 1;\n    });\n\n    Then(\"The number should be 2\", () => {\n      assert.strictEqual(number, 2);\n    });\n  });\n});\n```\n\nRun the test using Node's built-in test runner:\n\n```sh\nnode --test\n```\n\nThe output should look like this:\n\n![Test output](test-output.png)\n\n## Installation\n\nInstall as a development dependency:\n\n```sh\nnpm install --save-dev @bonniernews/node-test-bdd\n```\n\n## Usage\n\nNode Test BDD provides Gherkin-style syntax for defining tests:\n\n```js\nimport assert from \"node:assert\";\nimport { Feature, Scenario, Given, When, Then, And } from \"@bonniernews/node-test-bdd\";\n\nFeature(\"Example feature\", () => {\n  Scenario(\"Example scenario\", () => {\n    let number;\n    Given(\"I have a number\", () => {\n      number = 1;\n    });\n    And(\"That number is 1\", () => {\n      assert.ok(number === 1);\n    });\n    When(\"Adding 1 to that number\", () => {\n      number += 1;\n    });\n    Then(\"The number should be 2\", () => {\n      assert.ok(number === 2);\n    });\n  });\n});\n```\n\n### Register the BDD test functions globally\n\nTo avoid importing BDD functions in every test file, you can register them globally:\n\nOption 1: Import in your test setup file\n\n```js\nimport \"@bonniernews/node-test-bdd/register-bdd\";\n```\n\nOption 2: Import dynamically when running tests\n\n```shell\nnode --test --import '@bonniernews/node-test-bdd/register-bdd'\n```\n\n## API\n\nNode Test BDD provides the following test functions:\n\n* `Feature(description, fn)`\n  * `Scenario(description, fn)`\n    * `Given(description, fn)`\n    * `When(description, fn)`\n    * `Then(description, fn)`\n    * `And(description, fn)`\n    * `But(description, fn)`\n\n## Scenario Hooks\n\nYou can use hooks to set up and clean up before and after each scenario.\n\n```js\nFeature(\"Some feature\", () => {\n  beforeEachScenario(() => {\n    someSetup();\n  });\n\n  afterEachScenario(() => {\n    doCleanup();\n  });\n\n  Scenario(\"First scenario\", () => {\n    // Test logic...\n  });\n\n  Scenario(\"Second scenario\", () => {\n    // Test logic...\n  });\n});\n```\n\n## Migrating from Mocha\n\nIf your Mocha test suite runs sequentially (without parallelism), you should consider setting the [`--experimental-test-isolation`](https://nodejs.org/docs/latest-v22.x/api/cli.html#--experimental-test-isolationmode) flag to `none`.  \n\nThis ensures that:\n- All test files run in the same process as the test runner.\n- The `--test-concurrency` flag is automatically set to `1`, mimicking Mocha’s default behavior.\n\n### Mocha vs. Node.js Test Runner Options\n\n| Mocha Option | Equivalent in Node.js Test Runner |\n| ----------------------------------------------------------------|----------------------------------------------------------------------------------------------|\n| [--exit](https://mochajs.org/#-exit)                            | [--test-force-exit](https://nodejs.org/docs/latest-v22.x/api/cli.html#--test-force-exit)     |\n| [--grep](https://mochajs.org/#-grep-regexp-g-regexp)            | [--test-name-pattern](https://nodejs.org/docs/latest-v22.x/api/cli.html#--test-name-pattern) |\n| [--reporter](https://mochajs.org/#-grep-regexp-g-regexp)        | [--test-reporter](https://nodejs.org/docs/latest-v22.x/api/cli.html#--test-reporter)         |\n| [--require](https://mochajs.org/#-require-module-r-module)      | [--import](https://nodejs.org/docs/latest-v22.x/api/cli.html#--importmodule)                 |\n| [--timeout](https://mochajs.org/#-timeout-ms-t-ms)              | [--test-timeout](https://nodejs.org/docs/latest-v22.x/api/cli.html#--test-timeout)           |\n","readmeFilename":"README.md"}