diff --git a/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py b/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py index c4c5fc04ea2aa75fbff117d0938a59d9bc057d1e..edebe86879428a79cb6aba8132f58cd456bb7989 100644 --- a/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py +++ b/lms/djangoapps/course_home_api/progress/v1/tests/test_views.py @@ -79,17 +79,21 @@ class ProgressTabTestViews(BaseCourseHomeTests): response = self.client.get(self.url) assert response.status_code == 404 - # TODO: (AA-212) implement masquerade - # def test_masquerade(self): - # user = UserFactory() - # set_user_preference(user, 'time_zone', 'Asia/Tokyo') - # CourseEnrollment.enroll(user, self.course.id) - # - # self.switch_to_staff() # needed for masquerade - # - # # Sanity check on our normal user - # assert self.client.get(self.url).data['user_timezone'] is None - # - # # Now switch users and confirm we get a different result - # self.update_masquerade(username=user.username) - # assert self.client.get(self.url).data['user_timezone'] == 'Asia/Tokyo' + @override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True) + @override_waffle_flag(COURSE_HOME_MICROFRONTEND_PROGRESS_TAB, active=True) + def test_masquerade(self): + # Enroll a verified user + verified_user = UserFactory(is_staff=False) + CourseEnrollment.enroll(verified_user, self.course.id, CourseMode.VERIFIED) + + # Enroll self in course + CourseEnrollment.enroll(self.user, self.course.id) + response = self.client.get(self.url) + assert response.status_code == 200 + + self.switch_to_staff() # needed for masquerade + assert self.client.get(self.url).data.get('enrollment_mode') is None + + # Masquerade as verified user + self.update_masquerade(username=verified_user.username) + assert self.client.get(self.url).data.get('enrollment_mode') == 'verified'