Exemple #1
0
 it('should emit set for .length when it mutates', function () {
     var emitted = false
     ob.once('set', function (key, val) {
         assert.strictEqual(key, 'test.length')
         assert.strictEqual(val, 1)
         emitted = true
     })
     arr.push(1)
     assert.ok(emitted)
 })
Exemple #2
0
 it('remove (object)', function () {
     var emitted = false,
         index = ~~(Math.random() * arr.length),
         expected = arr[index] = { a: 1 }
     ob.once('mutate', function (key, array, mutation) {
         emitted = true
         assert.strictEqual(mutation.method, 'splice')
         assert.strictEqual(mutation.args.length, 2)
         assert.strictEqual(mutation.args[0], index)
     })
     var r = arr.remove(expected)
     assert.ok(emitted)
     assert.strictEqual(r, expected)
 })
Exemple #3
0
 it('replace (index)', function () {
     var emitted = false,
         index = ~~(Math.random() * arr.length),
         expected = arr[index] = { a: 1 },
         arg = 34567
     ob.once('mutate', function (key, array, mutation) {
         emitted = true
         assert.strictEqual(mutation.method, 'splice')
         assert.strictEqual(mutation.args.length, 3)
         assert.strictEqual(mutation.args[0], index)
     })
     var r = arr.replace(index, arg)
     assert.ok(emitted)
     assert.strictEqual(r, expected)
     assert.strictEqual(arr[index], arg)
 })
Exemple #4
0
 it('shift', function () {
     var emitted = false,
         expected = arr[0]
     ob.once('mutate', function (key, array, mutation) {
         assert.strictEqual(key, 'test')
         assert.strictEqual(array, arr)
         assert.strictEqual(array.length, 1)
         assert.strictEqual(mutation.method, 'shift')
         assert.strictEqual(mutation.args.length, 0)
         assert.strictEqual(mutation.result, expected)
         emitted = true
     })
     var r = arr.shift()
     assert.ok(emitted)
     assert.strictEqual(r, expected)
 })
Exemple #5
0
 it('reverse', function () {
     var emitted = false,
         copy = arr.slice().reverse()
     ob.once('mutate', function (key, array, mutation) {
         assert.strictEqual(key, 'test')
         assert.strictEqual(array, arr)
         assert.strictEqual(mutation.method, 'reverse')
         assert.strictEqual(mutation.args.length, 0)
         assert.strictEqual(mutation.result, arr)
         for (var i = 0; i < copy.length; i++) {
             assert.strictEqual(array[i], copy[i])
         }
         emitted = true
     })
     var r = arr.reverse()
     assert.ok(emitted)
     assert.strictEqual(r, arr)
 })
Exemple #6
0
 it('unshift', function () {
     var emitted = false,
         arg1 = 456,
         arg2 = 678
     ob.once('mutate', function (key, array, mutation) {
         assert.strictEqual(key, 'test')
         assert.strictEqual(array, arr)
         assert.strictEqual(array.length, 3)
         assert.strictEqual(mutation.method, 'unshift')
         assert.strictEqual(mutation.args.length, 2)
         assert.strictEqual(mutation.args[0], arg1)
         assert.strictEqual(mutation.args[1], arg2)
         assert.strictEqual(mutation.result, arr.length)
         emitted = true
     })
     var r = arr.unshift(arg1, arg2)
     assert.ok(emitted)
     assert.strictEqual(r, arr.length)
 })
Exemple #7
0
 it('push', function () {
     var arg1 = 123,
         arg2 = 234,
         emitted = false
     ob.once('mutate', function (key, array, mutation) {
         assert.strictEqual(key, 'test')
         assert.strictEqual(array, arr)
         assert.strictEqual(array.length, 3)
         assert.strictEqual(mutation.method, 'push')
         assert.strictEqual(mutation.args.length, 2)
         assert.strictEqual(mutation.args[0], arg1)
         assert.strictEqual(mutation.args[1], arg2)
         assert.strictEqual(mutation.result, arr.length)
         emitted = true
     })
     var r = arr.push(arg1, arg2)
     assert.ok(emitted)
     assert.strictEqual(r, arr.length)
 })
Exemple #8
0
 it('sort', function () {
     var emitted = false,
         sorter = function (a, b) {
             return a > b ? -1 : 1
         },
         copy = arr.slice().sort(sorter)
     ob.once('mutate', function (key, array, mutation) {
         assert.strictEqual(key, 'test')
         assert.strictEqual(array, arr)
         assert.strictEqual(mutation.method, 'sort')
         assert.strictEqual(mutation.args.length, 1)
         assert.strictEqual(mutation.result, arr)
         for (var i = 0; i < copy.length; i++) {
             assert.strictEqual(array[i], copy[i])
         }
         emitted = true
     })
     var r = arr.sort(sorter)
     assert.ok(emitted)
     assert.strictEqual(r, arr)
 })
Exemple #9
0
 it('splice', function () {
     var emitted = false,
         arg1 = 789,
         arg2 = 910,
         expected = arr[1]
     ob.once('mutate', function (key, array, mutation) {
         assert.strictEqual(key, 'test')
         assert.strictEqual(array, arr)
         assert.strictEqual(array.length, 4)
         assert.strictEqual(mutation.method, 'splice')
         assert.strictEqual(mutation.args.length, 4)
         assert.strictEqual(mutation.args[0], 1)
         assert.strictEqual(mutation.args[1], 1)
         assert.strictEqual(mutation.args[2], arg1)
         assert.strictEqual(mutation.args[3], arg2)
         assert.strictEqual(mutation.result.length, 1)
         assert.strictEqual(mutation.result[0], expected)
         emitted = true
     })
     var r = arr.splice(1, 1, arg1, arg2)
     assert.ok(emitted)
     assert.strictEqual(r.length, 1)
     assert.strictEqual(r[0], expected)
 })