Data Migration: pageobjects migration to SQL-based versions
Add SQL-based versions of pageobject classes to support E2E test migration.
-
Abstract out methods into new SQL-based classes.
-
Do not combine SQL-based code with old Datastore-based code in the same class.
Task List: Migrate PageObjects to SQL-based versions (only classes that need migration)
-
[x] AdminSearchPage
-
[ ] AppPage (retain existing name)
-
[x] FeedbackResultsPage
-
[x] FeedbackSubmitPage
-
[x] InstructorCourseDetailsPage
-
[x] InstructorCourseEditPage
-
[x] InstructorCourseEnrollPage
-
[ ] InstructorCoursesPage
-
[x] InstructorCourseStudentDetailsEditPage
-
[x] InstructorCourseStudentDetailsViewPage
-
[x] InstructorFeedbackEditPage
-
[ ] InstructorFeedbackResultsPage
-
[ ] InstructorFeedbackSessionsPage
-
[x] InstructorHomePage
-
[ ] InstructorSearchPage
-
[ ] InstructorSessionIndividualExtensionPage
-
[x] InstructorStudentListPage
-
[ ] InstructorStudentRecordsPage
-
[ ] StudentCourseDetailsPage
-
[ ] UserNotificationsPage
@DhiraPT Hi! May I attempt to contribute to this PR for InstructorFeedbackResultsPage?
@twhjames Yes, sure!
@myrilla12 Yes, thank you!
Also for @twhjames, some tips for the migration:
- Copy the entire old pageobject to the new file and then add "Sql" to the file name and class name.
- Remove the imports from
teammates.common.datatransfer.attributes(so we can easily see which entity to replace). - Replace all the entity with their sql entity (e.g.
StudentAttributestoStudent). - Remove any non-sql methods from the new class (e.g., methods that only apply to
Attributes) and remove sql-related methods from the old class. - Update any sql test classes that are using the old pageobject.
These are just some of the basic tips. Sometimes you may need additional adjustments, so I would recommend understanding the existing logic first (what the class does and how it is being used). Maybe you can also uncover some hidden bugs in the current implementation.