codecombat/test/app/views/teachers/ActivateLicensesModal.spec.coffee
2016-04-04 15:19:27 -07:00

109 lines
3.6 KiB
CoffeeScript

ActivateLicensesModal = require 'views/courses/ActivateLicensesModal'
Users = require 'collections/Users'
forms = require 'core/forms'
# Needs some fixing
xdescribe 'ActivateLicensesModal', ->
@modal = null
me = require 'test/app/fixtures/teacher'
prepaids = require 'test/app/fixtures/prepaids'
classrooms = require 'test/app/fixtures/classrooms' # TODO: Don't use archived ones
users = require 'test/app/fixtures/students'
responses = {
'/db/prepaid': prepaids.toJSON()
'/db/classroom': classrooms.toJSON()
'/db/users': users.toJSON() # TODO: Respond with different ones for different classrooms
}
makeModal = (options) ->
(done) ->
@selectedUsers = new Users(@users.models.slice(0,(options?.numSelected or 3)))
@modal = new ActivateLicensesModal({
@classroom, @users, @selectedUsers
})
jasmine.Ajax.requests.sendResponses(responses)
jasmine.demoModal(@modal)
_.defer done
beforeEach ->
@classroom = classrooms.get('classroom1')
@users = require 'test/app/fixtures/students'
afterEach ->
@modal.stopListening()
describe 'the class dropdown', ->
beforeEach makeModal()
# punted indefinitely
xit 'should contain an All Students option', ->
expect(@modal.$('select option:last-child').html()).toBe('All Students')
it 'should display the current classname', ->
expect(@modal.$('option:selected').html()).toBe('Teacher Zero\'s Classroomiest Classroom')
it 'should contain all of the teacher\'s classes'
it 'shouldn\'t contain anyone else\'s classrooms'
describe 'the checklist of students', ->
it 'should separate the unenrolled from the enrolled students'
it 'should have a checkmark by the selected students'
it 'should display all the students'
describe 'the credits availble count', ->
beforeEach makeModal()
it 'should match the number of unused prepaids', ->
expect(@modal.$('#total-available').html()).toBe('2')
describe 'the Enroll button', ->
beforeEach makeModal()
it 'should show the number of selected students', ->
expect(@modal.$('#total-selected-span').html()).toBe('3')
it 'should fire off one request when clicked'
describe 'when the teacher has enough enrollments', ->
beforeEach makeModal({ numSelected: 2 })
it 'should be enabled', ->
expect(@modal.$('#activate-licenses-btn').hasClass('disabled')).toBe(false)
describe 'when the teacher doesn\'t have enough enrollments', ->
it 'should be disabled', ->
expect(@modal.$('#activate-licenses-btn').hasClass('disabled')).toBe(true)
describe 'the Purchase More button', ->
it 'should redirect to the enrollment purchasing page'
#
# describe 'enroll button', ->
# beforeEach (done) ->
# makeModal.bind(this)(done)
#
# it 'should display the correct total number of credits', ->
# expect(@modal.$('#total-available').html()).toBe('2')
#
# it 'should be disabled when teacher doesn\'t have enough enrollments', ->
# expect(@modal.$('#total-available').html()).toBe('2')
#
#
#
# describe 'when enrolling only a single student', ->
# describe 'the list of students', ->
# it 'should only have the one student selected'
#
# describe 'when bulk-enrolling students', ->
# describe 'the list of students', ->
# it 'should have the right students selected'
#
# describe 'selecting more students', ->
# it 'should increase the student counter'