Commit 2717167f by Douglas Hall

Pass purchase_workflow parameter through to post-FinishAuth views

parent d544340f
......@@ -95,6 +95,24 @@
);
});
it('sends the user to the course mode selection flow with bulk purchase workflow', function() {
// Simulate providing enrollment query string params
setFakeQueryParams({
'?enrollment_action': 'enroll',
'?course_id': COURSE_KEY,
'?purchase_workflow': 'bulk'
});
ajaxSpyAndInitialize(this);
// Expect that the view redirected to the course
// mode select flow with the purchase_workflow parameter
expect( EnrollmentInterface.enroll ).toHaveBeenCalledWith(
COURSE_KEY,
'/course_modes/choose/' + COURSE_KEY + '/?purchase_workflow=bulk'
);
});
it('sends the user to the payment flow for a paid course mode', function() {
// Simulate providing enrollment query string params
// AND specifying a course mode.
......@@ -114,6 +132,28 @@
);
});
it('sends the user to the payment flow for a paid course mode with bulk purchase workflow', function() {
// Simulate providing enrollment query string params
// AND specifying a course mode
// AND purchase workflow type.
setFakeQueryParams({
'?enrollment_action': 'enroll',
'?course_id': COURSE_KEY,
'?course_mode': 'professional-no-id',
'?purchase_workflow': 'bulk'
});
ajaxSpyAndInitialize(this);
// Expect that the view tried to auto-enroll the student
// with a redirect into the payment flow including the
// purchase_workflow parameter.
expect( EnrollmentInterface.enroll ).toHaveBeenCalledWith(
COURSE_KEY,
'/verify_student/start-flow/' + COURSE_KEY + '/?purchase_workflow=bulk'
);
});
it('sends the user to the student dashboard for an unpaid course mode', function() {
// Simulate providing enrollment query string params
// AND specifying a course mode.
......
......@@ -89,6 +89,15 @@
console.log(desc);
},
appendPurchaseWorkflow: function(redirectUrl) {
if (this.purchaseWorkflow) {
// Append the purchase_workflow parameter to indicate
// whether this is a bulk purchase or a single seat purchase
redirectUrl += '?purchase_workflow=' + this.purchaseWorkflow;
}
return redirectUrl;
},
/**
* Step 1:
* Update the user's email preferences and then proceed to the next step
......@@ -125,7 +134,7 @@
The track selection page would allow the user to select the course mode
("verified", "honor", etc.) -- or, if the only course mode was "honor",
it would redirect the user to the dashboard. */
redirectUrl = this.urls.trackSelection + courseId + '/';
redirectUrl = this.appendPurchaseWorkflow(this.urls.trackSelection + courseId + '/');
} else if ( this.courseMode === 'honor' || this.courseMode === 'audit' ) {
/* The newer version of the course details page allows the user
to specify which course mode to enroll as. If the student has
......@@ -135,7 +144,7 @@
} else {
/* If the user selected any other kind of course mode, send them
to the payment/verification flow. */
redirectUrl = this.urls.payment + courseId + '/';
redirectUrl = this.appendPurchaseWorkflow(this.urls.payment + courseId + '/');
}
/* Attempt to auto-enroll the user in a free mode of the course,
......
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