fix hang after previous request failed
This commit is contained in:
@@ -40,14 +40,12 @@ DirectoryIndex.prototype.update = function() {
|
|||||||
var index = this;
|
var index = this;
|
||||||
fs.readdir(index.filepath, function(err, files) {
|
fs.readdir(index.filepath, function(err, files) {
|
||||||
index.err = err;
|
index.err = err;
|
||||||
if (!err) {
|
index.list = {};
|
||||||
for (var result = index.list = {}, i = 0; i < files.length; i++) {
|
if (!err) for (var i = 0; i < files.length; i++) {
|
||||||
var name = files[i].match(/^([\w-]+)\.mbtiles$/);
|
var name = files[i].match(/^([\w-]+)\.mbtiles$/);
|
||||||
if (name) {
|
if (name) {
|
||||||
result[name[1]] = 'mbtiles://' + path.join(index.filepath, name[0]);
|
index.list[name[1]] = 'mbtiles://' + path.join(index.filepath, name[0]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
index.list = result;
|
|
||||||
}
|
}
|
||||||
index.emit('updated');
|
index.emit('updated');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
process.env.NODE_ENV = 'test';
|
||||||
|
|
||||||
|
var fs = require('fs');
|
||||||
|
var Step = require('step');
|
||||||
|
var assert = require('assert');
|
||||||
|
var MBTiles = require('..');
|
||||||
|
|
||||||
|
var fixtures = {
|
||||||
|
doesnotexist: __dirname + '/doesnotexist'
|
||||||
|
};
|
||||||
|
|
||||||
|
try { fs.unlink(fixtures.doesnotexist); } catch (err) {}
|
||||||
|
|
||||||
|
|
||||||
|
exports['list'] = function(beforeExit) {
|
||||||
|
var completed = false; beforeExit(function() { assert.ok(completed); });
|
||||||
|
|
||||||
|
MBTiles.list(fixtures.doesnotexist, function(err, list) {
|
||||||
|
assert.ok(err);
|
||||||
|
assert.equal(err.message, 'ENOENT, No such file or directory');
|
||||||
|
|
||||||
|
MBTiles.list(fixtures.doesnotexist, function(err, list) {
|
||||||
|
completed = true;
|
||||||
|
assert.ok(err);
|
||||||
|
assert.equal(err.message, 'ENOENT, No such file or directory');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
Reference in New Issue
Block a user