|
|
@ -5,6 +5,8 @@ var fs = require('fs') |
|
|
|
var fse = require('../') |
|
|
|
var testutil = require('./_lib/util') |
|
|
|
|
|
|
|
/* global afterEach, beforeEach, describe, it */ |
|
|
|
|
|
|
|
var TEST_DIR = '' |
|
|
|
var FIXTURES_DIR = '' |
|
|
|
var SRC_FIXTURES_DIR = 'test/fixtures/move' |
|
|
@ -19,12 +21,15 @@ mock_fs.rename = function(src, dest, callback) { |
|
|
|
}, 10) |
|
|
|
} |
|
|
|
|
|
|
|
describe("move", function() { |
|
|
|
describe('move', function () { |
|
|
|
beforeEach(function () { |
|
|
|
TEST_DIR = testutil.createTestDir('fs-extra') |
|
|
|
TEST_DIR = path.join(TEST_DIR, 'move') |
|
|
|
if (!fs.existsSync(TEST_DIR)) |
|
|
|
|
|
|
|
if (!fs.existsSync(TEST_DIR)) { |
|
|
|
fs.mkdirSync(TEST_DIR) |
|
|
|
} |
|
|
|
|
|
|
|
FIXTURES_DIR = path.join(TEST_DIR, 'fixtures') |
|
|
|
fse.copySync(SRC_FIXTURES_DIR, FIXTURES_DIR) |
|
|
|
}) |
|
|
@ -33,7 +38,7 @@ describe("move", function() { |
|
|
|
rimraf.sync(TEST_DIR) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should rename a file on the same device", function (done) { |
|
|
|
it('should rename a file on the same device', function (done) { |
|
|
|
var src = FIXTURES_DIR + '/a-file' |
|
|
|
var dest = FIXTURES_DIR + '/a-file-dest' |
|
|
|
|
|
|
@ -41,28 +46,28 @@ describe("move", function() { |
|
|
|
assert.ifError(err) |
|
|
|
fs.readFile(dest, 'utf8', function (err, contents) { |
|
|
|
assert.ifError(err) |
|
|
|
assert.strictEqual(contents, "sonic the hedgehog\n") |
|
|
|
assert.strictEqual(contents, 'sonic the hedgehog\n') |
|
|
|
done() |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should not overwrite if clobber = false", function (done) { |
|
|
|
var src = FIXTURES_DIR + "/a-file" |
|
|
|
var dest = FIXTURES_DIR + "/a-folder/another-file" |
|
|
|
it('should not overwrite if clobber = false', function (done) { |
|
|
|
var src = FIXTURES_DIR + '/a-file' |
|
|
|
var dest = FIXTURES_DIR + '/a-folder/another-file' |
|
|
|
|
|
|
|
// verify file exists already
|
|
|
|
assert(fs.existsSync(dest)) |
|
|
|
|
|
|
|
fse.move(src, dest, {clobber: false}, function (err) { |
|
|
|
assert.ok(err && err.code === 'EEXIST', "throw EEXIST") |
|
|
|
assert.ok(err && err.code === 'EEXIST', 'throw EEXIST') |
|
|
|
done() |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should not create directory structure if mkdirp is false", function (done) { |
|
|
|
var src = FIXTURES_DIR + "/a-file" |
|
|
|
var dest = FIXTURES_DIR + "/does/not/exist/a-file-dest" |
|
|
|
it('should not create directory structure if mkdirp is false', function (done) { |
|
|
|
var src = FIXTURES_DIR + '/a-file' |
|
|
|
var dest = FIXTURES_DIR + '/does/not/exist/a-file-dest' |
|
|
|
|
|
|
|
// verify dest directory does not exist
|
|
|
|
assert(!fs.existsSync(path.dirname(dest))) |
|
|
@ -73,9 +78,9 @@ describe("move", function() { |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should create directory structure by default", function (done) { |
|
|
|
var src = FIXTURES_DIR + "/a-file" |
|
|
|
var dest = FIXTURES_DIR + "/does/not/exist/a-file-dest" |
|
|
|
it('should create directory structure by default', function (done) { |
|
|
|
var src = FIXTURES_DIR + '/a-file' |
|
|
|
var dest = FIXTURES_DIR + '/does/not/exist/a-file-dest' |
|
|
|
|
|
|
|
// verify dest directory does not exist
|
|
|
|
assert(!fs.existsSync(path.dirname(dest))) |
|
|
@ -84,15 +89,15 @@ describe("move", function() { |
|
|
|
assert.ifError(err) |
|
|
|
fs.readFile(dest, 'utf8', function (err, contents) { |
|
|
|
assert.ifError(err) |
|
|
|
assert.strictEqual(contents, "sonic the hedgehog\n") |
|
|
|
assert.strictEqual(contents, 'sonic the hedgehog\n') |
|
|
|
done() |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should work across devices", function (done) { |
|
|
|
var src = FIXTURES_DIR + "/a-file" |
|
|
|
var dest = FIXTURES_DIR + "/a-file-dest" |
|
|
|
it('should work across devices', function (done) { |
|
|
|
var src = FIXTURES_DIR + '/a-file' |
|
|
|
var dest = FIXTURES_DIR + '/a-file-dest' |
|
|
|
|
|
|
|
var oldRename = fs.rename |
|
|
|
fs.rename = mock_fs.rename |
|
|
@ -101,7 +106,7 @@ describe("move", function() { |
|
|
|
assert.ifError(err) |
|
|
|
fs.readFile(dest, 'utf8', function (err, contents) { |
|
|
|
assert.ifError(err) |
|
|
|
assert.strictEqual(contents, "sonic the hedgehog\n") |
|
|
|
assert.strictEqual(contents, 'sonic the hedgehog\n') |
|
|
|
|
|
|
|
// restore
|
|
|
|
fs.rename = oldRename |
|
|
@ -111,35 +116,35 @@ describe("move", function() { |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should move folders", function (done) { |
|
|
|
var src = FIXTURES_DIR + "/a-folder" |
|
|
|
var dest = FIXTURES_DIR + "/a-folder-dest" |
|
|
|
it('should move folders', function (done) { |
|
|
|
var src = FIXTURES_DIR + '/a-folder' |
|
|
|
var dest = FIXTURES_DIR + '/a-folder-dest' |
|
|
|
|
|
|
|
// verify it doesn't exist
|
|
|
|
assert(!fs.existsSync(dest)) |
|
|
|
|
|
|
|
fse.move(src, dest, function (err) { |
|
|
|
assert.ifError(err) |
|
|
|
fs.readFile(dest + "/another-file", 'utf8', function (err, contents) { |
|
|
|
fs.readFile(dest + '/another-file', 'utf8', function (err, contents) { |
|
|
|
assert.ifError(err) |
|
|
|
assert.strictEqual(contents, "tails\n") |
|
|
|
assert.strictEqual(contents, 'tails\n') |
|
|
|
done() |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
it("should move folders across devices", function (done) { |
|
|
|
var src = FIXTURES_DIR + "/a-folder" |
|
|
|
var dest = FIXTURES_DIR + "/a-folder-dest" |
|
|
|
it('should move folders across devices', function (done) { |
|
|
|
var src = FIXTURES_DIR + '/a-folder' |
|
|
|
var dest = FIXTURES_DIR + '/a-folder-dest' |
|
|
|
|
|
|
|
var oldRename = fs.rename |
|
|
|
fs.rename = mock_fs.rename |
|
|
|
|
|
|
|
fse.move(src, dest, function (err) { |
|
|
|
assert.ifError(err) |
|
|
|
fs.readFile(dest + "/another-folder/file3", 'utf8', function (err, contents) { |
|
|
|
fs.readFile(dest + '/another-folder/file3', 'utf8', function (err, contents) { |
|
|
|
assert.ifError(err) |
|
|
|
assert.strictEqual(contents, "knuckles\n") |
|
|
|
assert.strictEqual(contents, 'knuckles\n') |
|
|
|
|
|
|
|
// restore
|
|
|
|
fs.rename = oldRename |
|
|
@ -194,8 +199,9 @@ describe("move", function() { |
|
|
|
var src = '/mnt/some/weird/dir-really-weird' |
|
|
|
var dest = path.join(TEST_DIR, 'device-weird') |
|
|
|
|
|
|
|
if (!fs.existsSync(src)) |
|
|
|
if (!fs.existsSync(src)) { |
|
|
|
fse.mkdirpSync(src) |
|
|
|
} |
|
|
|
|
|
|
|
assert(!fs.existsSync(dest)) |
|
|
|
|
|
|
@ -211,9 +217,7 @@ describe("move", function() { |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
describe('> a folder with a bunch of stuff', function() { |
|
|
|
|
|
|
|
}) |
|
|
|
describe('> a folder with a bunch of stuff', function () {}) |
|
|
|
|
|
|
|
describe('> when clobber = true', function () { |
|
|
|
describe('> when dest is a directory', function () { |
|
|
@ -242,8 +246,8 @@ describe("move", function() { |
|
|
|
|
|
|
|
// verify dest does not have old stuff
|
|
|
|
var paths = fs.readdirSync(dest) |
|
|
|
assert(paths.indexOf('a-file') == -1) |
|
|
|
assert(paths.indexOf('a-folder') == -1) |
|
|
|
assert.strictEqual(paths.indexOf('a-file'), -1) |
|
|
|
assert.strictEqual(paths.indexOf('a-folder'), -1) |
|
|
|
|
|
|
|
// verify dest has new stuff
|
|
|
|
assert(paths.indexOf('some-file') >= 0) |
|
|
@ -256,7 +260,3 @@ describe("move", function() { |
|
|
|
}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|