Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
9ac523f
add basic implimentation for settings screen flow
Anugraha-sutara Jan 9, 2026
7245afc
Merge branch 'invite-person' into school_settings_screen_flow
Anugraha-sutara Jan 9, 2026
d32d272
refactor
Anugraha-sutara Jan 14, 2026
71b6a51
refactor
Anugraha-sutara Jan 15, 2026
b414886
Merge branch 'invite-person' into school_settings_screen_flow
Anugraha-sutara Jan 20, 2026
ece2f8e
add shared school device enable screen
Anugraha-sutara Jan 20, 2026
58d0bd2
code refactor
Anugraha-sutara Jan 21, 2026
a53fc6d
code refactor
Anugraha-sutara Jan 22, 2026
14accfe
implement sharedschooldevicesettings screen ui
Anugraha-sutara Feb 6, 2026
48aba60
Merge branch 'main' into school_settings_screen_flow
Anugraha-sutara Feb 6, 2026
0cd6964
update with main
Anugraha-sutara Feb 6, 2026
47344e5
implement teacherandadminlogin screen ui
Anugraha-sutara Feb 6, 2026
abd7760
implement sharedschooldevicesettings screen ui
Anugraha-sutara Feb 11, 2026
57d8cb3
test - added test for shared school devices
poojaustad Feb 11, 2026
4dccd93
test - updated flow
poojaustad Feb 11, 2026
be8540f
test - updated flow
poojaustad Feb 11, 2026
1f55afa
test - added description
poojaustad Feb 11, 2026
5a9ec7c
add studentlist screen
Anugraha-sutara Feb 13, 2026
1fac0a2
Fix AddSchoolUseCase: AddSchoolUseCase incorrectly set approval requi…
mikedawson Feb 13, 2026
b34cc56
Update DESIGN_GUIDELINES.md
mikedawson Feb 11, 2026
6dcdab4
Update DESIGN_GUIDELINES.md
mikedawson Feb 11, 2026
967a910
Update DESIGN_GUIDELINES.md
mikedawson Feb 11, 2026
12777fa
Update DESIGN_GUIDELINES.md
mikedawson Feb 12, 2026
fc235a8
test - updated path
poojaustad Feb 16, 2026
2a45617
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
poojaustad Feb 16, 2026
5d10dec
Update DESIGN_GUIDELINES.md
mikedawson Feb 13, 2026
a1582a6
Update DESIGN_GUIDELINES.md
mikedawson Feb 13, 2026
c6475d1
test - updated path
poojaustad Feb 16, 2026
cbbeceb
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
poojaustad Feb 16, 2026
34d8159
test - updated path
poojaustad Feb 16, 2026
96b9a57
refactor
Anugraha-sutara Feb 16, 2026
1d4e0fc
refactor
Anugraha-sutara Feb 16, 2026
fefe2c6
test - updated evn
poojaustad Feb 17, 2026
65a783f
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
poojaustad Feb 17, 2026
c2f70a4
test - updated id
poojaustad Feb 17, 2026
0a5983a
add login flow
Anugraha-sutara Feb 17, 2026
440cb3f
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
Anugraha-sutara Feb 17, 2026
e212f59
add login flow
Anugraha-sutara Feb 17, 2026
6762c70
test - updated flow
poojaustad Feb 18, 2026
9e56e11
disable pending request for self enable case
Anugraha-sutara Feb 19, 2026
60f8c33
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
Anugraha-sutara Feb 19, 2026
a68d19b
Merge branch 'main' into school_settings_screen_flow
Anugraha-sutara Feb 19, 2026
c87d97e
add student login flow
Anugraha-sutara Feb 20, 2026
6367d90
add Get and SetSharedDevicePINUseCase
Anugraha-sutara Feb 23, 2026
6d80a67
make the settingsIcon always visible for testing
Anugraha-sutara Feb 23, 2026
cda751d
add refactor
Anugraha-sutara Feb 23, 2026
238c8b1
add set shared device self select usecase
Anugraha-sutara Feb 24, 2026
bbbf43e
fix maestro test
Anugraha-sutara Feb 25, 2026
7f373c7
fix maestro test
Anugraha-sutara Feb 25, 2026
047d261
fix maestro test failure
Anugraha-sutara Feb 25, 2026
be6bfb6
fix maestro test
Anugraha-sutara Feb 26, 2026
22affd0
fix maestro test
Anugraha-sutara Feb 26, 2026
8a52518
fix maestro test
Anugraha-sutara Feb 26, 2026
d6082de
test - updated test flow
poojaustad Feb 27, 2026
aec4a8e
test - updated test text
poojaustad Feb 27, 2026
95458eb
fix ui issues
Anugraha-sutara Feb 27, 2026
6f79b37
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
Anugraha-sutara Feb 27, 2026
3ebf6f1
test - updated test text
poojaustad Feb 27, 2026
735d268
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
poojaustad Feb 27, 2026
7f9fa57
fix ui issues
Anugraha-sutara Feb 27, 2026
b8bcd45
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
Anugraha-sutara Feb 27, 2026
b9c5d77
test - updated test
poojaustad Feb 27, 2026
cd8ead3
test - updated device name
poojaustad Feb 27, 2026
211eee1
test - updated device name
poojaustad Feb 27, 2026
525a47f
test - updated test
poojaustad Feb 27, 2026
0b883ea
test - updated id: "Settings"
poojaustad Feb 27, 2026
25b1428
fix ui issues
Anugraha-sutara Feb 27, 2026
b763a86
test - updated test
poojaustad Feb 27, 2026
5ed41c9
fix maestro test failure
Anugraha-sutara Feb 27, 2026
8800fa9
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
Anugraha-sutara Feb 27, 2026
30f3362
test - updated description
poojaustad Feb 27, 2026
3eb8e61
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
poojaustad Feb 27, 2026
276ff85
fix maestro test failure
Anugraha-sutara Mar 2, 2026
d51a44c
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
Anugraha-sutara Mar 2, 2026
ba283dc
test - updated- Select Class enabled/disabled state in the database n…
poojaustad Mar 2, 2026
98a5d49
Merge remote-tracking branch 'origin/school_settings_screen_flow' int…
poojaustad Mar 2, 2026
f6dafe4
fix maestro test failure
Anugraha-sutara Mar 2, 2026
4a9a05e
fix maestro test failure
Anugraha-sutara Mar 2, 2026
3333702
fix maestro test failure
Anugraha-sutara Mar 2, 2026
0cd84bc
uncomment last part of test
Anugraha-sutara Mar 3, 2026
7e78579
add refactor
Anugraha-sutara Mar 3, 2026
d5e428b
add refactor
Anugraha-sutara Mar 3, 2026
fe83239
add refactor
Anugraha-sutara Mar 4, 2026
6028681
add refactor
Anugraha-sutara Mar 4, 2026
4a372ae
add refactor
Anugraha-sutara Mar 4, 2026
ada2d4f
add refactor
Anugraha-sutara Mar 5, 2026
c17ec32
add refactor
Anugraha-sutara Mar 9, 2026
5b1d624
Merge branch 'main' into school_settings_screen_flow
Anugraha-sutara Mar 10, 2026
65680a0
School config work in progress.
mikedawson Mar 19, 2026
684eeff
implement SchoolConfigSettingDataSource for db, http, and repository
Anugraha-sutara Mar 23, 2026
cf5f182
update DrainRemoteWriteQueueUseCase
Anugraha-sutara Mar 23, 2026
1d643c4
Merge branch 'main' into school_settings_screen_flow
Anugraha-sutara Mar 24, 2026
9a8f53c
fix conflict
Anugraha-sutara Mar 24, 2026
ea17d8a
add permission check query
Anugraha-sutara Mar 24, 2026
96b7d4d
Merge branch 'main' into dev-schoolconfig
Anugraha-sutara Mar 25, 2026
29a36f3
Merge branch 'main' into school_settings_screen_flow
Anugraha-sutara Mar 25, 2026
c8d10e5
Merge branch 'dev-schoolconfig' into school_settings_screen_flow
Anugraha-sutara Mar 25, 2026
06cee38
fix build failure
Anugraha-sutara Mar 25, 2026
71d4c11
Merge branch 'dev-schoolconfig' into school_settings_screen_flow
Anugraha-sutara Mar 25, 2026
a92896f
add db migration
Anugraha-sutara Mar 26, 2026
b281a35
Merge branch 'main' into dev-schoolconfig
Anugraha-sutara Mar 30, 2026
140d592
Merge branch 'dev-schoolconfig' into school_settings_screen_flow
Anugraha-sutara Mar 30, 2026
2743c7d
add teacherpin
Anugraha-sutara Mar 30, 2026
c0fe5a3
Update SchoolConfigSettingDataSource.GetListParams to use a list of k…
Anugraha-sutara Mar 30, 2026
ee26a73
Merge branch 'dev-schoolconfig' into school_settings_screen_flow
Anugraha-sutara Mar 30, 2026
d8a2fba
Update teacher pin and class enabled options using school config
Anugraha-sutara Apr 2, 2026
0e4aae3
add refactor
Anugraha-sutara Apr 3, 2026
4fb423b
Merge branch 'main' into school_settings_screen_flow
Anugraha-sutara Apr 3, 2026
49e810f
fix maestro failure
Anugraha-sutara Apr 6, 2026
7e53991
add logs for testing
Anugraha-sutara Apr 6, 2026
be279ba
remove logs
Anugraha-sutara Apr 6, 2026
7128a64
refactor
Anugraha-sutara Apr 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ onFlowComplete:
- runFlow:
file: "subflows/admin_add_class.yaml"
env:
CLASSNAME: "New Class"
CLASS_NAME: New Class
- assertVisible:
id: "app_title"
text: "New Class"
Expand Down
344 changes: 344 additions & 0 deletions .maestro/flows/001_004_shared_device_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,344 @@
appId: world.respect.app
onFlowStart:
- clearState: world.respect.app
- runScript:
file: "scripts/school_init.js"
env:
TESTCONTROLLER_URL: ${TESTCONTROLLER_URL}
SCHOOL_ADMIN_PASSWORD: ${SCHOOL_ADMIN_PASSWORD}
DIR_ADMIN_AUTH_HEADER: ${DIR_ADMIN_AUTH_HEADER}
SCHOOL_URL: ${SCHOOL_URL}
SCHOOL_NAME: ${SCHOOL_NAME}
URL_SUBSTITUTION: ${URL_SUBSTITUTION}
NAME: "001_004_shared_device_test.yaml"

onFlowComplete:
- runScript:
file: "scripts/teardown.js"

---
## Admin setup
- runFlow: "subflows/school_admin_login_flow.yaml"

# Add class, then add Student and Teacher to class
- runFlow:
file: "subflows/admin_add_class.yaml"
env:
CLASS_NAME: New Class
- runFlow:
file: "subflows/add_person_to_a_class.yaml"
env:

ADD_USER: "Add Student"
FIRSTNAME: "StudentA"
LASTNAME: "User"
GENDER: "Male"
ROLE: "Student"
CLASS_NAME: "New Class"
USERNAME: "studentauser"
PASSWORD: "test123"
QR_BADGE_LINK: ${output.SCHOOL_URL}respect_school_link/personqrbadge/id/12312
- back
- runFlow:
file: "subflows/add_person_to_a_class.yaml"
env:
ADD_USER: "Add Teacher"
FIRSTNAME: "TeacherA"
LASTNAME: "User"
GENDER: "Male"
ROLE: "Teacher"
CLASS_NAME: "New Class"
USERNAME: "teacherauser"
PASSWORD: "test123"
- tapOn: "Apps"
- assertVisible:
id: "app_title"
text: "Apps"

# Enable Shared Mode - Test Device 1
- tapOn:
id: "Settings"
- assertVisible:
id: "app_title"
text: "Settings"
- assertVisible: "School name, policies, shared device"
- tapOn: "School"
- assertVisible:
id: "app_title"
text: "School"
- assertVisible: "School name"
- assertVisible: ${output.SCHOOL_NAME}
- assertVisible: "Shared school device"
- assertVisible: "0 devices"
- tapOn: "Shared school device"
- assertVisible:
id: "app_title"
text: "Shared school device"
- assertVisible: "No Shared Devices Available"
- assertVisible: "Shared school devices allow multiple users to securely access the app on the same device using their profile"
- assertVisible: "Student can self-select their class and name"
- assertVisible: "Teacher/admin unlock PIN"
- copyTextFrom:
id: "set_pin"
- tapOn:
id: "set_pin"
- assertVisible: "Set PIN"
- inputText: "123"
- tapOn: "Save"
- assertVisible: "Error: please enter 4 digit number"
- eraseText
- inputText: "123a"
- tapOn: "Save"
- assertVisible: "Error: please enter 4 digit number"
- tapOn: "Cancel"
- assertVisible: ${maestro.copiedText}
- tapOn:
id: "set_pin"
- assertVisible: "Set PIN"
- inputText: "1234"
- tapOn: "Save"
- assertVisible:
id: "app_title"
text: "Shared school device"
- assertVisible: "1234"

# Enable This Device
- tapOn:
id: "floating_action_button"
- assertVisible: "Add device"
- assertVisible: "This device"
- assertVisible: "Enable shared school device on mode on this device"
- assertVisible: "Another device"
- assertVisible: "Add using QR code, link, or invite code"
- tapOn: "This device"
- assertVisible:
id: "app_title"
text: "Enable shared school device mode"
- tapOn: "Enable"
- assertVisible: "Required field*" #mandatory field error
- tapOn:
text: "Device name *"
index: 1
- inputText: "Test Device 1"
- hideKeyboard
- assertVisible: "Enable"
- tapOn: "Enable"
- assertVisible:
id: "app_title"
text: "Select class"
- assertVisible: "New Class"
- assertVisible: "Scan QR code badge"

# Enable Test Device 1
- tapOn: "Teacher/admin login"
- assertVisible:
id: "app_title"
text: "Teacher/admin login"
#- tapOn: "Enter school device PIN"
#- inputText: ${maestro.copiedText}
#- tapOn: "Next"
#- assertVisible: "Incorrect device PIN"
#- eraseText
- tapOn: "Enter school device PIN"
- inputText: "1234"
- tapOn: "Next"
- assertVisible:
id: "app_title"
text: "Login"
#- tapOn: "Select another school"
#- runFlow:
# file: "subflows/get_started_select_school_by_name.yaml"
# env:
# SCHOOL_NAME: ${SCHOOL_NAME}
- tapOn:
id: "username"
- inputText: "teacherauser"
- tapOn:
id : "password"
- inputText: "test123"
- tapOn: "Login"
- runFlow:
when:
visible: "Save password for Respect?"
file: "subflows/save_password_prompt_cancel.yaml"
- tapOn: "Apps"
- assertVisible:
id: "app_title"
text: "Apps"
- tapOn:
id: "Settings"
- assertVisible:
id: "app_title"
text: "Settings"
- tapOn: "School"
- assertVisible:
id: "app_title"
text: "School"
- assertVisible: "School name"
- assertVisible: ${output.SCHOOL_NAME}
- assertVisible: "Shared school device"
- assertVisible: "1 devices"
- tapOn: "Shared school device"
- assertVisible:
id: "app_title"
text: "Shared school device"
- assertVisible: "Student can self-select their class and name" #switch is ON
- assertVisible: "Teacher/admin unlock PIN"
- assertVisible: "Devices (1)"
- assertVisible: "Test Device 1 (This device)"

# Generate Invite Link (Approval OFF)
- tapOn:
id: "floating_action_button"
- assertVisible: "Add device"
- tapOn: "Another device"
- assertVisible:
id: "app_title"
text: "Add shared school device"
- assertVisible: ${output.SCHOOL_NAME}
- assertVisible: "Approval required" #switch is On
- assertVisible: "Copy link"
- assertVisible: "Send link via SMS"
- assertVisible: "Send link via email"
- assertVisible: "Share link"
- assertVisible: "Reset code"
- tapOn: "Approval required" # turn the switch off
- assertVisible: "Approval not required until:.*"
- copyTextFrom:
id: "invite_url"

# Enable Test Device 2
- clearState: world.respect.app
- runFlow:
file: "subflows/openlink_flow.yaml"
env:
URL: ${maestro.copiedText}
- tapOn: "Get Started"
- assertVisible:
id: "app_title"
text: "Enable shared school device mode"
- tapOn:
text: "Device name *"
index: 1
- inputText: "Test Device 2"
- tapOn: "Enable"
- assertVisible:
id: "app_title"
text: "Select class"
- assertVisible: "Scan QR code badge"
- assertVisible: "Teacher/admin login"
- tapOn: "New Class"
- assertVisible:
id: "app_title"
text: "New Class"
- tapOn: "StudentA User"
- assertVisible:
id: "app_title"
text: "Assignments"
- assertVisible: "Assignments"
- assertVisible: "Apps"
- assertNotVisible: "Class"
- assertNotVisible: "People"
- tapOn:
id: "user_account_icon"
- assertNotVisible: "Share Feedback"
- assertVisible: "StudentA User"
- tapOn: "Logout"
- assertVisible:
id: "app_title"
text: "Select class"

# Teacher login to shared school device to see devices update
- tapOn: "Teacher/admin login"
- assertVisible:
id: "app_title"
text: "Teacher/admin login"
- tapOn: "Enter school device PIN"
- inputText: "1234"
- tapOn: "Next"
- tapOn:
id: "username"
- inputText: teacherauser
- tapOn:
id : "password"
- inputText: test123
- tapOn: "Login"
- runFlow:
when:
visible: "Save password for Respect?"
file: "subflows/save_password_prompt_cancel.yaml"
- tapOn: "Apps"
- assertVisible:
id: "app_title"
text: "Apps"
- tapOn:
id: "Settings"
- assertVisible:
id: "app_title"
text: "Settings"
- tapOn: "School"
- assertVisible:
id: "app_title"
text: "School"
- assertVisible: "School name"
- assertVisible: ${output.SCHOOL_NAME}
- assertVisible: "Shared school device"
- assertVisible: "2 devices"
- tapOn: "Shared school device"
- assertVisible:
id: "app_title"
text: "Shared school device"
- tapOn:
id: "self_select_their_class" #switch is OFF
- assertVisible: "Teacher/admin unlock PIN"
- assertVisible: "Devices (2)"
- assertVisible: "Test Device 2 (This device)"
- assertVisible: "Test Device 1"
- tapOn:
id: "user_account_icon"
- tapOn: "Logout"

# Validating flow when the Student can self-select their class and name switch is OFF
- assertVisible:
id: "app_title"
text: "Login"
- assertNotVisible: "New Class"
- assertVisible: "Teacher/admin login"
- tapOn: "Scan QR code badge"
- assertVisible:
id: "app_title"
text: "Scan QR code badge"
- tapOn: "More Options"
- tapOn: "Paste URL"
- tapOn: "Url"
- inputText: ${output.SCHOOL_URL}respect_school_link/personqrbadge/id/12312
- tapOn: "OK"

# DISABLED temporarily 21/Jan/2026 by Mike - how this is handled is being changed
# This part validate - When a device is in shared school device mode, if the user clicks scan a QR code badge button, then ONLY a QR code badge (student login badge) will be accepted.
#- inputText: ${maestro.copiedText}
#- tapOn: "OK"
#- assertVisible: "Invalid QR code scanned"
#- tapOn: "Try again"
#- assertVisible:
# id: "app_title"
# text: "Scan QR code badge"
#- tapOn: "More Options"
#- tapOn: "Paste URL"
#- tapOn: "Url"
#- inputText: ${output.SCHOOL_URL}respect_school_link/personqrbadge/id/12312
#- tapOn: "Ok"

- assertVisible:
id: "app_title"
text: "Assignments"
- assertVisible: "Assignments"
- assertVisible: "Apps"
- assertNotVisible: "Class"
- assertNotVisible: "People"
- tapOn:
id: "user_account_icon"
- assertNotVisible: "Share Feedback"
- assertVisible: "StudentA User"
- tapOn: "Logout"

Loading