From 34ac4b25afe092a1073f80db5d98a7ca5e45f508 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 13 Apr 2015 14:53:25 +0200 Subject: [PATCH] Test and fix #clear(). --- packages/xo-collection/src/index.js | 2 +- packages/xo-collection/src/index.spec.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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': [