Exemple #1
0
test('map should support iterall / iterable ', t => {
	var a = mobx.map({ a: 1, b: 2 })

	function leech(iter) {
		var values = [];
		do {
			var v = iter.next();
			if (!v.done)
				values.push(v.value);
		} while (!v.done)
		return values;
	}

	t.equal(iterall.isIterable(a), true)

	t.deepEqual(leech(iterall.getIterator(a)), [
		["a", 1],
		["b", 2]
	])

	t.deepEqual(leech(a.entries()), [
		["a", 1],
		["b", 2]
	])

	t.deepEqual(leech(a.keys()), ["a", "b"])
	t.deepEqual(leech(a.values()), [1, 2])

	t.end()
})
Exemple #2
0
test('array should support iterall / iterable ', t => {
	var a = observable([1,2,3])

	t.equal(iterall.isIterable(a), true);
	t.equal(iterall.isArrayLike(a), true);

	var values = [];
	iterall.forEach(a, v => values.push(v))

	t.deepEqual(values, [1,2,3])

	var iter = iterall.getIterator(a)
	t.deepEqual(iter.next(), { value: 1, done: false })
	t.deepEqual(iter.next(), { value: 2, done: false })
	t.deepEqual(iter.next(), { value: 3, done: false })
	t.deepEqual(iter.next(), { value: undefined, done: true })

	a.replace([])
	iter = iterall.getIterator(a)
	t.deepEqual(iter.next(), { value: undefined, done: true })

	t.end()
})