var EventEmitter = require('events').EventEmitter, | |
fileset = require('../'), | |
assert = require('assert'), | |
test = require('./helper'); | |
// Given a **.coffee pattern | |
test('Given a **.md pattern', function() { | |
return { | |
'should return the list of matching file in this repo': function(em) { | |
fileset('*.md', function(err, results) { | |
if(err) return em.emit('error', err); | |
assert.ok(Array.isArray(results), 'should be an array'); | |
assert.ok(results.length, 'should return at least one element'); | |
assert.equal(results.length, 1, 'actually, should return only one'); | |
em.emit('end'); | |
}); | |
} | |
} | |
}); | |
test('Say we want the **.js files, but not those in node_modules', function() { | |
return { | |
'Should recursively walk the dir and return the matching list': function(em) { | |
fileset('**/*.js', 'node_modules/**', function(err, results) { | |
if(err) return em.emit('error', err); | |
assert.ok(Array.isArray(results), 'should be an array'); | |
assert.equal(results.length, 4); | |
em.emit('end'); | |
}); | |
}, | |
'Should support multiple paths at once': function(em) { | |
fileset('**/*.js *.md', 'node_modules/**', function(err, results) { | |
if(err) return em.emit('error', err); | |
assert.ok(Array.isArray(results), 'should be an array'); | |
assert.equal(results.length, 5); | |
assert.deepEqual(results, [ | |
'README.md', | |
'lib/fileset.js', | |
'tests/fixtures/an (odd) filename.js', | |
'tests/helper.js', | |
'tests/test.js' | |
]); | |
em.emit('end'); | |
}); | |
}, | |
'Should support multiple paths for excludes as well': function(em) { | |
fileset('**/*.js *.md', 'node_modules/** **.md tests/*.js', function(err, results) { | |
if(err) return em.emit('error', err); | |
assert.ok(Array.isArray(results), 'should be an array'); | |
assert.equal(results.length, 2); | |
assert.deepEqual(results, [ | |
'lib/fileset.js', | |
'tests/fixtures/an (odd) filename.js', | |
]); | |
em.emit('end'); | |
}); | |
} | |
} | |
}); | |
test('Testing out emmited events', function() { | |
// todos: the tests for match, include, exclude events, but seems like it's ok | |
return { | |
'Should recursively walk the dir and return the matching list': function(em) { | |
fileset('**/*.js', 'node_modules/**') | |
.on('error', em.emit.bind(em, 'error')) | |
.on('end', function(results) { | |
assert.ok(Array.isArray(results), 'should be an array'); | |
assert.equal(results.length, 4); | |
em.emit('end'); | |
}); | |
}, | |
'Should support multiple paths at once': function(em) { | |
fileset('**/*.js *.md', 'node_modules/**') | |
.on('error', em.emit.bind(em, 'error')) | |
.on('end', function(results) { | |
assert.ok(Array.isArray(results), 'should be an array'); | |
assert.equal(results.length, 5); | |
assert.deepEqual(results, [ | |
'README.md', | |
'lib/fileset.js', | |
'tests/fixtures/an (odd) filename.js', | |
'tests/helper.js', | |
'tests/test.js' | |
]); | |
em.emit('end'); | |
}); | |
} | |
} | |
}); | |
test('Testing patterns passed as arrays', function() { | |
return { | |
'Should match files passed as an array with odd filenames': function(em) { | |
fileset(['lib/*.js', 'tests/fixtures/an (odd) filename.js'], ['node_modules/**']) | |
.on('error', em.emit.bind(em, 'error')) | |
.on('end', function(results) { | |
assert.ok(Array.isArray(results), 'should be an array'); | |
assert.equal(results.length, 2); | |
assert.deepEqual(results, [ | |
'lib/fileset.js', | |
'tests/fixtures/an (odd) filename.js', | |
]); | |
em.emit('end'); | |
}); | |
} | |
} | |
}); | |
test.run(); | |