You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.2 KiB
65 lines
2.2 KiB
'use strict';
|
|
|
|
var grunt = require('grunt');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var helper = require('./helper');
|
|
|
|
var fixtures = helper.fixtures;
|
|
var useFixtures = ['nospawn'];
|
|
|
|
function cleanUp() {
|
|
useFixtures.forEach(function(fixture) {
|
|
helper.cleanUp(fixture + '/node_modules');
|
|
});
|
|
}
|
|
|
|
exports.nospawn = {
|
|
setUp: function(done) {
|
|
cleanUp();
|
|
useFixtures.forEach(function(fixture) {
|
|
fs.symlinkSync(path.join(__dirname, '../../node_modules'), path.join(fixtures, fixture, 'node_modules'));
|
|
});
|
|
done();
|
|
},
|
|
tearDown: function(done) {
|
|
cleanUp();
|
|
done();
|
|
},
|
|
nospawn: function(test) {
|
|
test.expect(3);
|
|
var cwd = path.resolve(fixtures, 'nospawn');
|
|
var assertWatch = helper.assertTask(['server', 'watch'], {cwd:cwd});
|
|
assertWatch(function() {
|
|
var write = 'var nospawn = true;';
|
|
grunt.file.write(path.join(cwd, 'lib', 'nospawn.js'), write);
|
|
}, function(result) {
|
|
helper.verboseLog(result);
|
|
var count = result.match((new RegExp('Running "watch" task', 'g'))).length;
|
|
test.equal(count, 2, 'Watch should have fired twice.');
|
|
test.ok(result.indexOf('Server is listening...') !== -1, 'server should have been started.');
|
|
test.ok(result.indexOf('Server is talking!') !== -1, 'server should have responded.');
|
|
test.done();
|
|
});
|
|
},
|
|
interrupt: function(test) {
|
|
test.expect(2);
|
|
var cwd = path.resolve(fixtures, 'nospawn');
|
|
var assertWatch = helper.assertTask('watch', {cwd:cwd});
|
|
assertWatch([function() {
|
|
var write = 'var interrupt = true;';
|
|
grunt.file.write(path.join(cwd, 'lib', 'interrupt.js'), write);
|
|
setTimeout(function() {
|
|
grunt.file.write(path.join(cwd, 'lib', 'interrupt.js'), write);
|
|
}, 1000);
|
|
}, function() {
|
|
// Two functions needed to run two rounds of watching
|
|
}], function(result) {
|
|
helper.verboseLog(result);
|
|
var count = result.match((new RegExp('Running "long" task', 'g'))).length;
|
|
test.equal(count, 4, 'long task should have been ran only 4 times.');
|
|
test.ok(result.indexOf('have been interrupted') !== -1, 'tasks should have been interrupted.');
|
|
test.done();
|
|
});
|
|
},
|
|
};
|