43 lines
1.1 KiB
CoffeeScript
43 lines
1.1 KiB
CoffeeScript
|
#= require syntax_highlight
|
||
|
|
||
|
describe 'Syntax Highlighter', ->
|
||
|
stubUserColorScheme = (value) ->
|
||
|
window.gon ?= {}
|
||
|
window.gon.user_color_scheme = value
|
||
|
|
||
|
describe 'on a js-syntax-highlight element', ->
|
||
|
beforeEach ->
|
||
|
fixture.set('<div class="js-syntax-highlight"></div>')
|
||
|
|
||
|
it 'applies syntax highlighting', ->
|
||
|
stubUserColorScheme('monokai')
|
||
|
|
||
|
$('.js-syntax-highlight').syntaxHighlight()
|
||
|
|
||
|
expect($('.js-syntax-highlight')).toHaveClass('monokai')
|
||
|
|
||
|
describe 'on a parent element', ->
|
||
|
beforeEach ->
|
||
|
fixture.set """
|
||
|
<div class="parent">
|
||
|
<div class="js-syntax-highlight"></div>
|
||
|
<div class="foo"></div>
|
||
|
<div class="js-syntax-highlight"></div>
|
||
|
</div>
|
||
|
"""
|
||
|
|
||
|
it 'applies highlighting to all applicable children', ->
|
||
|
stubUserColorScheme('monokai')
|
||
|
|
||
|
$('.parent').syntaxHighlight()
|
||
|
|
||
|
expect($('.parent, .foo')).not.toHaveClass('monokai')
|
||
|
expect($('.monokai').length).toBe(2)
|
||
|
|
||
|
it 'prevents an infinite loop when no matches exist', ->
|
||
|
fixture.set('<div></div>')
|
||
|
|
||
|
highlight = -> $('div').syntaxHighlight()
|
||
|
|
||
|
expect(highlight).not.toThrow()
|