forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSectionMenuViewSpec.coffee
More file actions
45 lines (38 loc) · 1.54 KB
/
Copy pathSectionMenuViewSpec.coffee
File metadata and controls
45 lines (38 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
define [
'jquery'
'underscore',
'compiled/views/gradezilla/SectionMenuView',
'vendor/jquery.ba-tinypubsub'
], ($, _, SectionMenuView) ->
sections = [{id: 1, name: 'Section One', checked: true},
{id: 2, name: 'Section Two', checked: false}]
course = {id: 1, name: 'Course One', checked: false}
currentSection = 1
QUnit.module 'gradezilla/SectionMenuView',
setup: ->
@view = new SectionMenuView(sections: sections, currentSection: currentSection, course: course)
@view.render()
@view.$el.appendTo('#fixtures')
teardown: ->
$('#fixtures').empty()
test 'it renders a button', ->
ok @view.$el.find('button').length, 'button displays'
ok @view.$el.find('button').text().match(/Section One/), 'button label includes current section'
test 'it displays given sections', ->
@view.$el.find('button').click()
html = $('.section-select-menu:visible').html()
ok html.match(/All Sections/), 'displays default "all sections"'
ok html.match(/Section One/), 'displays first section'
ok html.match(/Section Two/), 'displays section section'
test 'it changes sections', ->
@view.$el.find('button').click()
$('input[value=2]').parent().click()
ok @view.currentSection == '2', 'updates its section'
asyncTest 'it publishes changes', ->
expect(1)
$.subscribe 'currentSection/change', (section) ->
ok section == '2', 'publish fires'
start()
@view.$el.find('button').click()
$('input[value=2]').parent().click()
$.unsubscribe 'currentSection/change'