refactor and test the log folder
This commit is contained in:
parent
2c079ae937
commit
6608032652
|
@ -1,5 +1,6 @@
|
|||
require 'log'
|
||||
require 'travis/lines_selector'
|
||||
require 'travis/log_folder'
|
||||
|
||||
Log.DEBUG = false
|
||||
Log.LIMIT = 10000
|
||||
|
@ -48,6 +49,7 @@ Travis.reopen
|
|||
@scroll = new Log.Scroll
|
||||
@engine = Log.create(limit: Log.LIMIT, listeners: [@scroll])
|
||||
@lineSelector = new Travis.LinesSelector(@$().find('#log'), @scroll)
|
||||
@logFolder = new Travis.LogFolder(@$().find('#log'))
|
||||
@observeParts()
|
||||
|
||||
observeParts: ->
|
||||
|
@ -76,11 +78,6 @@ Travis.reopen
|
|||
Travis.tailing.toggle()
|
||||
event.preventDefault()
|
||||
|
||||
click: (event) ->
|
||||
target = $(event.target)
|
||||
if target.prop('tagName') == 'P'
|
||||
target.closest('.fold').toggleClass('open')
|
||||
|
||||
actions:
|
||||
toTop: () ->
|
||||
$(window).scrollTop(0)
|
||||
|
|
8
assets/scripts/lib/travis/log_folder.coffee
Normal file
8
assets/scripts/lib/travis/log_folder.coffee
Normal file
|
@ -0,0 +1,8 @@
|
|||
class Travis.LogFolder
|
||||
constructor: (@element) ->
|
||||
@element.on 'click', '.fold', (event) =>
|
||||
target = $(event.target).closest('.fold')
|
||||
target.toggleClass('open')
|
||||
|
||||
event.preventDefault()
|
||||
false
|
36
assets/scripts/spec/unit/log_folder_spec.coffee
Normal file
36
assets/scripts/spec/unit/log_folder_spec.coffee
Normal file
|
@ -0,0 +1,36 @@
|
|||
element = jQuery('<div id="fakeLog">
|
||||
<p>first line</p>
|
||||
<div class="fold">
|
||||
<p>second line</p>
|
||||
<p>third line</p>
|
||||
</div>
|
||||
<p>fourth line</p>
|
||||
</div>')
|
||||
|
||||
module "Travis.LogFolder",
|
||||
setup: ->
|
||||
jQuery('body').append(element)
|
||||
new Travis.LogFolder jQuery('#fakeLog')
|
||||
|
||||
teardown: ->
|
||||
element.remove()
|
||||
|
||||
test "displays the fold", ->
|
||||
equal($('#fakeLog .fold.open').length, 0)
|
||||
$('#fakeLog .fold').click()
|
||||
equal($('#fakeLog .fold.open').length, 1)
|
||||
|
||||
test "hides the fold", ->
|
||||
$('#fakeLog .fold').addClass('open')
|
||||
$('#fakeLog .fold').click()
|
||||
equal($('#fakeLog .fold.open').length, 0)
|
||||
|
||||
test "binds new elements", ->
|
||||
new_element = jQuery('<div class="fold">
|
||||
<p>fifth line</p>
|
||||
</div>')
|
||||
jQuery('#fakeLog').append new_element
|
||||
|
||||
equal($('#fakeLog .fold.open').length, 0)
|
||||
$('#fakeLog .fold').click()
|
||||
equal($('#fakeLog .fold.open').length, 2)
|
Loading…
Reference in New Issue
Block a user