From 8d978db84dd7e236f6d34b740cb641d823480be5 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Fri, 3 Mar 2017 14:25:58 -0800 Subject: [PATCH] Don't move when source and dest paths are the same. --- lib/move/__tests__/move.test.js | 20 ++++++++++++++++++++ lib/move/index.js | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/move/__tests__/move.test.js b/lib/move/__tests__/move.test.js index fc467b96..efd94f96 100644 --- a/lib/move/__tests__/move.test.js +++ b/lib/move/__tests__/move.test.js @@ -69,6 +69,26 @@ describe('move', () => { }) }) + it('should not move a file if source and destination are the same', done => { + const src = `${TEST_DIR}/a-file` + const dest = src + + fse.move(src, dest, err => { + assert.ifError(err) + done() + }) + }) + + it('should not move a directory if source and destination are the same', done => { + const src = `${TEST_DIR}/a-folder` + const dest = src + + fse.move(src, dest, err => { + assert.ifError(err) + done() + }) + }) + it('should not overwrite the destination by default', done => { const src = `${TEST_DIR}/a-file` const dest = `${TEST_DIR}/a-folder/another-file` diff --git a/lib/move/index.js b/lib/move/index.js index 195ab9f7..6bbdaf48 100644 --- a/lib/move/index.js +++ b/lib/move/index.js @@ -35,7 +35,9 @@ function move (source, dest, options, callback) { } function doRename () { - if (overwrite) { + if (path.resolve(source) === path.resolve(dest)) { + setImmediate(callback) + } else if (overwrite) { fs.rename(source, dest, err => { if (!err) return callback()