mirror of
https://github.com/jprichardson/node-fs-extra.git
synced 2026-01-18 16:13:55 +00:00
test/copy/ncp/broken-symlink: deleted file fixtures in place of actually creating them with code (improve Windows tests)
This commit is contained in:
parent
7f85308079
commit
1225fbd30d
59
test/copy/ncp/broken-symlink.test.js
Normal file
59
test/copy/ncp/broken-symlink.test.js
Normal 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)
|
||||
})
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
does-not-exist
|
||||
@ -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')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user