diff --git a/packages/xo-collection/src/index.js b/packages/xo-collection/src/index.js index 2f21f3d00..9fdf2f81e 100644 --- a/packages/xo-collection/src/index.js +++ b/packages/xo-collection/src/index.js @@ -226,7 +226,7 @@ export default class Collection extends EventEmitter { } clear () { - forEach(this._items, key => { + forEach(this._items, (_, key) => { delete this._items[key] this._size-- this._touch('remove', key) diff --git a/packages/xo-collection/src/index.spec.js b/packages/xo-collection/src/index.spec.js index 4ef572483..a119a171f 100644 --- a/packages/xo-collection/src/index.spec.js +++ b/packages/xo-collection/src/index.spec.js @@ -195,6 +195,19 @@ describe('Collection', function () { }) }) + describe('clear()', function () { + it('removes all items from the collection', function () { + this.col.clear() + + expect(this.col.size).to.equal(0) + + return eventToPromise(this.col, 'remove').then((items) => { + expect(items).to.have.all.keys('bar') + expect(items.bar).to.not.exist() + }) + }) + }) + describe('deduplicates events', function () { forEach({ 'add & update → add': [