fix hang after previous request failed
This commit is contained in:
@@ -40,14 +40,12 @@ DirectoryIndex.prototype.update = function() {
|
||||
var index = this;
|
||||
fs.readdir(index.filepath, function(err, files) {
|
||||
index.err = err;
|
||||
if (!err) {
|
||||
for (var result = index.list = {}, i = 0; i < files.length; i++) {
|
||||
var name = files[i].match(/^([\w-]+)\.mbtiles$/);
|
||||
if (name) {
|
||||
result[name[1]] = 'mbtiles://' + path.join(index.filepath, name[0]);
|
||||
}
|
||||
index.list = {};
|
||||
if (!err) for (var i = 0; i < files.length; i++) {
|
||||
var name = files[i].match(/^([\w-]+)\.mbtiles$/);
|
||||
if (name) {
|
||||
index.list[name[1]] = 'mbtiles://' + path.join(index.filepath, name[0]);
|
||||
}
|
||||
index.list = result;
|
||||
}
|
||||
index.emit('updated');
|
||||
});
|
||||
|
||||
29
test/list.test.js
Normal file
29
test/list.test.js
Normal file
@@ -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