diff --git a/lib/monitor/watch.js b/lib/monitor/watch.js index 5b6e38c4..fe26c283 100644 --- a/lib/monitor/watch.js +++ b/lib/monitor/watch.js @@ -70,7 +70,7 @@ function watch() { var watcher = chokidar.watch( dirs, - Object.assign({}, watchOptions, config.watchOptions || {}) + Object.assign({}, watchOptions, config.options.watchOptions || {}) ); watcher.ready = false; diff --git a/test/fixtures/configs/watch-options.json b/test/fixtures/configs/watch-options.json new file mode 100644 index 00000000..858db5cf --- /dev/null +++ b/test/fixtures/configs/watch-options.json @@ -0,0 +1,6 @@ +{ + "ext": "json,js,html", + "watchOptions": { + "awaitWriteFinish": true + } +} diff --git a/test/monitor/watch.test.js b/test/monitor/watch.test.js new file mode 100644 index 00000000..34872c11 --- /dev/null +++ b/test/monitor/watch.test.js @@ -0,0 +1,29 @@ +'use-strict'; + +var assert = require('assert'); +var chokidar = require('chokidar'); +var process = require('process'); +var config = require('../../lib/config'); +var watch = require('../../lib/monitor/watch'); + +describe('watch', function() { + it('should pass watchOptions to the watcher', function(done) { + process.chdir(process.cwd() + '/test/fixtures/configs'); + + var passedOptions = {}; + var originalWatch = chokidar.watch; + chokidar.watch = function(dirs, options) { + passedOptions = options; + return originalWatch(dirs, options); + }; + + config.load({ + configFile: process.cwd() + '/watch-options.json' + }, () => { + watch.watch(); + chokidar.watch = originalWatch; + assert(passedOptions.awaitWriteFinish, 'awaitWriteFinish does not have the correct value'); + done(); + }); + }); +})