-
Notifications
You must be signed in to change notification settings - Fork 2.9k
/
test.js
40 lines (35 loc) · 970 Bytes
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const t = require('tap')
const requireInject = require('require-inject')
let RUN_ARGS = null
const npmock = {
commands: {
'run-script': (args, cb) => {
RUN_ARGS = args
cb()
},
},
}
const test = requireInject('../../lib/test.js', {
'../../lib/npm.js': npmock,
})
t.test('run a test', t => {
test([], (er) => {
t.strictSame(RUN_ARGS, ['test'], 'added "test" to the args')
})
test(['hello', 'world'], (er) => {
t.strictSame(RUN_ARGS, ['test', 'hello', 'world'], 'added positional args')
})
const lcErr = Object.assign(new Error('should not see this'), {
code: 'ELIFECYCLE',
})
const otherErr = new Error('should see this')
npmock.commands['run-script'] = (args, cb) => cb(lcErr)
test([], (er) => {
t.equal(er, 'Test failed. See above for more details.')
})
npmock.commands['run-script'] = (args, cb) => cb(otherErr)
test([], (er) => {
t.match(er, { message: 'should see this' })
})
t.end()
})