JP Richardson
9 years ago
5 changed files with 76 additions and 1 deletions
@ -1 +0,0 @@ |
|||
These tests imported from https://github.com/substack/node-mkdirp. |
@ -0,0 +1,38 @@ |
|||
var assert = require('assert') |
|||
var fse = require(process.cwd()) |
|||
|
|||
/* global describe, it */ |
|||
|
|||
describe('mkdirp: issue-209, win32, when bad path, should return a cleaner error', function () { |
|||
// only seems to be an issue on Windows.
|
|||
if (process.platform !== 'win32') return |
|||
|
|||
it('should return a callback', function (done) { |
|||
var file = './bad?dir' |
|||
fse.mkdirp(file, function (err) { |
|||
assert(err, 'error is present') |
|||
assert.strictEqual(err.code, 'EINVAL') |
|||
|
|||
var file2 = 'c:\\tmp\foo:moo' |
|||
fse.mkdirp(file2, function (err) { |
|||
assert(err, 'error is present') |
|||
assert.strictEqual(err.code, 'EINVAL') |
|||
done() |
|||
}) |
|||
}) |
|||
}) |
|||
|
|||
describe('> sync', function () { |
|||
it('should throw an error', function () { |
|||
var didErr |
|||
try { |
|||
var file = 'c:\\tmp\foo:moo' |
|||
fse.mkdirpSync(file) |
|||
} catch (err) { |
|||
// console.error(err)
|
|||
didErr = true |
|||
} |
|||
assert(didErr) |
|||
}) |
|||
}) |
|||
}) |
@ -0,0 +1,24 @@ |
|||
'use strict' |
|||
var path = require('path') |
|||
|
|||
// get drive on windows
|
|||
function getRootPath (p) { |
|||
p = path.normalize(path.resolve(p)).split(path.sep) |
|||
if (p.length > 0) return p[0] |
|||
else return null |
|||
} |
|||
|
|||
// http://stackoverflow.com/a/62888/10333 contains more accurate
|
|||
// TODO: expand to include the rest
|
|||
var INVALID_PATH_CHARS = /[<>:"|?*]/ |
|||
|
|||
function invalidWin32Path (p) { |
|||
var rp = getRootPath(p) |
|||
p = p.replace(rp, '') |
|||
return INVALID_PATH_CHARS.test(p) |
|||
} |
|||
|
|||
module.exports = { |
|||
getRootPath: getRootPath, |
|||
invalidWin32Path: invalidWin32Path |
|||
} |
Loading…
Reference in new issue