forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCourseSelectionViewSpec.coffee
More file actions
86 lines (76 loc) · 3.03 KB
/
Copy pathCourseSelectionViewSpec.coffee
File metadata and controls
86 lines (76 loc) · 3.03 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
#
# Copyright (C) 2015 - 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 [
'compiled/models/Course'
'compiled/views/conversations/CourseSelectionView'
'compiled/collections/CourseCollection'
'compiled/collections/FavoriteCourseCollection'
'compiled/collections/GroupCollection'
'helpers/fakeENV'
], (Course, CourseSelectionView, CourseCollection, FavoriteCourseCollection, GroupCollection, fakeENV) ->
courseSelectionView = () ->
courses =
favorites: new FavoriteCourseCollection()
all: new CourseCollection()
groups: new GroupCollection()
app = new CourseSelectionView
courses: courses
QUnit.module 'CourseSelectionView',
setup: ->
@now = $.fudgeDateForProfileTimezone(new Date)
fakeENV.setup(CONVERSATIONS: {CAN_MESSAGE_ACCOUNT_CONTEXT: false})
teardown: ->
fakeENV.teardown()
test 'does not label an un-favorited course as concluded', ->
course = new Course
view = courseSelectionView()
ok !view.is_complete(course, @now)
test 'labels a concluded course as concluded', ->
course = new Course
workflow_state: 'completed'
view = courseSelectionView()
ok view.is_complete(course, @now)
test 'does not label a course with a term with no end_at as concluded', ->
course = new Course
term: "foo"
view = courseSelectionView()
ok !view.is_complete(course, @now)
test 'labels as completed a course with a term with an end_at date in the past', ->
course = new Course
term:
end_at: Date.today().last().monday().toISOString()
view = courseSelectionView()
ok view.is_complete(course, @now)
test 'does not label as completed a course with a term overriding end_at in the future', ->
course = new Course
end_at: Date.today().next().monday().toISOString()
restrict_enrollments_to_course_dates: true
term:
end_at: Date.today().last().monday().toISOString()
view = courseSelectionView()
ok !view.is_complete(course, @now)
test 'does not label as completed a course with a term with an end_at date in the future', ->
course = new Course
term:
end_at: Date.today().next().monday().toISOString()
view = courseSelectionView()
ok !view.is_complete(course, @now)
test 'does not label as completed a course with a term with an end_at that is null', ->
course = new Course
term: {end_at: null}
view = courseSelectionView()
ok !view.is_complete(course, @now)