diff --git a/.maestro/README.md b/.maestro/README.md index c8652027e..e2d7ad6a4 100644 --- a/.maestro/README.md +++ b/.maestro/README.md @@ -92,20 +92,22 @@ export MAESTRO_FLOW=./maestro/flows/flow_name.yaml 5. Teacher approves student → student joins class 6. Teacher generates parent invite link to join class 7. Parent joins using link → adds child to class + --- ### 001_002_add_user_direct_test 1. Admin logs into the app -2. Admin adds a new user directly (Parent user) +2. Admin adds a new user directly (Parent user) in offline mode 3. Verify "Family member" field is not visible when role is changed to Teacher 4. Validate "Edit" button functionality 5. Validate mandatory fields and input constraints 6. Add child user via Family member → Add person screen -7. Create account for Parent user (username, password) +7. Device back to online mode, then user Create account for Parent user (username, password) 8. Create account for Child user (username, assign/manage QR code badge, set password) 9. Create a student user for QR code validation 10. Validate login, password change, and child mode access 11. Verify QR-based login for student + --- ### 001_003_login_using_school_link_test @@ -114,6 +116,7 @@ export MAESTRO_FLOW=./maestro/flows/flow_name.yaml 3. Enter valid school URL 4. Perform login with credentials 5. Verify successful access to the app + --- ### 001_005_add_school_self_registration_test @@ -122,21 +125,31 @@ export MAESTRO_FLOW=./maestro/flows/flow_name.yaml 3. Creates system administrator account 4. Logs into newly created school 5. Verifies profile and logout/login flow + --- ### 002_browse_lessons_test -1. Admin logs in to the App -2. Adds app using external manifest link -3. Verifies app is added successfully -4. Opens app and browses lessons -5. Opens and validates a lesson content +1. Admin logs into the app. +2. Adds an app using an external manifest link. +3. Verifies the app is added successfully. +4. Browses the available lessons and validates lesson content. +5. Downloads a lesson/activity for offline use. +6. In offline mode user verifies the downloaded lesson can be accessed and completed without network connectivity. +7. Submits a statement from the downloaded lesson and verifies successful submission. +8. Returns online and verifies the app remains accessible. + --- ### 003_admin_user_assigns_assignment_to_a_class_test -1. Admin setup includes app, class and teacher creation -2. Teacher logs in and accesses class -3. Teacher creates a new assignment -4. Assignment is linked with lesson content -5. Assignment is saved and verified in class +1. Admin sets up the school by adding an app, creating a class, and adding a teacher and students. +2. Teacher logs in and verifies the available app and lesson content. +3. In Offline mode - Teacher creates an assignment for the class with title, description, due date/time, and tasks. +4. Teacher goes back online and verifies the assignment details, assigned class, students, and linked tasks. +5. Student A completes all assignment activities and submits xAPI statements. +6. Student B partially completes the assignment by submitting one activity. +7. Teacher verifies assignment progress, completion statistics, student results, and average scores. +8. Teacher validates the generated xAPI statement details, including the raw xAPI statement. +9. Teacher edits the assignment title and verifies the update. + --- diff --git a/.maestro/flows/001_002_add_user_direct_test.yaml b/.maestro/flows/001_002_add_user_direct_test.yaml index 7026ce7d7..b631cd3eb 100644 --- a/.maestro/flows/001_002_add_user_direct_test.yaml +++ b/.maestro/flows/001_002_add_user_direct_test.yaml @@ -42,6 +42,7 @@ onFlowComplete: - assertVisible: id: "app_title" text: "People" +- setAirplaneMode: enabled - tapOn: id: "ExpandableFab" # +Person button - tapOn: "Add new person" @@ -182,6 +183,7 @@ onFlowComplete: id: "app_title" text: "ParentA User" - tapOn: "Child User" +- setAirplaneMode: disabled - assertVisible: id: "app_title" text: "Child User" diff --git a/.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml b/.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml index 191a9dd44..5e40ff949 100644 --- a/.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml +++ b/.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml @@ -39,11 +39,24 @@ onFlowComplete: PASSWORD: "test123" - assertVisible: id: "nav_home" +- tapOn: "Apps" +- assertVisible: + id: "app_title" + text: "Apps" +- tapOn: "Example Web App" +- tapOn: "Lessons" +- tapOn: "Examples" +- assertVisible: "Lesson 001" +- assertVisible: "Statement Maker" +- assertVisible: "JS Tetris" +- assertVisible: "Assignment Result Statement Demo" +- tapOn: "Apps" - tapOn: "Classes" - assertVisible: id: "app_title" text: "Classes" - assertVisible: "TestClass" +- setAirplaneMode: enabled - tapOn: "Assignments" - tapOn: id: "floating_action_button" # +Assignment button @@ -97,6 +110,12 @@ onFlowComplete: - tapOn: "Examples" - tapOn: "Assignment Result Statement Demo" - tapOn: "Save" +- assertVisible: + id: "app_title" + text: "Homework 1" +- setAirplaneMode: disabled +- tapOn: "Assignments" +- tapOn: "Homework 1" - assertVisible: id: "app_title" text: "Homework 1"