Browse Source

test/move: JavaScript Standard Style

ci/travis-osximage
JP Richardson 10 years ago
parent
commit
c896505335
  1. 112
      test/move.test.js

112
test/move.test.js

@ -1,39 +1,44 @@
var assert = require('assert') var assert = require('assert')
var path = require('path') var path = require('path')
var rimraf = require('rimraf') var rimraf = require('rimraf')
var fs = require('fs') var fs = require('fs')
var fse = require('../') var fse = require('../')
var testutil = require('./_lib/util') var testutil = require('./_lib/util')
/* global afterEach, beforeEach, describe, it */
var TEST_DIR = '' var TEST_DIR = ''
var FIXTURES_DIR = '' var FIXTURES_DIR = ''
var SRC_FIXTURES_DIR = 'test/fixtures/move' var SRC_FIXTURES_DIR = 'test/fixtures/move'
// makes fs.rename return cross-device error. // makes fs.rename return cross-device error.
var mock_fs = {} var mock_fs = {}
mock_fs.rename = function(src, dest, callback) { mock_fs.rename = function (src, dest, callback) {
setTimeout(function() { setTimeout(function () {
var err = new Error() var err = new Error()
err.code = 'EXDEV' err.code = 'EXDEV'
callback(err) callback(err)
}, 10) }, 10)
} }
describe("move", function() { describe('move', function () {
beforeEach(function() { beforeEach(function () {
TEST_DIR = testutil.createTestDir('fs-extra') TEST_DIR = testutil.createTestDir('fs-extra')
TEST_DIR = path.join(TEST_DIR, 'move') TEST_DIR = path.join(TEST_DIR, 'move')
if (!fs.existsSync(TEST_DIR))
if (!fs.existsSync(TEST_DIR)) {
fs.mkdirSync(TEST_DIR) fs.mkdirSync(TEST_DIR)
}
FIXTURES_DIR = path.join(TEST_DIR, 'fixtures') FIXTURES_DIR = path.join(TEST_DIR, 'fixtures')
fse.copySync(SRC_FIXTURES_DIR, FIXTURES_DIR) fse.copySync(SRC_FIXTURES_DIR, FIXTURES_DIR)
}) })
afterEach(function() { afterEach(function () {
rimraf.sync(TEST_DIR) 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 src = FIXTURES_DIR + '/a-file'
var dest = FIXTURES_DIR + '/a-file-dest' var dest = FIXTURES_DIR + '/a-file-dest'
@ -41,28 +46,28 @@ describe("move", function() {
assert.ifError(err) assert.ifError(err)
fs.readFile(dest, 'utf8', function (err, contents) { fs.readFile(dest, 'utf8', function (err, contents) {
assert.ifError(err) assert.ifError(err)
assert.strictEqual(contents, "sonic the hedgehog\n") assert.strictEqual(contents, 'sonic the hedgehog\n')
done() done()
}) })
}) })
}) })
it("should not overwrite if clobber = false", function (done) { it('should not overwrite if clobber = false', function (done) {
var src = FIXTURES_DIR + "/a-file" var src = FIXTURES_DIR + '/a-file'
var dest = FIXTURES_DIR + "/a-folder/another-file" var dest = FIXTURES_DIR + '/a-folder/another-file'
// verify file exists already // verify file exists already
assert(fs.existsSync(dest)) assert(fs.existsSync(dest))
fse.move(src, dest, {clobber: false}, function (err) { 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() done()
}) })
}) })
it("should not create directory structure if mkdirp is false", function (done) { it('should not create directory structure if mkdirp is false', function (done) {
var src = FIXTURES_DIR + "/a-file" var src = FIXTURES_DIR + '/a-file'
var dest = FIXTURES_DIR + "/does/not/exist/a-file-dest" var dest = FIXTURES_DIR + '/does/not/exist/a-file-dest'
// verify dest directory does not exist // verify dest directory does not exist
assert(!fs.existsSync(path.dirname(dest))) assert(!fs.existsSync(path.dirname(dest)))
@ -73,9 +78,9 @@ describe("move", function() {
}) })
}) })
it("should create directory structure by default", function (done) { it('should create directory structure by default', function (done) {
var src = FIXTURES_DIR + "/a-file" var src = FIXTURES_DIR + '/a-file'
var dest = FIXTURES_DIR + "/does/not/exist/a-file-dest" var dest = FIXTURES_DIR + '/does/not/exist/a-file-dest'
// verify dest directory does not exist // verify dest directory does not exist
assert(!fs.existsSync(path.dirname(dest))) assert(!fs.existsSync(path.dirname(dest)))
@ -84,15 +89,15 @@ describe("move", function() {
assert.ifError(err) assert.ifError(err)
fs.readFile(dest, 'utf8', function (err, contents) { fs.readFile(dest, 'utf8', function (err, contents) {
assert.ifError(err) assert.ifError(err)
assert.strictEqual(contents, "sonic the hedgehog\n") assert.strictEqual(contents, 'sonic the hedgehog\n')
done() done()
}) })
}) })
}) })
it("should work across devices", function (done) { it('should work across devices', function (done) {
var src = FIXTURES_DIR + "/a-file" var src = FIXTURES_DIR + '/a-file'
var dest = FIXTURES_DIR + "/a-file-dest" var dest = FIXTURES_DIR + '/a-file-dest'
var oldRename = fs.rename var oldRename = fs.rename
fs.rename = mock_fs.rename fs.rename = mock_fs.rename
@ -101,7 +106,7 @@ describe("move", function() {
assert.ifError(err) assert.ifError(err)
fs.readFile(dest, 'utf8', function (err, contents) { fs.readFile(dest, 'utf8', function (err, contents) {
assert.ifError(err) assert.ifError(err)
assert.strictEqual(contents, "sonic the hedgehog\n") assert.strictEqual(contents, 'sonic the hedgehog\n')
// restore // restore
fs.rename = oldRename fs.rename = oldRename
@ -111,35 +116,35 @@ describe("move", function() {
}) })
}) })
it("should move folders", function (done) { it('should move folders', function (done) {
var src = FIXTURES_DIR + "/a-folder" var src = FIXTURES_DIR + '/a-folder'
var dest = FIXTURES_DIR + "/a-folder-dest" var dest = FIXTURES_DIR + '/a-folder-dest'
// verify it doesn't exist // verify it doesn't exist
assert(!fs.existsSync(dest)) assert(!fs.existsSync(dest))
fse.move(src, dest, function (err) { fse.move(src, dest, function (err) {
assert.ifError(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.ifError(err)
assert.strictEqual(contents, "tails\n") assert.strictEqual(contents, 'tails\n')
done() done()
}) })
}) })
}) })
it("should move folders across devices", function (done) { it('should move folders across devices', function (done) {
var src = FIXTURES_DIR + "/a-folder" var src = FIXTURES_DIR + '/a-folder'
var dest = FIXTURES_DIR + "/a-folder-dest" var dest = FIXTURES_DIR + '/a-folder-dest'
var oldRename = fs.rename var oldRename = fs.rename
fs.rename = mock_fs.rename fs.rename = mock_fs.rename
fse.move(src, dest, function (err) { fse.move(src, dest, function (err) {
assert.ifError(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.ifError(err)
assert.strictEqual(contents, "knuckles\n") assert.strictEqual(contents, 'knuckles\n')
// restore // restore
fs.rename = oldRename fs.rename = oldRename
@ -149,8 +154,8 @@ describe("move", function() {
}) })
}) })
describe.skip('> when trying to a move a folder into itself', function() { describe.skip('> when trying to a move a folder into itself', function () {
it('should produce an error', function(done) { it('should produce an error', function (done) {
var SRC_DIR = path.join(TEST_DIR, 'test') var SRC_DIR = path.join(TEST_DIR, 'test')
var DEST_DIR = path.join(TEST_DIR, 'test', 'test') var DEST_DIR = path.join(TEST_DIR, 'test', 'test')
@ -158,7 +163,7 @@ describe("move", function() {
fs.mkdirSync(SRC_DIR) fs.mkdirSync(SRC_DIR)
assert(fs.existsSync(SRC_DIR)) assert(fs.existsSync(SRC_DIR))
fse.move(SRC_DIR, DEST_DIR, function(err) { fse.move(SRC_DIR, DEST_DIR, function (err) {
assert(fs.existsSync(SRC_DIR)) assert(fs.existsSync(SRC_DIR))
assert(err) assert(err)
done() done()
@ -169,7 +174,7 @@ describe("move", function() {
// tested on Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP i686 i686 GNU/Linux // tested on Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP i686 i686 GNU/Linux
// this won't trigger a bug on Mac OS X Yosimite with a USB drive (/Volumes) // this won't trigger a bug on Mac OS X Yosimite with a USB drive (/Volumes)
// see issue #108 // see issue #108
describe('> when actually trying to a move a folder across devices', function() { describe('> when actually trying to a move a folder across devices', function () {
var differentDevice = '/mnt' var differentDevice = '/mnt'
var __skipTests = false var __skipTests = false
@ -189,35 +194,34 @@ describe("move", function() {
var _it = __skipTests ? it.skip : it var _it = __skipTests ? it.skip : it
describe('> just the folder', function() { describe('> just the folder', function () {
_it('should move the folder', function(done) { _it('should move the folder', function (done) {
var src = '/mnt/some/weird/dir-really-weird' var src = '/mnt/some/weird/dir-really-weird'
var dest = path.join(TEST_DIR, 'device-weird') var dest = path.join(TEST_DIR, 'device-weird')
if (!fs.existsSync(src)) if (!fs.existsSync(src)) {
fse.mkdirpSync(src) fse.mkdirpSync(src)
}
assert(!fs.existsSync(dest)) assert(!fs.existsSync(dest))
assert(fs.lstatSync(src).isDirectory()) assert(fs.lstatSync(src).isDirectory())
fse.move(src, dest, function(err) { fse.move(src, dest, function (err) {
assert.ifError(err) assert.ifError(err)
assert(fs.existsSync(dest)) assert(fs.existsSync(dest))
//console.log(path.normalize(dest)) // console.log(path.normalize(dest))
assert(fs.lstatSync(dest).isDirectory()) assert(fs.lstatSync(dest).isDirectory())
done() done()
}) })
}) })
}) })
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 clobber = true', function () {
describe('> when dest is a directory', function() { describe('> when dest is a directory', function () {
it('should clobber the destination', function(done) { it('should clobber the destination', function (done) {
// use fixtures dir as dest since it has stuff // use fixtures dir as dest since it has stuff
var dest = FIXTURES_DIR var dest = FIXTURES_DIR
var paths = fs.readdirSync(dest) var paths = fs.readdirSync(dest)
@ -237,13 +241,13 @@ describe("move", function() {
assert(paths.indexOf('some-file') >= 0) assert(paths.indexOf('some-file') >= 0)
assert(paths.indexOf('some-folder') >= 0) assert(paths.indexOf('some-folder') >= 0)
fse.move(src, dest, {clobber: true}, function(err) { fse.move(src, dest, {clobber: true}, function (err) {
if (err) return done(err) if (err) return done(err)
// verify dest does not have old stuff // verify dest does not have old stuff
var paths = fs.readdirSync(dest) var paths = fs.readdirSync(dest)
assert(paths.indexOf('a-file') == -1) assert.strictEqual(paths.indexOf('a-file'), -1)
assert(paths.indexOf('a-folder') == -1) assert.strictEqual(paths.indexOf('a-folder'), -1)
// verify dest has new stuff // verify dest has new stuff
assert(paths.indexOf('some-file') >= 0) assert(paths.indexOf('some-file') >= 0)
@ -256,7 +260,3 @@ describe("move", function() {
}) })
}) })
}) })

Loading…
Cancel
Save