Skip to content

Commit a256422

Browse files
authored
[MBL-19264][Student][Teacher] Unstub SpeedGrader comments-related interaction tests (#3434)
* Unstub Interaction tests in SpeedGraderCommentsInteractionTest.kt and SubmissionDetailsInteractionTest.kt refs: MBL-19264 affects: Student, Teacher release note: * Refactor SpeedGrader commentsLibrary interaction tests for improved clarity and functionality. refs: MBL-19264 affects: Student, Teacher release note: * Fix test refs: MBL-19264 affects: Student, Teacher release note: * Attempt to fix the CommentLibraryE2ETest. refs: MBL-19264 affects: Student, Teacher release note: * Fix PR findings. refs: MBL-19264 affects: Student, Teacher release note: * PR fix refs: MBL-19264 affects: Student, Teacher release note:
1 parent f125f59 commit a256422

File tree

11 files changed

+621
-383
lines changed

11 files changed

+621
-383
lines changed

apps/student/src/androidTest/java/com/instructure/student/ui/interaction/SubmissionDetailsInteractionTest.kt

Lines changed: 122 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import com.instructure.canvas.espresso.FeatureCategory
2525
import com.instructure.canvas.espresso.Priority
2626
import com.instructure.canvas.espresso.TestCategory
2727
import com.instructure.canvas.espresso.TestMetaData
28-
import com.instructure.canvas.espresso.annotations.Stub
2928
import com.instructure.canvas.espresso.mockcanvas.MockCanvas
3029
import com.instructure.canvas.espresso.mockcanvas.addAssignment
3130
import com.instructure.canvas.espresso.mockcanvas.addFileToCourse
@@ -246,18 +245,86 @@ class SubmissionDetailsInteractionTest : StudentComposeTest() {
246245
)
247246
}
248247

249-
@Stub
250248
@Test
251249
@TestMetaData(Priority.COMMON, FeatureCategory.SUBMISSIONS, TestCategory.INTERACTION)
252-
fun testComments_videoCommentPlayback() {
253-
// After recording a video comment, user should be able to view a replay
250+
fun testComments_videoCommentDisplayed() {
251+
val data = getToCourse()
252+
val user = data.users.values.first()
253+
val assignment = data.addAssignment(
254+
courseId = course.id,
255+
submissionTypeList = listOf(Assignment.SubmissionType.ONLINE_TEXT_ENTRY)
256+
)
257+
258+
val videoAttachment = createVideoAttachment(data, "video_comment.mp4")
259+
260+
val commentText = "Here's a video comment"
261+
262+
val submissionComment = SubmissionComment(
263+
id = data.newItemId(),
264+
authorId = user.id,
265+
authorName = user.name,
266+
comment = commentText,
267+
createdAt = Date(),
268+
attachments = arrayListOf(videoAttachment),
269+
author = Author(id = user.id, displayName = user.shortName),
270+
attempt = 1
271+
)
272+
273+
data.addSubmissionForAssignment(
274+
assignmentId = assignment.id,
275+
userId = user.id,
276+
type = Assignment.SubmissionType.ONLINE_TEXT_ENTRY.apiString,
277+
body = "Some Text!",
278+
comment = submissionComment
279+
)
280+
281+
courseBrowserPage.selectAssignments()
282+
assignmentListPage.clickAssignment(assignment)
283+
assignmentDetailsPage.goToSubmissionDetails()
284+
submissionDetailsPage.openComments()
285+
submissionDetailsPage.assertCommentDisplayed(commentText, user)
286+
submissionDetailsPage.assertVideoCommentDisplayed()
254287
}
255288

256-
@Stub
257289
@Test
258290
@TestMetaData(Priority.COMMON, FeatureCategory.SUBMISSIONS, TestCategory.INTERACTION)
259-
fun testComments_audioCommentPlayback() {
260-
// After recording an audio comment, user should be able to hear an audio playback
291+
fun testComments_audioCommentDisplayed() {
292+
val data = getToCourse()
293+
val user = data.users.values.first()
294+
val assignment = data.addAssignment(
295+
courseId = course.id,
296+
submissionTypeList = listOf(Assignment.SubmissionType.ONLINE_TEXT_ENTRY)
297+
)
298+
299+
val audioAttachment = createAudioAttachment(data, "audio_comment.mp3")
300+
301+
val commentText = "Here's an audio comment"
302+
303+
val submissionComment = SubmissionComment(
304+
id = data.newItemId(),
305+
authorId = user.id,
306+
authorName = user.name,
307+
comment = commentText,
308+
createdAt = Date(),
309+
attachments = arrayListOf(audioAttachment),
310+
author = Author(id = user.id, displayName = user.shortName),
311+
attempt = 1
312+
)
313+
314+
data.addSubmissionForAssignment(
315+
assignmentId = assignment.id,
316+
userId = user.id,
317+
type = Assignment.SubmissionType.ONLINE_TEXT_ENTRY.apiString,
318+
body = "Some Text!",
319+
comment = submissionComment
320+
)
321+
322+
courseBrowserPage.selectAssignments()
323+
assignmentListPage.clickAssignment(assignment)
324+
assignmentDetailsPage.goToSubmissionDetails()
325+
submissionDetailsPage.openComments()
326+
submissionDetailsPage.assertCommentDisplayed(commentText, user)
327+
submissionDetailsPage.assertAudioCommentDisplayed()
261328
}
262329

263330

@@ -286,6 +353,54 @@ class SubmissionDetailsInteractionTest : StudentComposeTest() {
286353
return attachment
287354
}
288355

356+
private fun createAudioAttachment(data: MockCanvas, name: String): Attachment {
357+
val course1 = data.courses.values.first()
358+
val fileId = data.addFileToCourse(
359+
courseId = course1.id,
360+
displayName = name,
361+
contentType = "audio/mp3",
362+
fileContent = "fake audio content"
363+
)
364+
365+
val mockUrl = "https://mock-data.instructure.com/files/$fileId/preview"
366+
val attachment = Attachment(
367+
id = data.newItemId(),
368+
contentType = "audio/mp3",
369+
displayName = name,
370+
filename = name,
371+
url = mockUrl,
372+
previewUrl = mockUrl,
373+
createdAt = Date(),
374+
size = 1024L
375+
)
376+
377+
return attachment
378+
}
379+
380+
private fun createVideoAttachment(data: MockCanvas, name: String): Attachment {
381+
val course1 = data.courses.values.first()
382+
val fileId = data.addFileToCourse(
383+
courseId = course1.id,
384+
displayName = name,
385+
contentType = "video/mp4",
386+
fileContent = "fake video content"
387+
)
388+
389+
val mockUrl = "https://mock-data.instructure.com/files/$fileId/preview"
390+
val attachment = Attachment(
391+
id = data.newItemId(),
392+
contentType = "video/mp4",
393+
displayName = name,
394+
filename = name,
395+
url = mockUrl,
396+
previewUrl = mockUrl,
397+
createdAt = Date(),
398+
size = 2048L
399+
)
400+
401+
return attachment
402+
}
403+
289404
// Mock a specified number of students and courses, sign in, then navigate to course browser page for
290405
// first course.
291406
private fun getToCourse(

apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/CommentLibraryE2ETest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class CommentLibraryE2ETest : TeacherComposeTest() {
101101

102102
val testText = "another"
103103
Log.d(STEP_TAG, "Type '$testText' word.")
104-
speedGraderPage.typeComment(testText)
104+
speedGraderPage.typeCommentInCommentLibraryInputField(testText)
105105

106106
Log.d(ASSERTION_TAG, "Assert that there is only 1 comment displayed in the comment library, which matches the filter.")
107107
speedGraderPage.assertCommentLibraryItemCount(1)
@@ -126,7 +126,7 @@ class CommentLibraryE2ETest : TeacherComposeTest() {
126126

127127
val nonExistingCommentText = "csakafradi"
128128
Log.d(STEP_TAG, "Type a non-existing comment text, '$nonExistingCommentText' into the comment input field.")
129-
speedGraderPage.typeComment(nonExistingCommentText)
129+
speedGraderPage.typeCommentInCommentLibraryInputField(nonExistingCommentText)
130130

131131
Log.d(ASSERTION_TAG, "Assert that there is no comment displayed in the comment library as there's no matching comment with the entered (filter) text.")
132132
speedGraderPage.assertCommentLibraryItemCount(0)
@@ -148,7 +148,7 @@ class CommentLibraryE2ETest : TeacherComposeTest() {
148148

149149
val testText2 = "test"
150150
Log.d(STEP_TAG, "Type '$testText2' word.")
151-
speedGraderPage.typeComment(testText2)
151+
speedGraderPage.typeCommentInCommentLibraryInputField(testText2)
152152

153153
Log.d(ASSERTION_TAG, "Assert that there are 2 comments displayed in the comment library, which matches the filter.")
154154
speedGraderPage.assertCommentLibraryItemCount(2)
@@ -162,9 +162,9 @@ class CommentLibraryE2ETest : TeacherComposeTest() {
162162
Log.d(ASSERTION_TAG, "Assert that the 'Comments' label is displayed with the corresponding number of comments, which is 2 at the moment.")
163163
speedGraderPage.assertCommentsLabelDisplayed(2)
164164

165-
Log.d(ASSERTION_TAG, "Assert assert both the '$testComment' and '$testComment2' (whole) comments are displayed in the comments section.")
166-
speedGraderPage.assertCommentDisplayed(testComment)
167-
speedGraderPage.assertCommentDisplayed(testComment2)
165+
Log.d(ASSERTION_TAG, "Assert that both the '$testComment' and '$testComment2' (whole) comments are displayed in the comments section.")
166+
speedGraderPage.assertCommentDisplayed(testComment, author = null)
167+
speedGraderPage.assertCommentDisplayed(testComment2, author = null)
168168
}
169169

170170
private fun prepareSettingsAndMakeAssignmentWithSubmission(

0 commit comments

Comments
 (0)