/** * Tests for the reverification view. **/ define(['jquery', 'common/js/spec_helpers/template_helpers', 'js/verify_student/views/review_photos_step_view', 'js/verify_student/views/reverify_view'], function($, TemplateHelpers, ReviewPhotosStepView, ReverifyView) { 'use strict'; describe('edx.verify_student.ReverifyView', function() { var TEMPLATES = [ 'webcam_photo', 'image_input', 'error', 'face_photo_step', 'id_photo_step', 'review_photos_step', 'reverify_success_step' ]; var STEP_INFO = { 'face-photo-step': { platformName: 'edX' }, 'id-photo-step': { platformName: 'edX' }, 'review-photos-step': { fullName: 'John Doe', platformName: 'edX' }, 'reverify-success-step': { platformName: 'edX' } }; var createView = function() { return new ReverifyView({stepInfo: STEP_INFO}).render(); }; var expectStepRendered = function(stepName) { // Expect that the step container div rendered expect($('.' + stepName).length > 0).toBe(true); }; beforeEach(function() { window.analytics = jasmine.createSpyObj('analytics', ['track', 'page', 'trackLink']); navigator.getUserMedia = jasmine.createSpy(); setFixtures('<div id="reverify-container"></div>'); $.each(TEMPLATES, function(index, templateName) { TemplateHelpers.installTemplate('templates/verify_student/' + templateName); }); }); it('renders verification steps', function() { var view = createView(); // Go through the flow, verifying that each step renders // We rely on other unit tests to check the behavior of these subviews. expectStepRendered('face-photo-step'); view.nextStep(); expectStepRendered('id-photo-step'); view.nextStep(); expectStepRendered('review-photos-step'); view.nextStep(); expectStepRendered('reverify-success-step'); }); }); } );