Install: avoid race conditions when creating directories (#1358)

This commit is contained in:
ajhool
2018-08-29 04:20:26 -04:00
committed by Lovell Fuller
parent 5bed3a7d52
commit bf3254cb16
5 changed files with 50 additions and 12 deletions

View File

@@ -4,6 +4,7 @@ const assert = require('assert');
const fs = require('fs');
const semver = require('semver');
const libvips = require('../../lib/libvips');
const mockFS = require('mock-fs');
const originalPlatform = process.platform;
@@ -74,4 +75,34 @@ describe('libvips binaries', function () {
assert.strictEqual(true, fs.existsSync(cachePath));
});
});
describe('safe directory creation', function () {
before(function () {
mockFS({
exampleDirA: {
exampleDirB: {
exampleFile: 'Example test file'
}
}
});
});
after(function () { mockFS.restore(); });
it('mkdirSync creates a directory', function () {
const dirPath = 'createdDir';
libvips.mkdirSync(dirPath);
assert.strictEqual(true, fs.existsSync(dirPath));
});
it('mkdirSync does not throw error or overwrite an existing dir', function () {
const dirPath = 'exampleDirA';
const nestedDirPath = 'exampleDirA/exampleDirB';
assert.strictEqual(true, fs.existsSync(dirPath));
libvips.mkdirSync(dirPath);
assert.strictEqual(true, fs.existsSync(dirPath));
assert.strictEqual(true, fs.existsSync(nestedDirPath));
});
});
});