Nimble Package Maestros


    8.0.0 • Public • Published


    A convenient aggregation of quality npm modules to be used for writing unit tests. Just install this module and you get everything needed at once!

    This modules bundles:

    • mocha
    • chai
    • sinon
    • sinon-chai
    • chai-as-promised
    • chai-subset
    • chai-moment
    • (optional) chai-fetch-mock
    • eslint-plugin-mocha and eslint-plugin-chai-expect
    • all corresponding TypeScript types
    • @offirmo/universal-debug-api-node

    It also exposes:

    • a pre-made plumbing for:
      • activating the chai.expect interface
      • activating correctly the chai plugins: sinon-chai, chai-as-promised, chai-subset, chai-moment, [chai-fetch-mock if present]
    • a pre-made mocha options file

    Introduction - the problem

    Writing unit tests in JavaScript with mocha/chai requires assembling a bunch of modules and repeating the same operations:

    👎 WITHOUT @offirmo/unit-test-toolbox 👎 :hurtrealbad::

    1. remembering all the libs needed
    2. installing them: npm install mocha chai sinon sinon-chai chai-as-promised chai-subset chai-moment
    3. if using typescript: npm install @types/mocha @types/chai @types/sinon @types/sinon-chai @types/chai-as-promised
    4. write an init file for activating chai.expect (what else ?), sinon-chai and chai-as-promised
    5. write the npm task "test": "mocha --config mocharc.json path/to/init.js '<glob_to_my_tests/**/*spec.js>'"
    6. keep all those dependencies up-to-date

    The proposed solution:

    👍 WITH @offirmo/unit-test-toolbox 👍 😎:

    1. install only one module npm i -D @offirmo/unit-test-toolbox
    2. write this npm task "test": "mocha --config node_modules/@offirmo/unit-test-toolbox/mocharc.json node_modules/@offirmo/unit-test-toolbox/mocha-chai-init-node.js '<glob_to_my_tests/**/*spec.js>'"
    3. keep just @offirmo/unit-test-toolbox up-to-date

    Installation & usage

    recent npm

    Targeting npm >= 3 (for we abuse the flat deps)

    npm i --save-dev @offirmo/unit-test-toolbox

    If you want to use the pre-written init file, reference it in your test task:

      "scripts": {
        "test": "mocha --opts node_modules/@offirmo/unit-test-toolbox/mocha.opts node_modules/@offirmo/unit-test-toolbox/mocha-chai-init.js 'test/unit/src/**/*spec.js'"

    See also


    Suggestions welcome.


    npm i @offirmo/unit-test-toolbox

    DownloadsWeekly Downloads






    Unpacked Size

    8.63 kB

    Total Files


    Last publish


    • offirmo