blob: 6949ac974d4023b68e2d8555881c50de637e069b [file] [log] [blame]
'use strict';
var Gaze = require('../lib/gaze.js').Gaze;
var path = require('path');
var fs = require('fs');
exports.add = {
setUp: function(done) {
process.chdir(path.resolve(__dirname, 'fixtures'));
done();
},
addToWatched: function(test) {
test.expect(1);
var files = [
'Project (LO)/',
'Project (LO)/one.js',
'nested/',
'nested/one.js',
'nested/three.js',
'nested/sub/',
'nested/sub/two.js',
'one.js'
];
var expected = {
'Project (LO)/': ['one.js'],
'.': ['Project (LO)/', 'nested/', 'one.js'],
'nested/': ['one.js', 'three.js', 'sub/'],
'nested/sub/': ['two.js']
};
var gaze = new Gaze('addnothingtowatch');
gaze._addToWatched(files);
test.deepEqual(gaze.relative(null, true), expected);
test.done();
},
addLater: function(test) {
test.expect(3);
new Gaze('sub/one.js', function(err, watcher) {
test.deepEqual(watcher.relative('sub'), ['one.js']);
watcher.add('sub/*.js', function() {
test.deepEqual(watcher.relative('sub'), ['one.js', 'two.js']);
watcher.on('changed', function(filepath) {
test.equal('two.js', path.basename(filepath));
watcher.close();
test.done();
});
fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'two.js'), 'var two = true;');
});
});
}
};