mirror of
https://github.com/zkldi/Tachi.git
synced 2026-10-09 15:19:50 +03:00
144 lines
3.2 KiB
JavaScript
144 lines
3.2 KiB
JavaScript
const fs = require('fs')
|
|
const mkdirp = require('mkdirp')
|
|
const {
|
|
tmpfile,
|
|
run,
|
|
bin,
|
|
tap,
|
|
node,
|
|
dir,
|
|
t,
|
|
} = require('./')
|
|
|
|
if (process.env.TAP_SNAPSHOT !== '1')
|
|
t.jobs = require('os').cpus.length
|
|
|
|
t.test('no args', t => {
|
|
const c = run([], {
|
|
cwd: dir,
|
|
}, (er, o, e) => {
|
|
t.match(er, { code: 1 })
|
|
t.match(o, /no tests specified/)
|
|
t.equal(e, '')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('stdin parsing', t => {
|
|
const c = run(['-'], {}, (er, o, e) => {
|
|
t.match(er, null)
|
|
t.equal(e, '')
|
|
t.end()
|
|
})
|
|
c.stdin.end('TAP version 13\n1..1\nok\n')
|
|
})
|
|
|
|
t.test('--help', t => {
|
|
run(['--help'], null, (er, o, e) => {
|
|
t.equal(er, null)
|
|
t.match(o, /^Usage:/)
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('--nyc-help', t => {
|
|
run(['--nyc-help'], null, (er, o, e) => {
|
|
t.equal(er, null)
|
|
t.match(o, /\nOptions:\n/)
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('--version', t => {
|
|
run(['--version'], null, (er, o, e) => {
|
|
t.equal(er, null)
|
|
t.equal(o.trim(), require('../../package.json').version)
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('--versions', t => {
|
|
run(['--versions'], null, (er, o, e) => {
|
|
t.equal(er, null)
|
|
t.matchSnapshot(o.replace(/^([^:]+): (.*)$/gm, '$1: {version}'), 'output')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('--parser-version', t => {
|
|
run(['--parser-version'], null, (er, o, e) => {
|
|
t.equal(er, null)
|
|
t.matchSnapshot(o, 'output')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('--nyc-version', t => {
|
|
run(['--nyc-version'], null, (er, o, e) => {
|
|
t.equal(er, null)
|
|
t.equal(o.trim(), require('nyc/package.json').version)
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('unknown arg throws', t => {
|
|
run(['--blerg'], null, (er, o, e) => {
|
|
t.match(er, { code: 1 })
|
|
t.match(e, 'invalid argument: --blerg')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('unknown short opt', t => {
|
|
run(['-bCx'], null, (er, o, e) => {
|
|
t.match(er, { code: 1 })
|
|
t.match(e, 'invalid argument: -x')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('basic test run', t => {
|
|
const ok = tmpfile(t, 'ok.js', `require(${tap}).pass('this is fine')`)
|
|
const args = ['-iSCbFt0', '-g/nope/i', '--', ok]
|
|
run(args, null, (err, stdout, stderr) => {
|
|
t.matchSnapshot(stdout, 'ok.js output')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('ignored files', t => {
|
|
mkdirp.sync(`${dir}/ig/test/node_modules`)
|
|
mkdirp.sync(`${dir}/ig/node_modules`)
|
|
const ok = tmpfile(t, 'ig/test/ok.js',
|
|
`require(${tap}).pass('this is fine')`)
|
|
const nope = tmpfile(t, 'ig/node_modules/nope.test.js',
|
|
`require(${tap}).fail('i should not be included')`)
|
|
const nope2 = tmpfile(t, 'ig/test/node_modules/nope.test.js',
|
|
`require(${tap}).fail('should also not be included')`)
|
|
tmpfile(t, 'ig/test/node_modules/foo.test.js',
|
|
`require(${tap}).fail('no foo included')`)
|
|
tmpfile(t, 'ig/test/foo.test.js',
|
|
`require(${tap}).fail('no foo included')`)
|
|
tmpfile(t, 'ig/foo.test.js',
|
|
`require(${tap}).fail('no foo included')`)
|
|
|
|
const args = ['--test-ignore=foo\\.test\\.js$']
|
|
const env = {}
|
|
const cwd = dir + '/ig'
|
|
run([args], { cwd, env }, (er, o, e) => {
|
|
t.equal(er, null)
|
|
t.matchSnapshot(o, 'stdout')
|
|
t.matchSnapshot(e, 'stdout')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
t.test('nonexistent file', t => {
|
|
run(['does not exist'], null, (er, o, e) => {
|
|
t.match(er, { code: 1 })
|
|
t.matchSnapshot(o, 'stdout')
|
|
t.matchSnapshot(e, 'stderr')
|
|
t.end()
|
|
})
|
|
})
|