fix: override fs.realpathSync.native and fs.realpath.native (#14031)

* fix: override fs.realpathSync.native and fs.realpath.native
* spec: test new native functions
This commit is contained in:
Shelley Vohr 2018-08-12 00:10:55 -07:00 committed by GitHub
parent 8dae1c8447
commit b785f45852
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 228 additions and 82 deletions

View file

@ -297,129 +297,250 @@ describe('asar package', function () {
})
})
describe('fs.realpathSync', function () {
it('returns real path root', function () {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = 'a.asar'
var r = fs.realpathSync(path.join(parent, p))
describe('fs.realpathSync', () => {
it('returns real path root', () => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = 'a.asar'
const r = fs.realpathSync(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('returns real path of a normal file', function () {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'file1')
var r = fs.realpathSync(path.join(parent, p))
it('returns real path of a normal file', () => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'file1')
const r = fs.realpathSync(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('returns real path of a normal directory', function () {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'dir1')
var r = fs.realpathSync(path.join(parent, p))
it('returns real path of a normal directory', () => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'dir1')
const r = fs.realpathSync(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('returns real path of a linked file', function () {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'link2', 'link1')
var r = fs.realpathSync(path.join(parent, p))
it('returns real path of a linked file', () => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link1')
const r = fs.realpathSync(path.join(parent, p))
assert.equal(r, path.join(parent, 'a.asar', 'file1'))
})
it('returns real path of a linked directory', function () {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'link2', 'link2')
var r = fs.realpathSync(path.join(parent, p))
it('returns real path of a linked directory', () => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link2')
const r = fs.realpathSync(path.join(parent, p))
assert.equal(r, path.join(parent, 'a.asar', 'dir1'))
})
it('returns real path of an unpacked file', function () {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('unpack.asar', 'a.txt')
var r = fs.realpathSync(path.join(parent, p))
it('returns real path of an unpacked file', () => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('unpack.asar', 'a.txt')
const r = fs.realpathSync(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('throws ENOENT error when can not find file', function () {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'not-exist')
var throws = function () {
fs.realpathSync(path.join(parent, p))
}
it('throws ENOENT error when can not find file', () => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'not-exist')
const throws = () => fs.realpathSync(path.join(parent, p))
assert.throws(throws, /ENOENT/)
})
})
describe('fs.realpath', function () {
it('returns real path root', function (done) {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = 'a.asar'
fs.realpath(path.join(parent, p), function (err, r) {
describe('fs.realpathSync.native', () => {
it('returns real path root', () => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = 'a.asar'
const r = fs.realpathSync.native(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('returns real path of a normal file', () => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'file1')
const r = fs.realpathSync.native(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('returns real path of a normal directory', () => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'dir1')
const r = fs.realpathSync.native(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('returns real path of a linked file', () => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link1')
const r = fs.realpathSync.native(path.join(parent, p))
assert.equal(r, path.join(parent, 'a.asar', 'file1'))
})
it('returns real path of a linked directory', () => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link2')
const r = fs.realpathSync.native(path.join(parent, p))
assert.equal(r, path.join(parent, 'a.asar', 'dir1'))
})
it('returns real path of an unpacked file', () => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('unpack.asar', 'a.txt')
const r = fs.realpathSync.native(path.join(parent, p))
assert.equal(r, path.join(parent, p))
})
it('throws ENOENT error when can not find file', () => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'not-exist')
const throws = () => fs.realpathSync.native(path.join(parent, p))
assert.throws(throws, /ENOENT/)
})
})
describe('fs.realpath', () => {
it('returns real path root', done => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = 'a.asar'
fs.realpath(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('returns real path of a normal file', function (done) {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'file1')
fs.realpath(path.join(parent, p), function (err, r) {
it('returns real path of a normal file', done => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'file1')
fs.realpath(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('returns real path of a normal directory', function (done) {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'dir1')
fs.realpath(path.join(parent, p), function (err, r) {
it('returns real path of a normal directory', done => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'dir1')
fs.realpath(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('returns real path of a linked file', function (done) {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'link2', 'link1')
fs.realpath(path.join(parent, p), function (err, r) {
it('returns real path of a linked file', done => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link1')
fs.realpath(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, 'a.asar', 'file1'))
done()
})
})
it('returns real path of a linked directory', function (done) {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'link2', 'link2')
fs.realpath(path.join(parent, p), function (err, r) {
it('returns real path of a linked directory', done => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link2')
fs.realpath(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, 'a.asar', 'dir1'))
done()
})
})
it('returns real path of an unpacked file', function (done) {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('unpack.asar', 'a.txt')
fs.realpath(path.join(parent, p), function (err, r) {
it('returns real path of an unpacked file', done => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('unpack.asar', 'a.txt')
fs.realpath(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('throws ENOENT error when can not find file', function (done) {
var parent = fs.realpathSync(path.join(fixtures, 'asar'))
var p = path.join('a.asar', 'not-exist')
fs.realpath(path.join(parent, p), function (err) {
it('throws ENOENT error when can not find file', done => {
const parent = fs.realpathSync(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'not-exist')
fs.realpath(path.join(parent, p), err => {
assert.equal(err.code, 'ENOENT')
done()
})
})
})
describe('fs.realpath.native', () => {
it('returns real path root', done => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = 'a.asar'
fs.realpath.native(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('returns real path of a normal file', done => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'file1')
fs.realpath.native(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('returns real path of a normal directory', done => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'dir1')
fs.realpath.native(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('returns real path of a linked file', done => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link1')
fs.realpath.native(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, 'a.asar', 'file1'))
done()
})
})
it('returns real path of a linked directory', done => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'link2', 'link2')
fs.realpath.native(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, 'a.asar', 'dir1'))
done()
})
})
it('returns real path of an unpacked file', done => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('unpack.asar', 'a.txt')
fs.realpath.native(path.join(parent, p), (err, r) => {
assert.equal(err, null)
assert.equal(r, path.join(parent, p))
done()
})
})
it('throws ENOENT error when can not find file', done => {
const parent = fs.realpathSync.native(path.join(fixtures, 'asar'))
const p = path.join('a.asar', 'not-exist')
fs.realpath.native(path.join(parent, p), err => {
assert.equal(err.code, 'ENOENT')
done()
})
})
})
describe('fs.readdirSync', function () {
it('reads dirs from root', function () {
var p = path.join(fixtures, 'asar', 'a.asar')