Commit ded0885c by Renzo Lucioni Committed by GitHub

Merge pull request #13025 from edx/renzo/pdp-archived-courses

Allow viewing of archived courses from the program detail page
parents a653d449 b1f59163
...@@ -14,6 +14,25 @@ define([ ...@@ -14,6 +14,25 @@ define([
courseEnrollModel, courseEnrollModel,
urlModel, urlModel,
setupView, setupView,
singleRunModeList,
multiRunModeList,
context = {
display_name: 'Edx Demo course',
key: 'edX+DemoX+Demo_Course',
organization: {
display_name: 'edx.org',
key: 'edX'
}
},
urls = {
dashboard_url: '/dashboard',
id_verification_url: '/verify_student/start_flow/',
track_selection_url: '/select_track/course/'
};
beforeEach(function() {
// Redefine this data prior to each test case so that tests can't
// break each other by modifying data copied by reference.
singleRunModeList = [{ singleRunModeList = [{
start_date: 'Apr 25, 2016', start_date: 'Apr 25, 2016',
end_date: 'Jun 13, 2016', end_date: 'Jun 13, 2016',
...@@ -26,7 +45,8 @@ define([ ...@@ -26,7 +45,8 @@ define([
run_key: '2T2016', run_key: '2T2016',
is_enrolled: false, is_enrolled: false,
is_enrollment_open: true is_enrollment_open: true
}], }];
multiRunModeList = [{ multiRunModeList = [{
start_date: 'May 21, 2015', start_date: 'May 21, 2015',
end_date: 'Sep 21, 2015', end_date: 'Sep 21, 2015',
...@@ -51,20 +71,8 @@ define([ ...@@ -51,20 +71,8 @@ define([
run_key: '2T2015', run_key: '2T2015',
is_enrolled: false, is_enrolled: false,
is_enrollment_open: true is_enrollment_open: true
}], }];
context = { });
display_name: 'Edx Demo course',
key: 'edX+DemoX+Demo_Course',
organization: {
display_name: 'edx.org',
key: 'edX'
}
},
urls = {
dashboard_url: '/dashboard',
id_verification_url: '/verify_student/start_flow/',
track_selection_url: '/select_track/course/'
};
setupView = function(runModes, urls){ setupView = function(runModes, urls){
context.run_modes = runModes; context.run_modes = runModes;
...@@ -105,14 +113,26 @@ define([ ...@@ -105,14 +113,26 @@ define([
it('should render the course enroll view based on enrolled data', function(){ it('should render the course enroll view based on enrolled data', function(){
singleRunModeList[0].is_enrolled = true; singleRunModeList[0].is_enrolled = true;
setupView(singleRunModeList); setupView(singleRunModeList);
expect(view.$('.enrollment-info').html().trim()).toEqual('enrolled'); expect(view.$('.enrollment-info').html().trim()).toEqual('enrolled');
expect(view.$('.view-course-link').attr('href')).toEqual( expect(view.$('.view-course-link').attr('href')).toEqual(context.run_modes[0].course_url);
context.run_modes[0].course_url);
expect(view.$('.view-course-link').text().trim()).toEqual('View Course'); expect(view.$('.view-course-link').text().trim()).toEqual('View Course');
expect(view.$('.run-select').length).toBe(0); expect(view.$('.run-select').length).toBe(0);
}); });
it('should allow the learner to view an archived course', function(){
// Regression test for ECOM-4974.
singleRunModeList[0].is_enrolled = true;
singleRunModeList[0].is_enrollment_open = false;
singleRunModeList[0].is_course_ended = true;
setupView(singleRunModeList);
expect(view.$('.view-course-link').text().trim()).toEqual('View Archived Course');
});
it('should not render anything if run modes is empty', function(){ it('should not render anything if run modes is empty', function(){
setupView([]); setupView([]);
expect(view.$('.enrollment-info').length).toBe(0); expect(view.$('.enrollment-info').length).toBe(0);
...@@ -140,7 +160,6 @@ define([ ...@@ -140,7 +160,6 @@ define([
}); });
it('should enroll learner when enroll button clicked', function(){ it('should enroll learner when enroll button clicked', function(){
singleRunModeList[0].is_enrolled = false;
setupView(singleRunModeList); setupView(singleRunModeList);
expect(view.$('.enroll-button').length).toBe(1); expect(view.$('.enroll-button').length).toBe(1);
spyOn(courseEnrollModel, 'save'); spyOn(courseEnrollModel, 'save');
......
<% if (is_enrolled){ %> <% if (is_enrolled) { %>
<div class="enrollment-info"><%- gettext('enrolled') %></div> <div class="enrollment-info"><%- gettext('enrolled') %></div>
<% if (is_enrollment_open || is_course_ended){ %> <% if (is_enrollment_open || is_course_ended) { %>
<a href="<%- course_url %>" class="btn-neutral btn view-course-link"> <a href="<%- course_url %>" class="btn-neutral btn view-course-link">
<% if (is_enrollment_open){ %> <% if (is_enrollment_open) { %>
<%- gettext('View Course') %> <%- gettext('View Course') %>
<% } else if (course_ended){ %> <% } else if (is_course_ended) { %>
<%- gettext('View Archived Course') %> <%- gettext('View Archived Course') %>
<% } %> <% } %>
</a> </a>
<% } %> <% } %>
<% }else{ %> <% } else { %>
<% if (enrollable_run_modes.length > 0){ %> <% if (enrollable_run_modes.length > 0) { %>
<div class="enrollment-info"><%- gettext('not enrolled') %></div> <div class="enrollment-info"><%- gettext('not enrolled') %></div>
<% if (enrollable_run_modes.length > 1){ %> <% if (enrollable_run_modes.length > 1) { %>
<div class="run-select-container"> <div class="run-select-container">
<div class="select-error"> <div class="select-error">
<%- gettext('Please select a course date') %> <%- gettext('Please select a course date') %>
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
<option value="" selected="selected"> <option value="" selected="selected">
<%- gettext('Choose Course Date') %> <%- gettext('Choose Course Date') %>
</option> </option>
<% _.each (enrollable_run_modes, function(runMode){ %> <% _.each (enrollable_run_modes, function(runMode) { %>
<option <option
value="<%- runMode.run_key %>" value="<%- runMode.run_key %>"
<% if (run_key === runMode.run_key){ %> <% if (run_key === runMode.run_key) { %>
selected="selected" selected="selected"
<% }%> <% }%>
> >
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment