From b7d98b94fba4725a2e2c1e261cf3c24eebe7b6c3 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 24 Aug 2017 21:00:39 -0400 Subject: [PATCH] loadEntity loadEntityVersion and loadMultiple all should ignore entityCache --- modules/services/osm.js | 13 +++++++++---- test/spec/services/osm.js | 14 ++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/modules/services/osm.js b/modules/services/osm.js index edcaa78db..498e5523f 100644 --- a/modules/services/osm.js +++ b/modules/services/osm.js @@ -267,13 +267,15 @@ export default { loadEntity: function(id, callback) { var type = osmEntity.id.type(id), - osmID = osmEntity.id.toOSM(id); + osmID = osmEntity.id.toOSM(id), + options = { cache: false }; this.loadFromAPI( '/api/0.6/' + type + '/' + osmID + (type !== 'node' ? '/full' : ''), function(err, entities) { if (callback) callback(err, { data: entities }); - } + }, + options ); }, @@ -295,16 +297,19 @@ export default { loadMultiple: function(ids, callback) { var that = this; + _.each(_.groupBy(_.uniq(ids), osmEntity.id.type), function(v, k) { var type = k + 's', - osmIDs = _.map(v, osmEntity.id.toOSM); + osmIDs = _.map(v, osmEntity.id.toOSM), + options = { cache: false }; _.each(_.chunk(osmIDs, 150), function(arr) { that.loadFromAPI( '/api/0.6/' + type + '?' + type + '=' + arr.join(), function(err, entities) { if (callback) callback(err, { data: entities }); - } + }, + options ); }); }); diff --git a/test/spec/services/osm.js b/test/spec/services/osm.js index 0ba3f5387..ec7bd3878 100644 --- a/test/spec/services/osm.js +++ b/test/spec/services/osm.js @@ -321,13 +321,14 @@ describe('iD.serviceOsm', function () { server.respond(); }); - it('ignores repeat requests using entityCache', function(done) { + it('does not ignore repeat requests', function(done) { var id = 'n1'; - connection.loadEntity(id, function(err, result) { - var entity = _.find(result.data, function(e) { return e.id === id; }); - expect(entity).to.be.an.instanceOf(iD.Node); - connection.loadEntity(id, function(err, result) { - expect(result.data).to.eql([]); + connection.loadEntity(id, function(err1, result1) { + var entity1 = _.find(result1.data, function(e1) { return e1.id === id; }); + expect(entity1).to.be.an.instanceOf(iD.Node); + connection.loadEntity(id, function(err2, result2) { + var entity2 = _.find(result2.data, function(e2) { return e2.id === id; }); + expect(entity2).to.be.an.instanceOf(iD.Node); done(); }); server.respond(); @@ -411,6 +412,7 @@ describe('iD.serviceOsm', function () { it('loads nodes'); it('loads ways'); + it('does not ignore repeat requests'); });