@@ -42,6 +42,7 @@ class CourseWaffleFlagsViewTest(CourseTestCase):
4242 "enable_unit_expanded_view" : False ,
4343 "enable_outline_component_creation" : False ,
4444 "enable_audio_description" : False ,
45+ "enable_transcript_editor" : False ,
4546 }
4647
4748 def setUp (self ):
@@ -84,3 +85,55 @@ def test_audio_description_upload_flag_enabled(self):
8485 url = reverse ("cms.djangoapps.contentstore:v1:course_waffle_flags" )
8586 response = self .client .get (url )
8687 assert response .data ["enable_audio_description" ] is True
88+
89+ def test_enable_transcript_editor_flag_default_is_false (self ):
90+ """
91+ The contentstore.enable_transcript_editor flag should default to False when not
92+ overridden, both globally and for a specific course.
93+ """
94+ global_url = reverse ("cms.djangoapps.contentstore:v1:course_waffle_flags" )
95+ course_url = reverse (
96+ "cms.djangoapps.contentstore:v1:course_waffle_flags" ,
97+ kwargs = {"course_id" : self .course .id },
98+ )
99+ for url in (global_url , course_url ):
100+ response = self .client .get (url )
101+ assert response .data ["enable_transcript_editor" ] is False
102+
103+ @override_waffle_flag (toggles .ENABLE_TRANSCRIPT_EDITOR , active = True )
104+ def test_enable_transcript_editor_flag_enabled_globally (self ):
105+ """
106+ When the contentstore.enable_transcript_editor flag is active globally, the
107+ serializer should return True for both the global endpoint and any
108+ course-specific endpoint.
109+ """
110+ global_url = reverse ("cms.djangoapps.contentstore:v1:course_waffle_flags" )
111+ course_url = reverse (
112+ "cms.djangoapps.contentstore:v1:course_waffle_flags" ,
113+ kwargs = {"course_id" : self .course .id },
114+ )
115+ for url in (global_url , course_url ):
116+ response = self .client .get (url )
117+ assert response .data ["enable_transcript_editor" ] is True
118+
119+ def test_enable_transcript_editor_flag_enabled_per_course (self ):
120+ """
121+ When the contentstore.enable_transcript_editor flag is enabled via a
122+ WaffleFlagCourseOverrideModel entry for a specific course, the
123+ course-scoped endpoint should return True while the global endpoint
124+ should remain False.
125+ """
126+ WaffleFlagCourseOverrideModel .objects .create (
127+ waffle_flag = toggles .ENABLE_TRANSCRIPT_EDITOR .name ,
128+ course_id = self .course .id ,
129+ enabled = True ,
130+ )
131+ global_url = reverse ("cms.djangoapps.contentstore:v1:course_waffle_flags" )
132+ course_url = reverse (
133+ "cms.djangoapps.contentstore:v1:course_waffle_flags" ,
134+ kwargs = {"course_id" : self .course .id },
135+ )
136+ global_response = self .client .get (global_url )
137+ course_response = self .client .get (course_url )
138+ assert global_response .data ["enable_transcript_editor" ] is False
139+ assert course_response .data ["enable_transcript_editor" ] is True
0 commit comments