diff --git a/tests/y-array.tests.js b/tests/y-array.tests.js index b59d96f8..b0a30a48 100644 --- a/tests/y-array.tests.js +++ b/tests/y-array.tests.js @@ -209,6 +209,22 @@ test('event target is set correctly (remote user)', async function array12 (t) { await compareUsers(t, users) }) +test('should correctly iterate an array containing types', async function iterate1 (t) { + const y = new Y.Y() + const arr = y.define('arr', Y.Array) + const numItems = 10 + for(let i = 0; i < numItems; i++) { + const map = new Y.Map() + map.set('value', i) + arr.push([map]) + } + let cnt = 0 + for(let item of arr) { + t.assert(item.get('value') === cnt++, 'value is correct') + } + y.destroy() +}) + var _uniqueNumber = 0 function getUniqueNumber () { return _uniqueNumber++ diff --git a/types/YArray.js b/types/YArray.js index 48b63a27..e31b081d 100644 --- a/types/YArray.js +++ b/types/YArray.js @@ -197,6 +197,7 @@ export class YArray extends Type { let content if (this._item instanceof Type) { content = this._item + this._item = this._item._right } else { content = this._item._content[this._itemElement++] }