| |
| 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(); |
| |
| |