fix hang after previous request failed

This commit is contained in:
Konstantin Käfer
2011-09-20 22:45:23 +02:00
parent 556fde0a20
commit fb30fb0ee5
2 changed files with 34 additions and 7 deletions
+5 -7
View File
@@ -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');
}); });
+29
View 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');
});
});
};