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
62 lines (54 loc) · 2.2 KB
/
Copy pathSectionMenuViewSpec.coffee
File metadata and controls
62 lines (54 loc) · 2.2 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#
# Copyright (C) 2013 - present Instructure, Inc.
#
# This file is part of Canvas.
#
# Canvas is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, version 3 of the License.
#
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
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'