diff --git a/.github/workflows/cloud-ci.yaml b/.github/workflows/cloud-ci.yaml index 556a934..03977e7 100644 --- a/.github/workflows/cloud-ci.yaml +++ b/.github/workflows/cloud-ci.yaml @@ -20,5 +20,5 @@ jobs: apiKey: ${{ secrets.MARATHON_CLOUD_API_TOKEN }} application: android-app/app/build/outputs/apk/debug/app-debug.apk testApplication: android-app/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk - githubToken: ${{ secrets.GITHUB_TOKEN }} platform: Android + version: 1.0.51 diff --git a/.github/workflows/cloud-maestro.yaml b/.github/workflows/cloud-maestro.yaml new file mode 100644 index 0000000..cd18100 --- /dev/null +++ b/.github/workflows/cloud-maestro.yaml @@ -0,0 +1,27 @@ +name: Run maestro tests +on: push +jobs: + run-maestro-android-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Run tests + uses: MarathonLabs/action-test@main + with: + apiKey: ${{ secrets.MARATHON_CLOUD_API_TOKEN }} + application: maestro/android/wikipedia.apk + testApplication: maestro/android/flows + platform: maestro/android + version: 1.0.51 + run-maestro-ios-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Run tests + uses: MarathonLabs/action-test@main + with: + apiKey: ${{ secrets.MARATHON_CLOUD_API_TOKEN }} + application: maestro/ios/wikipedia.zip + testApplication: maestro/ios/flows + platform: maestro/ios + version: 1.0.51 diff --git a/maestro/android/flows/android-advanced-flow.yaml b/maestro/android/flows/android-advanced-flow.yaml new file mode 100755 index 0000000..ce7c335 --- /dev/null +++ b/maestro/android/flows/android-advanced-flow.yaml @@ -0,0 +1,16 @@ +appId: org.wikipedia +tags: + - android + - passing + - advanced +--- +- runFlow: subflows/onboarding-android.yaml +- tapOn: + id: "org.wikipedia:id/search_container" +- tapOn: + text: "Non existent view" + optional: true +- runScript: scripts/getSearchQuery.js +- inputText: ${output.result} +- assertVisible: ${output.result} +- runFlow: subflows/launch-clearstate-android.yaml diff --git a/maestro/android/flows/android-failing.yaml b/maestro/android/flows/android-failing.yaml new file mode 100755 index 0000000..7d0ced3 --- /dev/null +++ b/maestro/android/flows/android-failing.yaml @@ -0,0 +1,6 @@ +appId: org.wikipedia +tags: + - android + - passing +--- +- launchApp diff --git a/maestro/android/flows/android-flow.yaml b/maestro/android/flows/android-flow.yaml new file mode 100755 index 0000000..b5bc7c9 --- /dev/null +++ b/maestro/android/flows/android-flow.yaml @@ -0,0 +1,7 @@ +appId: org.wikipedia +tags: + - android + - passing +--- +- launchApp +- assertVisible: "Doesn't exist" diff --git a/maestro/android/flows/scripts/getSearchQuery.js b/maestro/android/flows/scripts/getSearchQuery.js new file mode 100755 index 0000000..f8a1842 --- /dev/null +++ b/maestro/android/flows/scripts/getSearchQuery.js @@ -0,0 +1 @@ +output.result = 'qwerty'; diff --git a/maestro/android/flows/subflows/launch-clearstate-android.yaml b/maestro/android/flows/subflows/launch-clearstate-android.yaml new file mode 100755 index 0000000..b9461b6 --- /dev/null +++ b/maestro/android/flows/subflows/launch-clearstate-android.yaml @@ -0,0 +1,6 @@ +appId: org.wikipedia +--- +- launchApp: + clearState: true +- assertVisible: "Continue" +- assertVisible: "Skip" \ No newline at end of file diff --git a/maestro/android/flows/subflows/onboarding-android.yaml b/maestro/android/flows/subflows/onboarding-android.yaml new file mode 100755 index 0000000..e9ee46f --- /dev/null +++ b/maestro/android/flows/subflows/onboarding-android.yaml @@ -0,0 +1,15 @@ +appId: org.wikipedia +--- +- launchApp: + clearState: true +- tapOn: + text: "Non existent view" + optional: true +- tapOn: + id: "org.wikipedia:id/fragment_onboarding_forward_button" +- tapOn: + id: "org.wikipedia:id/fragment_onboarding_forward_button" +- tapOn: + id: "org.wikipedia:id/fragment_onboarding_forward_button" +- tapOn: + id: "org.wikipedia:id/fragment_onboarding_done_button" diff --git a/maestro/android/wikipedia.apk b/maestro/android/wikipedia.apk new file mode 100644 index 0000000..6b206b3 Binary files /dev/null and b/maestro/android/wikipedia.apk differ diff --git a/maestro/ios/flows/ios-advanced-flow.yaml b/maestro/ios/flows/ios-advanced-flow.yaml new file mode 100755 index 0000000..234557c --- /dev/null +++ b/maestro/ios/flows/ios-advanced-flow.yaml @@ -0,0 +1,25 @@ +appId: org.wikimedia.wikipedia +tags: + - ios + - passing + - advanced +--- +- runFlow: subflows/onboarding-ios.yaml + +# Dismiss the auth modal if visible +- runFlow: + when: + visible: "You have been logged out" + commands: + - tapOn: + text: "Continue without logging in" +- tapOn: + text: "Non existent view" + optional: true +- tapOn: Search Wikipedia +- runScript: scripts/getSearchQuery.js +- inputText: ${output.result} +- eraseText +- inputText: qwerty +- assertVisible: ${output.result} +- runFlow: subflows/launch-clearstate-ios.yaml diff --git a/maestro/ios/flows/ios-failing.yaml b/maestro/ios/flows/ios-failing.yaml new file mode 100755 index 0000000..75db874 --- /dev/null +++ b/maestro/ios/flows/ios-failing.yaml @@ -0,0 +1,7 @@ +appId: org.wikipedia +tags: + - ios + - failing +--- +- launchApp +- assertVisible: "Doesn't exist" diff --git a/maestro/ios/flows/ios-flow.yaml b/maestro/ios/flows/ios-flow.yaml new file mode 100755 index 0000000..217066d --- /dev/null +++ b/maestro/ios/flows/ios-flow.yaml @@ -0,0 +1,6 @@ +appId: org.wikimedia.wikipedia +tags: + - ios + - passing +--- +- launchApp diff --git a/maestro/ios/flows/scripts/getSearchQuery.js b/maestro/ios/flows/scripts/getSearchQuery.js new file mode 100755 index 0000000..f8a1842 --- /dev/null +++ b/maestro/ios/flows/scripts/getSearchQuery.js @@ -0,0 +1 @@ +output.result = 'qwerty'; diff --git a/maestro/ios/flows/subflows/launch-clearstate-ios.yaml b/maestro/ios/flows/subflows/launch-clearstate-ios.yaml new file mode 100755 index 0000000..08a8ff7 --- /dev/null +++ b/maestro/ios/flows/subflows/launch-clearstate-ios.yaml @@ -0,0 +1,6 @@ +appId: org.wikimedia.wikipedia +--- +- launchApp: + clearState: true +- assertVisible: "Next" +- assertVisible: "Skip" diff --git a/maestro/ios/flows/subflows/onboarding-ios.yaml b/maestro/ios/flows/subflows/onboarding-ios.yaml new file mode 100755 index 0000000..7f74121 --- /dev/null +++ b/maestro/ios/flows/subflows/onboarding-ios.yaml @@ -0,0 +1,15 @@ +appId: org.wikimedia.wikipedia +--- +- launchApp: + clearState: true +- repeat: + times: 3 + commands: + - swipe: + direction: LEFT + duration: 400 + - waitForAnimationToEnd +- tapOn: Get started +- tapOn: + text: "Non existent view" + optional: true diff --git a/maestro/ios/wikipedia.zip b/maestro/ios/wikipedia.zip new file mode 100644 index 0000000..629cf00 Binary files /dev/null and b/maestro/ios/wikipedia.zip differ