Merge pull request #209 from relm-us/ymap-size
Add 'size' getter to Y.Map
This commit is contained in:
commit
cebe96c001
@ -115,6 +115,15 @@ export class YMap extends AbstractType {
|
|||||||
return map
|
return map
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the size of the YMap (count of key/value pairs)
|
||||||
|
*
|
||||||
|
* @return {number}
|
||||||
|
*/
|
||||||
|
get size () {
|
||||||
|
return [...createMapIterator(this._map)].length
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the keys for each element in the YMap Type.
|
* Returns the keys for each element in the YMap Type.
|
||||||
*
|
*
|
||||||
@ -143,7 +152,7 @@ export class YMap extends AbstractType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes a provided function on once on overy key-value pair.
|
* Executes a provided function on once on every key-value pair.
|
||||||
*
|
*
|
||||||
* @param {function(T,string,YMap<T>):void} f A function to execute on every element of this YArray.
|
* @param {function(T,string,YMap<T>):void} f A function to execute on every element of this YArray.
|
||||||
*/
|
*/
|
||||||
|
@ -60,6 +60,7 @@ export const testBasicMapTests = tc => {
|
|||||||
t.assert(map0.get('boolean1') === true, 'client 0 computed the change (boolean)')
|
t.assert(map0.get('boolean1') === true, 'client 0 computed the change (boolean)')
|
||||||
t.compare(map0.get('object'), { key: { key2: 'value' } }, 'client 0 computed the change (object)')
|
t.compare(map0.get('object'), { key: { key2: 'value' } }, 'client 0 computed the change (object)')
|
||||||
t.assert(map0.get('y-map').get('y-array').get(0) === -1, 'client 0 computed the change (type)')
|
t.assert(map0.get('y-map').get('y-array').get(0) === -1, 'client 0 computed the change (type)')
|
||||||
|
t.assert(map0.size === 6, 'client 0 map has correct size')
|
||||||
|
|
||||||
users[2].connect()
|
users[2].connect()
|
||||||
testConnector.flushAllMessages()
|
testConnector.flushAllMessages()
|
||||||
@ -70,6 +71,7 @@ export const testBasicMapTests = tc => {
|
|||||||
t.assert(map1.get('boolean1') === true, 'client 1 computed the change (boolean)')
|
t.assert(map1.get('boolean1') === true, 'client 1 computed the change (boolean)')
|
||||||
t.compare(map1.get('object'), { key: { key2: 'value' } }, 'client 1 received the update (object)')
|
t.compare(map1.get('object'), { key: { key2: 'value' } }, 'client 1 received the update (object)')
|
||||||
t.assert(map1.get('y-map').get('y-array').get(0) === -1, 'client 1 received the update (type)')
|
t.assert(map1.get('y-map').get('y-array').get(0) === -1, 'client 1 received the update (type)')
|
||||||
|
t.assert(map1.size === 6, 'client 1 map has correct size')
|
||||||
|
|
||||||
// compare disconnected user
|
// compare disconnected user
|
||||||
t.assert(map2.get('number') === 1, 'client 2 received the update (number) - was disconnected')
|
t.assert(map2.get('number') === 1, 'client 2 received the update (number) - was disconnected')
|
||||||
@ -157,6 +159,20 @@ export const testGetAndSetOfMapPropertyWithConflict = tc => {
|
|||||||
compare(users)
|
compare(users)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {t.TestCase} tc
|
||||||
|
*/
|
||||||
|
export const testSizeAndDeleteOfMapProperty = tc => {
|
||||||
|
const { map0 } = init(tc, { users: 1 })
|
||||||
|
map0.set('stuff', 'c0')
|
||||||
|
map0.set('otherstuff', 'c1')
|
||||||
|
t.assert(map0.size === 2, `map size is ${map0.size} expected 2`)
|
||||||
|
map0.delete('stuff')
|
||||||
|
t.assert(map0.size === 1, `map size after delete is ${map0.size}, expected 1`)
|
||||||
|
map0.delete('otherstuff')
|
||||||
|
t.assert(map0.size === 0, `map size after delete is ${map0.size}, expected 0`)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {t.TestCase} tc
|
* @param {t.TestCase} tc
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user