describe 'Travis.LimitedArray', -> it 'limits given content', -> content = [1, 2, 3] array = Travis.LimitedArray.create content: content, limit: 2 expect( array.get('length') ).toEqual 2 expect( array.toArray() ).toEqual [1, 2] it 'inserts content at the right place when unshifting', -> content = [1, 2, 3] array = Travis.LimitedArray.create content: content, limit: 2 content.unshiftObject 0 expect( array.get('length') ).toEqual 2 expect( array.toArray() ).toEqual [0, 1] it 'does not insert content when it\'s inserted not in the limited range', -> content = [1, 2, 3] array = Travis.LimitedArray.create content: content, limit: 2 content.pushObject 0 expect( array.get('length') ).toEqual 2 expect( array.toArray() ).toEqual [1, 2] it 'properly removes items', -> content = [1, 2, 3] array = Travis.LimitedArray.create content: content, limit: 2 content.shiftObject() expect( array.get('length') ).toEqual 2 expect( array.toArray() ).toEqual [2, 3] content.shiftObject() expect( array.get('length') ).toEqual 1 expect( array.toArray() ).toEqual [3] content.shiftObject() expect( array.get('length') ).toEqual 0 it 'allows to expand array to show all items', -> content = [1, 2, 3] array = Travis.LimitedArray.create content: content, limit: 2 array.showAll() expect( array.get('length') ).toEqual 3 expect( array.toArray() ).toEqual [1, 2, 3]