diff --git a/lib/main.js b/lib/main.js index 19d9ab55..7653c3c0 100644 --- a/lib/main.js +++ b/lib/main.js @@ -191,7 +191,7 @@ Lambda.prototype._rsync = function (program, src, dest, excludeNodeModules, call return '--exclude=' + exclude; }).join(' '); - exec('mkdir -p ' + dest, function (err) { + fs.mkdirs(dest, function (err) { if (err) { return callback(err); } @@ -298,7 +298,7 @@ Lambda.prototype._codeDirectory = function (program) { }; Lambda.prototype._cleanDirectory = function (codeDirectory, callback) { - exec('rm -rf ' + codeDirectory, function (err) { + fs.remove(codeDirectory, function (err) { if (err) { throw err; } diff --git a/test/main.js b/test/main.js index ba75e1d8..3f47d931 100644 --- a/test/main.js +++ b/test/main.js @@ -137,6 +137,30 @@ describe('node-lambda', function () { }); }); + describe('_cleanDirectory', function () { + it('`codeDirectory` is empty', function (done) { + lambda._cleanDirectory(codeDirectory, function () { + assert.isTrue(fs.existsSync(codeDirectory)); + const contents = fs.readdirSync(codeDirectory); + assert.equal(contents.length, 0); + done(); + }); + }); + + it('`codeDirectory` is empty. (For `codeDirectory` where the file was present)', function (done) { + lambda._rsync(program, '.', codeDirectory, true, function (err, result) { + const contents = fs.readdirSync(codeDirectory); + assert.isTrue(contents.length > 0); + lambda._cleanDirectory(codeDirectory, function () { + assert.isTrue(fs.existsSync(codeDirectory)); + const contents = fs.readdirSync(codeDirectory); + assert.equal(contents.length, 0); + done(); + }); + }); + }); + }); + describe('_rsync', function () { beforeEach(function (done) { lambda._cleanDirectory(codeDirectory, done);