forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIndexViewSpec.coffee
More file actions
131 lines (101 loc) · 3.83 KB
/
Copy pathIndexViewSpec.coffee
File metadata and controls
131 lines (101 loc) · 3.83 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
define [
'Backbone'
'compiled/models/Quiz'
'compiled/collections/QuizCollection'
'compiled/views/quizzes/IndexView'
'compiled/views/quizzes/QuizItemGroupView'
'compiled/views/quizzes/NoQuizzesView'
'jquery'
'helpers/fakeENV'
'helpers/jquery.simulate'
], (Backbone, Quiz, QuizCollection, IndexView, QuizItemGroupView, NoQuizzesView, $, fakeENV) ->
fixtures = null
indexView = (assignments, open, surveys) ->
$('<div id="content"></div>').appendTo fixtures
assignments ?= new QuizCollection([])
open ?= new QuizCollection([])
surveys ?= new QuizCollection([])
assignmentView = new QuizItemGroupView(
collection: assignments,
title: 'Assignment Quizzes',
listId: 'assignment-quizzes',
isSurvey: false)
openView = new QuizItemGroupView(
collection: open,
title: 'Practice Quizzes',
listId: 'open-quizzes',
isSurvey: false)
surveyView = new QuizItemGroupView(
collection: surveys,
title: 'Surveys',
listId: 'surveys-quizzes',
isSurvey: true)
noQuizzesView = new NoQuizzesView
permissions = create: true, manage: true
flags = question_banks: true
urls =
new_quiz_url: '/courses/1/quizzes/new?fresh=1',
question_banks_url: '/courses/1/question_banks'
view = new IndexView
assignmentView: assignmentView
openView: openView
surveyView: surveyView
noQuizzesView: noQuizzesView
permissions: permissions
flags: flags
urls: urls
view.$el.appendTo fixtures
view.render()
QUnit.module 'IndexView',
setup: ->
fixtures = $("#fixtures")
fakeENV.setup()
teardown: ->
fakeENV.teardown()
fixtures.empty()
# hasNoQuizzes
test '#hasNoQuizzes if assignment and open quizzes are empty', ->
assignments = new QuizCollection([])
open = new QuizCollection([])
view = indexView(assignments, open)
ok view.options.hasNoQuizzes
test '#hasNoQuizzes to false if has assignement quizzes', ->
assignments = new QuizCollection([{id: 1}])
open = new QuizCollection([])
view = indexView(assignments, open)
ok !view.options.hasNoQuizzes
test '#hasNoQuizzes to false if has open quizzes', ->
assignments = new QuizCollection([])
open = new QuizCollection([{id: 1}])
view = indexView(assignments, open)
ok !view.options.hasNoQuizzes
# has*
test '#hasAssignmentQuizzes if has assignment quizzes', ->
assignments = new QuizCollection([{id: 1}])
view = indexView(assignments, null, null)
ok view.options.hasAssignmentQuizzes
test '#hasOpenQuizzes if has open quizzes', ->
open = new QuizCollection([{id: 1}])
view = indexView(null, open, null)
ok view.options.hasOpenQuizzes
test '#hasSurveys if has surveys', ->
surveys = new QuizCollection([{id: 1}])
view = indexView(null, null, surveys)
ok view.options.hasSurveys
# search filter
test 'should render the view', ->
assignments = new QuizCollection([{id: 1, title: 'Foo Title'}, {id: 2, title: 'Bar Title'}])
open = new QuizCollection([{id: 3, title: 'Foo Title'}, {id: 4, title: 'Bar Title'}])
view = indexView(assignments, open)
equal view.$el.find('.collectionViewItems li').length, 4
test 'should filter by search term', ->
assignments = new QuizCollection([{id: 1, title: 'Foo Name'}, {id: 2, title: 'Bar Title'}])
open = new QuizCollection([{id: 3, title: 'Baz Title'}, {id: 4, title: 'Qux Name'}])
view = indexView(assignments, open)
$('#searchTerm').val('foo')
view.filterResults()
equal view.$el.find('.collectionViewItems li').length, 1
view = indexView(assignments, open)
$('#searchTerm').val('name')
view.filterResults()
equal view.$el.find('.collectionViewItems li').length, 2