Skip to content

Commit

Permalink
chore: Troubleshoot windows
Browse files Browse the repository at this point in the history
  • Loading branch information
coreyfarrell committed Jul 11, 2019
1 parent 674bb7c commit ef0a328
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 3 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
@@ -1,8 +1,8 @@
language: node_js
os:
- windows
- linux
- osx
# - linux
# - osx
node_js:
- "node"
- 10
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -6,7 +6,7 @@
"scripts": {
"lint": "standard",
"pretest": "npm run lint && npm run clean && npm run instrument",
"test": "tap",
"test": "tap test/should-instrument.js",
"snap": "npm test -- --snapshot",
"posttest": "npm run report",
"clean": "rimraf ./.nyc_output ./node_modules/.cache ./.self_coverage ./test/fixtures/.nyc_output ./test/fixtures/node_modules/.cache ./test/fixtures/cli/foo-cache ./test/temp-dir-* ./self-coverage",
Expand Down
78 changes: 78 additions & 0 deletions test/should-instrument.js
@@ -0,0 +1,78 @@
const path = require('path')
const NYC = require('../self-coverage')
const configUtil = require('../self-coverage/lib/config-util')
const fixtures = path.resolve(__dirname, './fixtures')

const t = require('tap')

const rootDir = path.resolve('/')
t.test('should exclude appropriately with defaults', t => {
const nyc = new NYC(configUtil.buildYargs(rootDir).parse([
'--exclude=test/**',
'--exclude=test{,-*}.js',
'--exclude=**/*.test.js',
'--exclude=**/__tests__/**'
]))

// nyc always excludes "node_modules/**"
t.true(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo.js'), 'foo.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'node_modules/bar.js'), 'node_modules/bar.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo/node_modules/bar.js'), 'foo/node_modules/bar.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'test.js'), 'test.js'))
t.true(nyc.exclude.shouldInstrument(path.join(rootDir, 'testfoo.js'), 'testfoo.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'test-foo.js'), 'test-foo.js'))
t.true(nyc.exclude.shouldInstrument(path.join(rootDir, 'lib/test.js'), 'lib/test.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo/bar/test.js'), './test.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo/bar/test.js'), '.\\test.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo/bar/foo.test.js'), './foo.test.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo/bar/__tests__/foo.js'), './__tests__/foo.js'))
t.done()
})

t.test('should exclude appropriately with config.exclude', t => {
const nyc = new NYC(configUtil.buildYargs(fixtures).parse())

// fixtures/package.json configures excludes: "blarg", "blerg"
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'blarg.js'), 'blarg.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'blarg/foo.js'), 'blarg/foo.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'blerg.js'), 'blerg.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'blerg.js'), './blerg.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'blerg.js'), '.\\blerg.js'))
t.done()
})

t.test('should exclude outside of the current working directory', t => {
const nyc = new NYC(configUtil.buildYargs(path.join(rootDir, 'foo')).parse())
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'bar.js'), '../bar.js'))
t.done()
})

t.test('should not exclude if the current working directory is inside node_modules', t => {
const cwd = path.join(rootDir, 'node_modules', 'foo')
const nyc = new NYC(configUtil.buildYargs(cwd).parse())
t.true(nyc.exclude.shouldInstrument(path.join(cwd, 'bar.js'), './bar.js'))
t.true(nyc.exclude.shouldInstrument(path.join(cwd, 'bar.js'), '.\\bar.js'))
t.done()
})

t.test('allows files to be explicitly included, rather than excluded', t => {
const nyc = new NYC(configUtil.buildYargs(rootDir).parse(['--include=foo.js']))

t.true(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo.js'), 'foo.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'index.js'), 'index.js'))
t.done()
})

t.test('exclude overrides include', t => {
const nyc = new NYC(configUtil.buildYargs(rootDir).parse([
'--include=foo.js',
'--include=test.js',
'--exclude=**/node_modules/**',
'--exclude=test/**',
'--exclude=test{,-*}.js'
]))

t.true(nyc.exclude.shouldInstrument(path.join(rootDir, 'foo.js'), 'foo.js'))
t.false(nyc.exclude.shouldInstrument(path.join(rootDir, 'test.js'), 'test.js'))
t.done()
})

0 comments on commit ef0a328

Please sign in to comment.