travis-web/assets/scripts/spec/unit/tailing_spec.coffee
2014-04-16 09:58:36 +02:00

90 lines
2.3 KiB
CoffeeScript

fakeWindow =
scroll: sinon.spy()
scrollTop: sinon.stub().returns(0)
height: sinon.stub().returns(40)
element = jQuery('<div id="specTail"></div>')
log = jQuery('<div id="specLog"></div>')
tail = new Travis.Tailing(fakeWindow, '#specTail', '#specLog')
tail.tail = -> element
tail.log = -> log
module "Travis.Tailing",
setup: ->
jQuery('body').append(element)
jQuery('body').append(log)
teardown: ->
element.remove()
log.remove()
tail.stop()
#test "toggle", ->
# equal(element.hasClass('active'), false)
# tail.toggle()
# equal(element.hasClass('active'), true)
# tail.toggle()
# stop()
#
# Ember.run.later ->
# start()
# equal(element.hasClass('active'), false)
# , 300
#
#test "active", ->
# equal(tail.active(), false)
# element.addClass('active')
# equal(tail.active(), true)
#
#test "autoscroll when inactive", ->
# tail.scrollTo = sinon.spy()
#
# equal(tail.active(), false)
# equal(tail.autoScroll(), false)
# equal(tail.scrollTo.called, false)
#
#test "autoscroll", ->
# element.addClass('active')
# log.offset = -> {top: 1}
# log.outerHeight = -> 1
#
# equal(tail.active(), true)
# equal(tail.autoScroll(), true)
# equal(fakeWindow.scrollTop.calledWith(2), true)
#
#test "autoscroll when we're at the bottom", ->
# element.addClass('active')
# log.offset = -> {top: 0}
# log.outerHeight = -> 0
#
# equal(tail.active(), true)
# equal(tail.autoScroll(), false)
# equal(fakeWindow.scrollTop.calledWith(0), false)
#
#test 'should stop scrolling if the position changed', ->
# element.addClass('active')
# tail.position = 100
# tail.onScroll()
# equal(element.hasClass('active'), false)
#
#test 'positionButton adds the scrolling class', ->
# log.offset = -> {top: -1}
#
# tail.positionButton()
# equal(element.hasClass('scrolling'), true)
# equal(element.hasClass('bottom'), false)
#
#test 'positionButton removes the scrolling class', ->
# log.offset = -> {top: 1}
# tail.positionButton()
# equal(element.hasClass('scrolling'), false)
# equal(element.hasClass('bottom'), false)
#
#test 'positionButton sets the button as bottom', ->
# log.offset = -> {top: -100}
# log.height = -> 50
# tail.height = -> 1
#
# tail.positionButton()
# equal(element.hasClass('scrolling'), false)
# equal(element.hasClass('bottom'), true)