UNPKG

catlogjs

Version:

Static site generator, translate human readable text format(such as markdown) into html, with a lot of other functions

134 lines (128 loc) 5.32 kB
'use strict'; var grunt = require('grunt'); var path = require('path'); var fs = require('fs'); var helper = require('./helper'); var fixtures = helper.fixtures; function cleanUp() { helper.cleanUp([ 'events/node_modules', 'events/lib/added.js' ]); } function writeAll(cwd) { var write = 'var one = true;'; grunt.file.write(path.join(cwd, 'lib', 'added.js'), write); setTimeout(function() { grunt.file.write(path.join(cwd, 'lib', 'one.js'), write); }, 300); setTimeout(function() { grunt.file.delete(path.join(cwd, 'lib', 'added.js')); }, 300); } exports.events = { setUp: function(done) { cleanUp(); fs.symlinkSync(path.join(__dirname, '../../node_modules'), path.join(fixtures, 'events', 'node_modules')); done(); }, tearDown: function(done) { cleanUp(); done(); }, events: function(test) { test.expect(3); var cwd = path.resolve(fixtures, 'events'); var assertWatch = helper.assertTask('watch:all', {cwd: cwd}); assertWatch([function() { writeAll(cwd); }], function(result) { result = helper.unixify(result); helper.verboseLog(result); test.ok(result.indexOf('lib/added.js was indeed added') !== -1, 'event not emitted when file added'); test.ok(result.indexOf('lib/one.js was indeed changed') !== -1, 'event not emitted when file changed'); test.ok(result.indexOf('lib/added.js was indeed deleted') !== -1, 'event not emitted when file deleted'); test.done(); }); }, onlyAdded: function(test) { test.expect(3); var cwd = path.resolve(fixtures, 'events'); var assertWatch = helper.assertTask('watch:onlyAdded', {cwd: cwd}); assertWatch([function() { writeAll(cwd); }], function(result) { result = helper.unixify(result); helper.verboseLog(result); test.ok(result.indexOf('lib/added.js was indeed added') !== -1, 'event not emitted when file added'); test.ok(result.indexOf('lib/one.js was indeed changed') === -1, 'event should NOT have emitted when file changed'); test.ok(result.indexOf('lib/added.js was indeed deleted') === -1, 'event should NOT have emitted when file deleted'); test.done(); }); }, onlyChanged: function(test) { test.expect(3); var cwd = path.resolve(fixtures, 'events'); var assertWatch = helper.assertTask('watch:onlyChanged', {cwd: cwd}); assertWatch([function() { writeAll(cwd); }], function(result) { result = helper.unixify(result); helper.verboseLog(result); test.ok(result.indexOf('lib/added.js was indeed added') === -1, 'event should NOT have emitted when file added'); test.ok(result.indexOf('lib/one.js was indeed changed') !== -1, 'event should have emitted when file changed'); test.ok(result.indexOf('lib/added.js was indeed deleted') === -1, 'event should NOT have emitted when file deleted'); test.done(); }); }, onlyDeleted: function(test) { test.expect(3); var cwd = path.resolve(fixtures, 'events'); var assertWatch = helper.assertTask('watch:onlyDeleted', {cwd: cwd}); assertWatch([function() { writeAll(cwd); }], function(result) { result = helper.unixify(result); helper.verboseLog(result); test.ok(result.indexOf('lib/added.js was indeed added') === -1, 'event should NOT have emitted when file added'); test.ok(result.indexOf('lib/one.js was indeed changed') === -1, 'event should NOT have emitted when file changed'); test.ok(result.indexOf('lib/added.js was indeed deleted') !== -1, 'event should have emitted when file deleted'); test.done(); }); }, onlyAddedAndDeleted: function(test) { test.expect(3); var cwd = path.resolve(fixtures, 'events'); var assertWatch = helper.assertTask('watch:onlyAddedAndDeleted', {cwd: cwd}); assertWatch([function() { writeAll(cwd); }], function(result) { result = helper.unixify(result); helper.verboseLog(result); test.ok(result.indexOf('lib/added.js was indeed added') !== -1, 'event should have emitted when file added'); test.ok(result.indexOf('lib/one.js was indeed changed') === -1, 'event should NOT have emitted when file changed'); test.ok(result.indexOf('lib/added.js was indeed deleted') !== -1, 'event should have emitted when file deleted'); test.done(); }); }, targetSpecific: function(test) { test.expect(2); var cwd = path.resolve(fixtures, 'events'); var assertWatch = helper.assertTask('watch', {cwd: cwd}); assertWatch([function() { var write = 'var test = false;'; setTimeout(function() { grunt.file.write(path.join(cwd, 'lib/one', 'test.js'), write); }, 300); setTimeout(function() { grunt.file.write(path.join(cwd, 'lib/two', 'test.js'), write); }, 300); }], function(result) { result = helper.unixify(result); helper.verboseLog(result); test.ok(result.indexOf('lib/one/test.js was indeed changed\ntargetOne specifc event was fired') !== -1, 'event should have been emitted with targetOne specified'); test.ok(result.indexOf('lib/two/test.js was indeed changed\ntargetTwo specifc event was fired') !== -1, 'event should have been emitted with targetTwo specified'); test.done(); }); } };