-
Notifications
You must be signed in to change notification settings - Fork 108
[MBL-19335][Student] - Discussion Checkpoint E2E test for Assignment List/Details #3326
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MBL-19335][Student] - Discussion Checkpoint E2E test for Assignment List/Details #3326
Conversation
… because of backend beta bug.) Update schema.json in dataseeding (by copying the canvasapi2 schema.json on it). Add DateTime parser to ApolloClient. refs: MBL-19335 affects: Student release note:
…a "full one" and a "minimal one"). refs: MBL-19335 affects: Student release note:
refs: MBL-19335 affects: Student release note:
refs: MBL-19335 affects: Student release note:
Add some testtags + wrap DueDateBlock into a Column to be able to identify it. refs: MBL-19335 affects: Student release note: refs: MBL-19420 affects: Student release note:
📊 Code Coverage Report✅ Student
✅ Teacher
✅ Pandautils
📈 Overall Average
|
refs: MBL-19335 affects: Student release note: refs: MBL-19420 affects: Student release note:
PR Review: Discussion Checkpoint E2E TestSummaryThis PR adds E2E tests for discussion checkpoints in the assignment list and details pages. The implementation includes GraphQL mutation support for creating discussions with checkpoints and necessary UI test tag additions. Code Quality & Best Practices✅ Strengths
|
Code Review: Discussion Checkpoint E2E Test for Assignment List/DetailsOverall AssessmentThis PR adds E2E test coverage for discussion checkpoints in assignment lists and details pages, along with supporting GraphQL mutations and UI enhancements. The implementation is solid with good test coverage, though there are several areas for improvement. 🔍 Code Quality & Best Practices✅ Strengths
|
PR Review: Discussion Checkpoint E2E Test for Assignment List/DetailsOverviewThis PR adds E2E test coverage for Discussion Checkpoints in the Assignment List and Details pages. The changes include GraphQL mutation support for creating discussions with checkpoints, UI test enhancements, and testability improvements to production code. Code Quality & Best Practices✅ Strengths
|
PR Review: Discussion Checkpoint E2E Test for Assignment List/DetailsOverviewThis PR adds E2E test coverage for Discussion Checkpoints functionality in the Student app, along with GraphQL mutations for creating discussions with checkpoints and necessary UI test helpers. ✅ Strengths
🔴 Critical Issues1. Hardcoded Test Data (DiscussionsE2ETest.kt:177-179)```kotlin Problem: This is a significant test anti-pattern. The test depends on specific data existing in a shared environment. Impact:
Recommendation: Use the seeded data or create test data programmatically. Either: // Option 2: Create discussion programmatically (once INTEROP-9901 is done) 2. Typo in Filename (ChekcpointItem.kt)``` Problem: The filename is misspelled as "Chekcpoint" instead of "Checkpoint". Impact:
Recommendation: Rename the file to `CheckpointItem.kt`. 3. Thread.sleep() in Production Test (AssignmentsE2ETest.kt:151)```kotlin Problem: Using fixed sleep timers is unreliable and slows down tests. Impact:
Recommendation: Use proper wait/polling mechanisms:
|
Pull Request Review: Discussion Checkpoint E2E TestOverviewThis PR adds E2E tests for discussion checkpoints in the assignment list and details views, along with GraphQL mutation queries for creating discussions with checkpoints. The changes also include UI improvements and test tag additions to support testing. Code Quality & Best Practices✅ Strengths
|
PR Review: Discussion Checkpoint E2E Test for Assignment List/DetailsSummaryThis PR adds E2E tests for discussion checkpoints in assignment lists and details, along with GraphQL mutation queries for creating discussions with checkpoints. The changes primarily involve test infrastructure and test page objects. ✅ Strengths
🔍 Issues & ConcernsCritical Issues
Code Quality Issues
Potential Bugs
Test Robustness
🔒 Security Concerns
⚡ Performance Considerations
📝 Test CoverageStrong Points:
Gaps:
🎯 Recommendations SummaryMust Fix:
Should Fix: Nice to Have: 📊 Overall AssessmentCode Quality: ⭐⭐⭐⭐☆ (4/5)
Test Coverage: ⭐⭐⭐⭐☆ (4/5)
Maintainability: ⭐⭐⭐☆☆ (3/5)
Security: ⭐⭐⭐⭐⭐ (5/5)
Recommendation: ✅ Approve with changes This PR adds valuable test coverage for discussion checkpoints. The main blocker is the hardcoded test data dependency which should be addressed or clearly documented before merging. The other issues are minor and can be fixed quickly. Great work on the comprehensive test implementation! 🚀 |
570efa2 to
1240f6b
Compare
PR Review: Discussion Checkpoint E2E Test for Assignment List/DetailsSummaryThis PR adds comprehensive E2E test coverage for Discussion Checkpoints in the Assignment List and Details views. The implementation includes GraphQL mutation queries for data seeding, UI test enhancements, and necessary component modifications to support checkpoint testing. ✅ StrengthsTest Structure
Code Quality
|
|
Pull Request Review: Discussion Checkpoint E2E Test This PR adds E2E test coverage for discussion checkpoints in the assignment list and details views. --- STRENGTHS ---
--- CRITICAL ISSUES ---
--- MODERATE ISSUES ---
--- MINOR ISSUES ---
--- SECURITY & PERFORMANCE --- Security: No concerns identified --- TEST COVERAGE --- Good: E2E test covers main user flow, tests both list and detail views --- RECOMMENDATIONS BEFORE MERGE ---
--- SUMMARY --- Solid PR that adds valuable E2E test coverage. Main blocker is the hardcoded test data which makes the test environment-dependent. Fix this and the filename typo before merging. Overall Assessment: NEEDS CHANGES Generated with Claude Code |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds E2E test support for discussion checkpoint functionality in the assignment list and details views. The changes primarily focus on improving test infrastructure and adding test tag identifiers to enable automated testing of discussion checkpoints.
Key changes:
- Added test tags and identifiers to discussion checkpoint UI components for E2E testing
- Implemented GraphQL mutation support for creating discussion topics with checkpoints
- Created new E2E test for discussion checkpoints on assignment list and details pages
Reviewed Changes
Copilot reviewed 16 out of 17 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| GradesScreen.kt | Updated test tag from singular to plural form for consistency |
| AssignmentListScreen.kt | Updated test tag from singular to plural form for consistency |
| DueDateReminderLayout.kt | Wrapped DueDateBlock in Column with test tag and improved test tag specificity |
| ChekcpointItem.kt | Added test tags to checkpoint name and made due date test tag more specific |
| GradesScreenTest.kt | Updated test assertions to use new checkpoint-specific test tags |
| AssignmentListScreenTest.kt | Updated test assertions to use new checkpoint-specific test tags |
| AssignmentListPage.kt | Added methods for checkpoint interaction and assertion in E2E tests |
| AssignmentDetailsPage.kt | Changed composeTestRule visibility from private to public |
| TestMetaData.kt | Added DISCUSSION_CHECKPOINTS secondary feature category |
| CanvasNetworkAdapter.kt | Added DateTime scalar adapter for GraphQL |
| DiscussionTopicsApi.kt | Added method to create discussion topics with checkpoints via GraphQL |
| CreateDiscussionTopicWithCheckpoints.graphql | New GraphQL mutation for creating discussion topics with full configuration |
| CreateDiscussionTopicMinimal.graphql | New GraphQL mutation for creating discussion topics with minimal configuration |
| StudentAssignmentDetailsPage.kt | Added assertion method for checkpoint details on assignment details page |
| DashboardPage.kt | Added selectCourse method accepting course name string |
| DiscussionsE2ETest.kt | Added new E2E test for discussion checkpoints and fixed typo in comment |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| return java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").apply { | ||
| timeZone = java.util.TimeZone.getTimeZone("UTC") | ||
| }.parse(dateString) ?: throw IllegalArgumentException("Invalid date: $dateString") |
Copilot
AI
Oct 28, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SimpleDateFormat is not thread-safe. Since this adapter may be used in concurrent contexts, consider using DateTimeFormatter from java.time package or synchronizing access to SimpleDateFormat.
…-list-details # Conflicts: # apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/DiscussionsE2ETest.kt # apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/StudentAssignmentDetailsPage.kt # automation/dataseedingapi/src/main/kotlin/com/instructure/dataseeding/api/DiscussionTopicsApi.kt
|
This pull request content is already merged within this pr: #3344 So closing this PR as it became irrelevant. |
Discussion checkpoint assignment list ande details related E2E test.
Add some testtags + wrap DueDateBlock into a Column to be able to identify it.
Added graphql mutation queries (it will be used once the seeding will be fixed - INTEROP-9901 ticket)
refs: MBL-19335
affects: Student
release note: