UNPKG

1.45 kBJavaScriptView Raw
1'use strict';
2
3var Gaze = require('../lib/gaze.js').Gaze;
4var path = require('path');
5var fs = require('fs');
6
7var fixtures = path.resolve(__dirname, 'fixtures');
8
9exports.add = {
10 setUp: function(done) {
11 process.chdir(fixtures);
12 done();
13 },
14 addToWatched: function(test) {
15 test.expect(1);
16 var files = [
17 'Project (LO)/',
18 'Project (LO)/one.js',
19 'nested/',
20 'nested/one.js',
21 'nested/three.js',
22 'nested/sub/',
23 'nested/sub/two.js',
24 'one.js',
25 ];
26 var expected = {
27 'Project (LO)/': ['one.js'],
28 '.': ['Project (LO)/', 'nested/', 'one.js', 'sub/'],
29 'nested/': ['sub/', 'sub2/', 'one.js', 'three.js'],
30 'nested/sub/': ['two.js'],
31 };
32 var gaze = new Gaze('addnothingtowatch');
33 gaze._addToWatched(files);
34 test.deepEqual(gaze.relative(null, true), expected);
35 test.done();
36 },
37 addLater: function(test) {
38 test.expect(3);
39 new Gaze('sub/one.js', function(err, watcher) {
40 test.deepEqual(watcher.relative('sub'), ['one.js']);
41 watcher.add('sub/*.js', function() {
42 test.deepEqual(watcher.relative('sub'), ['one.js', 'two.js']);
43 watcher.on('changed', function(filepath) {
44 test.equal('two.js', path.basename(filepath));
45 watcher.close();
46 test.done();
47 });
48 fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'two.js'), 'var two = true;');
49 });
50 });
51 }
52};