diff --git a/modules/services/osm.js b/modules/services/osm.js index 94f00bf38..16077cdf3 100644 --- a/modules/services/osm.js +++ b/modules/services/osm.js @@ -468,7 +468,10 @@ export default { function (changeset) { return { tags: getTags(changeset) }; } - ); + ).filter(function (changeset) { + var comment = changeset.tags.comment; + return comment && comment !== ''; + }); callback(undefined, userChangesets); } } diff --git a/test/spec/services/osm.js b/test/spec/services/osm.js index e4bc23603..bded77c43 100644 --- a/test/spec/services/osm.js +++ b/test/spec/services/osm.js @@ -421,15 +421,9 @@ describe('iD.serviceOsm', function () { }); }); + describe('#userChangesets', function() { - var server, - userDetailsFn, - changesetsXML = '' + - '' + - '' + - '' + - '' + - ''; + var server, userDetailsFn; beforeEach(function() { server = sinon.fakeServer.create(); @@ -444,14 +438,17 @@ describe('iD.serviceOsm', function () { connection.userDetails = userDetailsFn; }); + it('loads user changesets', function(done) { - // preauthenticate, otherwise callback will be called with "not authenticated" err - connection.switch({ - oauth_consumer_key: '5A043yRSEugj4DJ5TljuapfnrflWDte8jTOcWLlT', - oauth_secret: 'aB3jKq1TRsCOUrfOIZ6oQMEDmv2ptV76PA54NGLL', - oauth_token: 'foo', - oauth_token_secret: 'foo' - }); + var changesetsXML = '' + + '' + + '' + + ' ' + + ' ' + + '' + + ''; + + login(); connection.userChangesets(function(err, changesets) { expect(changesets).to.deep.equal([{ tags: { @@ -467,14 +464,76 @@ describe('iD.serviceOsm', function () { [200, { 'Content-Type': 'text/xml' }, changesetsXML]); server.respond(); }); + + it('excludes changesets without comment tag', function(done) { + var changesetsXML = '' + + '' + + '' + + ' ' + + ' ' + + '' + + '' + + ' ' + + '' + + ''; + + login(); + connection.userChangesets(function(err, changesets) { + expect(changesets).to.deep.equal([{ + tags: { + comment: 'Caprice Court has been extended', + created_by: 'iD 2.0.0' + } + }]); + connection.logout(); + done(); + }); + + server.respondWith('GET', 'http://www.openstreetmap.org/api/0.6/changesets?user=1', + [200, { 'Content-Type': 'text/xml' }, changesetsXML]); + server.respond(); + }); + + it('excludes changesets with empty comment', function(done) { + var changesetsXML = '' + + '' + + '' + + ' ' + + ' ' + + '' + + '' + + ' ' + + ' ' + + '' + + ''; + + login(); + connection.userChangesets(function(err, changesets) { + expect(changesets).to.deep.equal([{ + tags: { + comment: 'Caprice Court has been extended', + created_by: 'iD 2.0.0' + } + }]); + connection.logout(); + done(); + }); + + server.respondWith('GET', 'http://www.openstreetmap.org/api/0.6/changesets?user=1', + [200, { 'Content-Type': 'text/xml' }, changesetsXML]); + server.respond(); + }); + }); + describe('#changesetTags', function() { it('omits comment when empty', function() { expect(connection.changesetTags('2.0.0', '', [])).not.to.have.property('comment'); }); }); + describe('API capabilities', function() { var server, capabilitiesXML = '' +