test/copy/ncp/broken-symlink: deleted file fixtures in place of actually creating them with code (improve Windows tests)

This commit is contained in:
JP Richardson 2015-04-15 09:22:45 -05:00
parent 7f85308079
commit 1225fbd30d
3 changed files with 61 additions and 29 deletions

View File

@ -0,0 +1,59 @@
var assert = require('assert')
var fs = require('fs')
var path = require('path')
var os = require('os')
var fse = require(process.cwd())
var ncp = require('../../../lib/_copy').ncp
/* global afterEach, beforeEach, describe, it */
describe('ncp broken symlink', function () {
var TEST_DIR = path.join(os.tmpdir(), 'fs-extra', 'ncp-broken-symlinks')
var src = path.join(TEST_DIR, 'src')
var out = path.join(TEST_DIR, 'out')
beforeEach(function (done) {
fse.emptyDir(TEST_DIR, function (err) {
assert.ifError(err)
createFixtures(src, done)
})
})
afterEach(function (done) {
fse.remove(TEST_DIR, done)
})
it('copies broken symlinks by default', function (cb) {
ncp(src, out, function (err) {
if (err) return cb(err)
assert.equal(fs.readlinkSync(path.join(out, 'broken-symlink')), path.join(src, 'does-not-exist'))
cb()
})
})
it('returns an error when dereference=true', function (cb) {
ncp(src, out, {dereference: true}, function (err) {
assert.equal(err.length, 1)
assert.equal(err[0].code, 'ENOENT')
cb()
})
})
})
function createFixtures (srcDir, callback) {
fs.mkdir(srcDir, function (err) {
if (err) return callback(err)
try {
var brokenFile = path.join(srcDir, 'does-not-exist')
var brokenFileLink = path.join(srcDir, 'broken-symlink')
fs.writeFileSync(brokenFile, 'does not matter')
fs.symlinkSync(brokenFile, brokenFileLink, 'file')
} catch (err) {
callback(err)
}
// break the symlink now
fse.remove(brokenFile, callback)
})
}

View File

@ -1,11 +1,11 @@
var assert = require('assert')
var fs = require('fs')
// var fs = require('fs')
var path = require('path')
var rimraf = require('rimraf')
var readDirFiles = require('read-dir-files').read // temporary, will remove
var ncp = require('../../../lib/_copy').ncp
/* global before, beforeEach, describe, it */
/* global before, describe, it */
var fixturesDir = path.join(__dirname, 'fixtures')
@ -90,32 +90,6 @@ describe('ncp', function () {
})
})
describe('broken symlink handling', function () {
var fixtures = path.join(fixturesDir, 'broken-symlink-fixtures'),
src = path.join(fixtures, 'src'),
out = path.join(fixtures, 'out')
beforeEach(function (cb) {
rimraf(out, cb)
})
it('copies broken symlinks by default', function (cb) {
ncp(src, out, function (err) {
if (err) return cb(err)
assert.equal(fs.readlinkSync(path.join(out, 'broken-symlink')), 'does-not-exist')
cb()
})
})
it('returns an error when dereference=true', function (cb) {
ncp(src, out, {dereference: true}, function (err) {
assert.equal(err.length, 1)
assert.equal(err[0].code, 'ENOENT')
cb()
})
})
})
// see https://github.com/AvianFlu/ncp/issues/71
describe('Issue 71: Odd Async Behaviors', function (cb) {
var fixtures = path.join(__dirname, 'fixtures', 'regular-fixtures')