diff --git a/modules/services/notes.js b/modules/services/notes.js index 606f0bbfb..168f56b47 100644 --- a/modules/services/notes.js +++ b/modules/services/notes.js @@ -158,7 +158,7 @@ function parseComments(comments) { } var parsers = { - note: function parseNote(obj, uid) { + note: function parseNote(obj) { var attrs = obj.attributes; var childNodes = obj.childNodes; var parsedNote = {}; diff --git a/test/index.html b/test/index.html index b2254e67c..f27a94c50 100644 --- a/test/index.html +++ b/test/index.html @@ -104,6 +104,7 @@ + diff --git a/test/spec/services/notes.js b/test/spec/services/notes.js new file mode 100644 index 000000000..99b76f8b6 --- /dev/null +++ b/test/spec/services/notes.js @@ -0,0 +1,62 @@ +describe('iD.serviceNotes', function () { + var dimensions = [64, 64], + ua = navigator.userAgent, + isPhantom = (navigator.userAgent.match(/PhantomJS/) !== null), + uaMock = function () { return ua; }, + context, server, notes, orig; + + + before(function() { + iD.services.notes = iD.serviceNotes; + }); + + after(function() { + delete iD.services.notes; + }); + + beforeEach(function() { + context = iD.Context().assetPath('../dist/'); + context.projection + .scale(667544.214430109) // z14 + .translate([-116508, 0]) // 10,0 + .clipExtent([[0,0], dimensions]); + + server = sinon.fakeServer.create(); + notes = iD.services.notes; + notes.reset(); + + /* eslint-disable no-global-assign */ + /* mock userAgent */ + if (isPhantom) { + orig = navigator; + navigator = Object.create(orig, { userAgent: { get: uaMock }}); + } else { + orig = navigator.__lookupGetter__('userAgent'); + navigator.__defineGetter__('userAgent', uaMock); + } + }); + + afterEach(function() { + server.restore(); + + /* restore userAgent */ + if (isPhantom) { + navigator = orig; + } else { + navigator.__defineGetter__('userAgent', orig); + } + /* eslint-enable no-global-assign */ + }); + + describe('#init', function () { + it('Initializes cache one time', function () { + var cache = notes.cache(); + expect(cache).to.have.property('notes'); + + notes.init(); + var cache2 = notes.cache(); + expect(cache).to.equal(cache2); + }); + }); + +}); \ No newline at end of file