@@ -126,7 +126,7 @@ module('Acceptance | course-page | delete-repository-test', function (hooks) {
126126 ) ;
127127 } ) ;
128128
129- test ( 'can delete repository' , async function ( assert ) {
129+ test ( 'can delete repository via mouse down ' , async function ( assert ) {
130130 testScenario ( this . server , [ 'dummy' ] ) ;
131131 signInAsStaff ( this . owner , this . server ) ;
132132
@@ -150,13 +150,46 @@ module('Acceptance | course-page | delete-repository-test', function (hooks) {
150150
151151 await percySnapshot ( 'Course Stages - Delete Repository Modal' ) ;
152152
153- await coursePage . deleteRepositoryModal . deleteRepositoryButton . hover ( ) ;
153+ await coursePage . deleteRepositoryModal . deleteRepositoryButton . mousedown ( ) ;
154154 assert . ok ( coursePage . deleteRepositoryModal . deleteRepositoryButton . progressIndicator . isVisible , 'progress indicator should be visible' ) ;
155+ await waitUntil ( ( ) => coursePage . deleteRepositoryModal . deleteRepositoryButton . progressIndicator . width > 0 , { timeout : 10 } ) ;
155156
156- await coursePage . deleteRepositoryModal . deleteRepositoryButton . leave ( ) ;
157- assert . notOk ( coursePage . deleteRepositoryModal . deleteRepositoryButton . progressIndicator . isVisible , 'progress indicator should not be visible' ) ;
157+ await waitUntil ( ( ) => currentURL ( ) === '/courses/dummy/introduction?repo=new&track=python' ) ;
158+ await settled ( ) ; // Delete request triggers after redirect
159+
160+ await coursePage . repositoryDropdown . click ( ) ;
161+ assert . strictEqual ( coursePage . repositoryDropdown . content . nonActiveRepositoryCount , 0 , 'no repositories should be available' ) ;
162+ assert . notOk ( coursePage . repositoryDropdown . content . text . includes ( 'Delete Repository' ) , 'delete repository action should not be available' ) ;
163+ } ) ;
164+
165+ test ( 'can delete repository via touch start' , async function ( assert ) {
166+ testScenario ( this . server , [ 'dummy' ] ) ;
167+ signInAsStaff ( this . owner , this . server ) ;
168+
169+ let currentUser = this . server . schema . users . first ( ) ;
170+ let python = this . server . schema . languages . findBy ( { name : 'Python' } ) ;
171+ let course = this . server . schema . courses . findBy ( { slug : 'dummy' } ) ;
172+
173+ course . update ( { releaseStatus : 'live' } ) ;
174+
175+ this . server . create ( 'repository' , 'withFirstStageCompleted' , {
176+ course : course ,
177+ language : python ,
178+ user : currentUser ,
179+ } ) ;
180+
181+ await catalogPage . visit ( ) ;
182+ await catalogPage . clickOnCourse ( 'Build your own Dummy' ) ;
183+ await courseOverviewPage . clickOnStartCourse ( ) ;
184+ await coursePage . repositoryDropdown . click ( ) ;
185+ await coursePage . repositoryDropdown . clickOnAction ( 'Delete Repository' ) ;
186+
187+ await percySnapshot ( 'Course Stages - Delete Repository Modal' ) ;
188+
189+ await coursePage . deleteRepositoryModal . deleteRepositoryButton . touchstart ( ) ;
190+ assert . ok ( coursePage . deleteRepositoryModal . deleteRepositoryButton . progressIndicator . isVisible , 'progress indicator should be visible' ) ;
191+ await waitUntil ( ( ) => coursePage . deleteRepositoryModal . deleteRepositoryButton . progressIndicator . width > 0 , { timeout : 10 } ) ;
158192
159- await coursePage . deleteRepositoryModal . deleteRepositoryButton . press ( ) ;
160193 await waitUntil ( ( ) => currentURL ( ) === '/courses/dummy/introduction?repo=new&track=python' ) ;
161194 await settled ( ) ; // Delete request triggers after redirect
162195
0 commit comments