diff --git a/.maestro/features/07-move-delete-tag.yaml b/.maestro/features/07-move-delete-tag.yaml index 573a0575..666cd7ed 100644 --- a/.maestro/features/07-move-delete-tag.yaml +++ b/.maestro/features/07-move-delete-tag.yaml @@ -64,7 +64,8 @@ tags: visible: "Clear selection" timeout: 10000 - takeScreenshot: actions-04-selected -- tapOn: "Star" +# Star (or Unstar, when an earlier run left it starred), then toggle back. +- tapOn: "Star|Unstar" # A bulk action ends selection mode by itself. - runFlow: when: diff --git a/.maestro/features/11-files.yaml b/.maestro/features/11-files.yaml index b5e4ad49..55ccb38e 100644 --- a/.maestro/features/11-files.yaml +++ b/.maestro/features/11-files.yaml @@ -44,7 +44,14 @@ tags: timeout: 20000 - takeScreenshot: files-04-folder-created - longPressOn: ".*${output.folder}.*" -- tapOn: "Delete" +- repeat: + while: + notVisible: "Delete this item.*" + times: 3 + commands: + - tapOn: "Delete" + - waitForAnimationToEnd: + timeout: 3000 - extendedWaitUntil: visible: "Delete this item.*" timeout: 10000 diff --git a/.maestro/subflows/allow-notifications.yaml b/.maestro/subflows/allow-notifications.yaml new file mode 100644 index 00000000..914fe45f --- /dev/null +++ b/.maestro/subflows/allow-notifications.yaml @@ -0,0 +1,12 @@ +# The app asks for notification permission now and then (calendar +# reminders, push). The system alert covers the whole app, so XCTest sees +# nothing else until it is answered: allow it when it is up. +appId: org.bulwarkmail.mobile +--- +- runFlow: + when: + visible: ".*Would Like to Send You Notifications.*" + commands: + - tapOn: + text: "Allow" + optional: true diff --git a/.maestro/subflows/manual-server.yaml b/.maestro/subflows/manual-server.yaml index f10e709c..6d521db3 100644 --- a/.maestro/subflows/manual-server.yaml +++ b/.maestro/subflows/manual-server.yaml @@ -14,6 +14,18 @@ appId: org.bulwarkmail.mobile TAP: "no" TEXT: ${HOST} - tapOn: "Continue" +- extendedWaitUntil: + visible: "Sign in with a password instead" + timeout: 20000 + optional: true +# Once in a while the tap doesn't reach the button (it moves as the keyboard +# goes away): tap again if the form is still there. +- runFlow: + when: + visible: + id: login-server-input + commands: + - tapOn: "Continue" - extendedWaitUntil: visible: "Sign in with a password instead" timeout: 20000 diff --git a/.maestro/subflows/signed-in.yaml b/.maestro/subflows/signed-in.yaml index 0d129495..a56209c8 100644 --- a/.maestro/subflows/signed-in.yaml +++ b/.maestro/subflows/signed-in.yaml @@ -13,8 +13,12 @@ appId: org.bulwarkmail.mobile commands: - setOrientation: LANDSCAPE_LEFT - extendedWaitUntil: - visible: "Enter server details manually|Inbox" + visible: "Enter server details manually|Inbox|.*Would Like to Send You Notifications.*" timeout: 120000 +- runFlow: allow-notifications.yaml +- extendedWaitUntil: + visible: "Enter server details manually|Inbox" + timeout: 30000 - runFlow: when: visible: "Enter server details manually" @@ -23,6 +27,7 @@ appId: org.bulwarkmail.mobile file: password-sign-in.yaml env: LOGIN: ${ACCOUNT}@example.org +- runFlow: allow-notifications.yaml - tapOn: id: tab-mail - runFlow: go-to-inbox.yaml