diff --git a/lib/ncp.js b/lib/ncp.js index 96eed47..a764c4f 100644 --- a/lib/ncp.js +++ b/lib/ncp.js @@ -91,7 +91,7 @@ function ncp (source, dest, options, callback) { return copyFile(file, target); } if(clobber) { - rmFile(target, function () { + return rmFile(target, function () { copyFile(file, target); }); } diff --git a/test/ncp.js b/test/ncp.js index ffe1244..acf7570 100644 --- a/test/ncp.js +++ b/test/ncp.js @@ -65,6 +65,26 @@ describe('ncp', function () { }); }); + describe('when using clobber=true', function () { + before(function () { + this.originalCreateReadStream = fs.createReadStream; + }); + + after(function () { + fs.createReadStream = this.originalCreateReadStream; + }); + + it('the copy is complete after callback', function (cb) { + ncp(src, out, {clobber: true}, function(err) { + fs.createReadStream = function() { + cb(new Error('createReadStream after callback')); + }; + assert.ifError(err); + process.nextTick(cb); + }); + }); + }); + describe('when using clobber=false', function () { it('the copy is completed successfully', function (cb) { ncp(src, out, function() {