-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Writing Tests
Ruy Adorno edited this page Mar 3, 2021
·
5 revisions
All tests are written using tap as our test framework.
Before running any tests make sure you install the cli dev dependencies using the cloned repo itself:
$ cd /path/to/cloned/npm/cli
$ node . install
You may then run all tests:
$ node . test
In order to run a single test, just execute the test file directly:
$ node test/lib/ls.js
# runs `npm ls` tests
If you need files on disk as part of your test, we use tap fixtures to handle that:
var path = require('path')
var t = require('tap')
t.test('test something', t => {
const path = t.testdir({
'package.json': JSON.stringify({
name: 'my-example-package',
version: '1.0.0'
})
})
t.ok(path, 'should return file path to a folder containing the created fixtures')
})
If you need to mock modules (by modules I mean anything you require
), you can use
require-inject.
Using it looks like:
test('name-of-group-of-tests', function (t) {
var gentlyRm = requireInject('../../path/to/module/being/tested.js', {
'mocked-module': {…mocked version…}
'../../path/to/mocked/module.js': {…mocked version…}
})
})