UNPKG

1.4 kBJavaScriptView Raw
1'use strict';
2
3var gaze = require('../lib/gaze');
4var grunt = require('grunt');
5var path = require('path');
6
7// Folder to watch
8var watchDir = path.resolve(__dirname, 'watch');
9
10// Helper for creating mock files
11function createFiles(num, dir) {
12 for (var i = 0; i < num; i++) {
13 grunt.file.write(path.join(dir, 'test-' + i + '.js'), 'var test = ' + i + ';');
14 }
15}
16
17module.exports = {
18 'setUp': function(done) {
19 // ensure that your `ulimit -n` is higher than amount of files
20 if (grunt.file.exists(watchDir)) {
21 grunt.file.delete(watchDir, {force:true});
22 }
23 createFiles(100, path.join(watchDir, 'one'));
24 createFiles(100, path.join(watchDir, 'two'));
25 createFiles(100, path.join(watchDir, 'three'));
26 createFiles(100, path.join(watchDir, 'three', 'four'));
27 createFiles(100, path.join(watchDir, 'three', 'four', 'five', 'six'));
28 process.chdir(watchDir);
29 done();
30 },
31 'tearDown': function(done) {
32 if (grunt.file.exists(watchDir)) {
33 grunt.file.delete(watchDir, {force:true});
34 }
35 done();
36 },
37 changed: function(done) {
38 gaze('**/*', {maxListeners:0}, function(err, watcher) {
39 this.on('changed', done);
40 setTimeout(function() {
41 var rand = String(new Date().getTime()).replace(/[^\w]+/g, '');
42 grunt.file.write(path.join(watchDir, 'one', 'test-99.js'), 'var test = "' + rand + '"');
43 }, 100);
44 });
45 }
46};
\No newline at end of file