diff --git a/doc/guides/writing-tests.md b/doc/guides/writing-tests.md index 3ea221901195dc..1fa2b3c558f876 100644 --- a/doc/guides/writing-tests.md +++ b/doc/guides/writing-tests.md @@ -138,11 +138,15 @@ platforms. ### The *common* API -Make use of the helpers from the `common` module as much as possible. +Make use of the helpers from the `common` module as much as possible. Please refer +to the [common file documentation](https://github.com/nodejs/node/tree/master/test/common) +for the full details of the helpers. -One interesting case is `common.mustCall`. The use of `common.mustCall` may -avoid the use of extra variables and the corresponding assertions. Let's explain -this with a real test from the test suite. +#### common.mustCall + +One interesting case is `common.mustCall`. The use of `common.mustCall` may avoid +the use of extra variables and the corresponding assertions. Let's explain this +with a real test from the test suite. ```javascript 'use strict'; @@ -194,6 +198,23 @@ const server = http.createServer(common.mustCall(function(req, res) { }); ``` +#### Countdown Module + +The common [Countdown module](https://github.com/nodejs/node/tree/master/test/common#countdown-module) provides a simple countdown mechanism for tests that +require a particular action to be taken after a given number of completed tasks +(for instance, shutting down an HTTP server after a specific number of requests). + +```javascript +const Countdown = require('../common/countdown'); + +const countdown = new Countdown(2, function() { + console.log('.'); +}); + +countdown.dec(); +countdown.dec(); // The countdown callback will be invoked now. +``` + ### Flags