Skip to content

Change test framework from Detox to Maestro #234

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 106 commits into from
Mar 5, 2025
Merged
Show file tree
Hide file tree
Changes from 101 commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
ad54e9c
Updated macos to 13
NikolaSimsic Dec 5, 2024
bcd48c0
Add npx react-native before bundle creation
NikolaSimsic Dec 5, 2024
b9b172f
Change a path to cli.js
NikolaSimsic Dec 6, 2024
a8556b9
Replace react-native/cli.js with @react-native-community/cli
NikolaSimsic Dec 6, 2024
02d2b2e
Revert to react-native/cli.js
NikolaSimsic Dec 6, 2024
86f8fdf
Update JDK to 21
NikolaSimsic Dec 6, 2024
ffe37ba
Set macos to 14
NikolaSimsic Dec 6, 2024
5de579d
List ios devices
NikolaSimsic Dec 6, 2024
4def91e
Update xcode stuff
NikolaSimsic Dec 6, 2024
23b637d
Update config
NikolaSimsic Dec 6, 2024
75fadb8
Change runtime Java to 17
NikolaSimsic Dec 6, 2024
1bdb236
Increase Android & iOS os and sdk levels
NikolaSimsic Dec 6, 2024
27bd887
Change android arch and create iOS simulator
NikolaSimsic Dec 6, 2024
c3214d7
Remove android sdk installation
NikolaSimsic Dec 6, 2024
2253818
Change avd config
NikolaSimsic Dec 9, 2024
0928206
USe x86 arch
NikolaSimsic Dec 9, 2024
ff15fae
Revert code for android-avd
NikolaSimsic Dec 9, 2024
8f027fb
Update avd config
NikolaSimsic Dec 9, 2024
321a5fb
Update config
NikolaSimsic Dec 10, 2024
7b0236d
Make sure to rebuild everything
NikolaSimsic Dec 10, 2024
fb4aad3
Update config
NikolaSimsic Dec 11, 2024
fb672d1
Update Detox
NikolaSimsic Dec 12, 2024
12173de
Adding maestro config
NikolaSimsic Dec 18, 2024
5b2b9a1
Debug maestro
NikolaSimsic Dec 19, 2024
91b1c41
Add cache for app build for both os
NikolaSimsic Dec 19, 2024
2bd89ba
Debug maestro
NikolaSimsic Dec 19, 2024
f9ab051
Update config
NikolaSimsic Dec 23, 2024
ecdd3a3
Troubleshoot iOS test execution
NikolaSimsic Dec 24, 2024
4a79434
Add maestro tests for Accordion
NikolaSimsic Dec 27, 2024
fa7abd9
Update config for test exec
NikolaSimsic Jan 6, 2025
1971b7c
Add more tests and precondition.yaml file
NikolaSimsic Jan 6, 2025
0c69d9d
Update sh script for test execution to display passed and failed clearly
NikolaSimsic Jan 6, 2025
063f388
Update config
NikolaSimsic Jan 6, 2025
928a4f8
Update test result stats
NikolaSimsic Jan 6, 2025
ab9ff89
Reconfigure android tests stage
NikolaSimsic Jan 7, 2025
361776c
Rework accordion to exclude dropdown icon and change project to maest…
NikolaSimsic Jan 7, 2025
c7b0166
Add retry mechanism to app startup
NikolaSimsic Jan 8, 2025
52b6388
Adding more tests
NikolaSimsic Jan 9, 2025
b3cb2fd
Add more tests
NikolaSimsic Jan 13, 2025
0ed4c0e
Adding tests for Gallery
NikolaSimsic Jan 16, 2025
fc8efd8
Add tests for Intro screen
NikolaSimsic Jan 17, 2025
4f264bb
Add more tests
NikolaSimsic Jan 17, 2025
fd72b80
se java 21
NikolaSimsic Jan 27, 2025
c43e441
Add more tests
NikolaSimsic Jan 27, 2025
0a11a77
Update android tests runner
NikolaSimsic Jan 30, 2025
f0ac59e
Add more tests
NikolaSimsic Feb 5, 2025
b8ac4fa
Try to avoid maestro ENV
NikolaSimsic Feb 12, 2025
439d116
Updated config
NikolaSimsic Feb 17, 2025
8ec76d3
Add single widget test execution and screenshot comparison
NikolaSimsic Feb 17, 2025
b285117
Adding more screenshots
NikolaSimsic Feb 17, 2025
130a768
Update config
NikolaSimsic Feb 17, 2025
1d94f7f
Use latest client
NikolaSimsic Feb 19, 2025
a6cf1ee
Use latest actions/
NikolaSimsic Feb 19, 2025
9609a08
Update actions to latest
NikolaSimsic Feb 19, 2025
193a261
Re-enable docker image check
NikolaSimsic Feb 19, 2025
08b99c9
Add error handling for missing artifacts
NikolaSimsic Feb 19, 2025
76b593f
Add yaml file count
NikolaSimsic Feb 19, 2025
cb00abe
Completely remove Detox and Jest
NikolaSimsic Feb 19, 2025
fbb344e
Make sure to publish screenshot always
NikolaSimsic Feb 19, 2025
1e77dee
Update tests
NikolaSimsic Feb 19, 2025
a39283f
Update config and increase timeout
NikolaSimsic Feb 20, 2025
5bc5522
Update tests
NikolaSimsic Feb 20, 2025
182ccb9
Update config
NikolaSimsic Feb 20, 2025
39b8dbb
Update some tests
NikolaSimsic Feb 20, 2025
6647302
Restart android emulator when test fails and rety
NikolaSimsic Feb 20, 2025
df73081
Add restart simulator for iOS
NikolaSimsic Feb 20, 2025
2303caf
Refactor sh script
NikolaSimsic Feb 20, 2025
7560549
Update config
NikolaSimsic Feb 20, 2025
3dd5ba3
Exclude status bar from comparison
NikolaSimsic Feb 20, 2025
516bc70
Remove not needed images
NikolaSimsic Feb 20, 2025
dd767fd
Update config
NikolaSimsic Feb 21, 2025
f5f2252
Update screenshots and config
NikolaSimsic Feb 21, 2025
54668aa
Use artefacts from previous run
NikolaSimsic Feb 21, 2025
50791f2
Set status bar on devices and improve restart
NikolaSimsic Feb 21, 2025
f0dac46
Run all tests once, then rerun failed ones with device restart before…
NikolaSimsic Feb 21, 2025
facb6bc
Update tests
NikolaSimsic Feb 24, 2025
c20170c
Test only comparing screenshots
NikolaSimsic Feb 24, 2025
c9b50d5
Use different library for comparison
NikolaSimsic Feb 24, 2025
920655d
Re-enable tests
NikolaSimsic Feb 24, 2025
a6152f6
Update config
NikolaSimsic Feb 24, 2025
e6b77dc
Updated screenshots and status bar setting for android
NikolaSimsic Feb 25, 2025
530885a
Refactor files
NikolaSimsic Feb 25, 2025
784dda3
Update test
NikolaSimsic Feb 25, 2025
e27ab9c
Update config
NikolaSimsic Feb 25, 2025
bfc8af2
Update tests
NikolaSimsic Feb 26, 2025
76ae40f
Execute widgets in isolated env
NikolaSimsic Feb 26, 2025
cb5a431
Each run store each logs
NikolaSimsic Feb 26, 2025
9398c78
Merge all artifacts
NikolaSimsic Feb 27, 2025
818ad74
Add one more retry to failed tests
NikolaSimsic Feb 28, 2025
22d0c1c
Update screenshots
NikolaSimsic Feb 28, 2025
eb09f5d
Ignore button of the image when comparing
NikolaSimsic Feb 28, 2025
bc32652
Ignore bottom only for ios
NikolaSimsic Feb 28, 2025
1363e43
Test only widgets updated in the PR
NikolaSimsic Feb 28, 2025
64741ff
Re-enable full circle
NikolaSimsic Feb 28, 2025
b474a3b
Use latest RC 10.20
NikolaSimsic Feb 28, 2025
e4c88d9
Update tests
NikolaSimsic Mar 3, 2025
40165c1
Run only compare screenshots
NikolaSimsic Mar 3, 2025
a082265
Update comparison script
NikolaSimsic Mar 3, 2025
5993d76
Re-enable whole process
NikolaSimsic Mar 3, 2025
f9c3e35
Use main branch of the test project
NikolaSimsic Mar 3, 2025
414b168
Update deprecated actions/cache versions
NikolaSimsic Mar 4, 2025
e715182
Remove var rule from eslint
NikolaSimsic Mar 4, 2025
bfab50f
Use already pre-installed Java 21 on Ubuntu
NikolaSimsic Mar 4, 2025
8a6402e
Force mxbuild
NikolaSimsic Mar 4, 2025
6055c0c
Use specific commit for actions/cache
NikolaSimsic Mar 5, 2025
d50dbb1
Resolve review findings
NikolaSimsic Mar 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ module.exports = deepmerge(base, {
"@typescript-eslint/ban-ts-ignore": "off",
"no-unused-expressions": "off",
"@typescript-eslint/no-unused-expressions": "error",
"no-var": "off",
"no-undef": "off"
}
});
2 changes: 1 addition & 1 deletion .github/actions/create-native-bundle/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ runs:
mkdir -p ${{ inputs.platform }}/assets
cd Native-Mobile-Resources-main/deployment/native && \
/tmp/mxbuild/modeler/tools/node/linux-x64/node \
/tmp/mxbuild/modeler/tools/node/node_modules/react-native/local-cli/cli.js \
/tmp/mxbuild/modeler/tools/node/node_modules/react-native/cli.js \
bundle --verbose --platform ${{ inputs.platform }} --dev false \
--config "$PWD/metro.config.js" \
--bundle-output $GITHUB_WORKSPACE/${{ inputs.platform }}/index.${{ inputs.platform }}.bundle \
Expand Down
8 changes: 4 additions & 4 deletions .github/actions/start-runtime/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ runs:
- name: "Install Python dependencies"
run: pip install pyaml httplib2
shell: bash
- name: "Setup Java 11"
- name: "Setup Java 21"
id: setup-java
uses: actions/setup-java@v3.10.0
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "11"
java-version: "21"
- name: "Extract deployment package"
run: |
mkdir project
Expand Down Expand Up @@ -50,4 +50,4 @@ runs:
shell: bash
- name: "Start mxruntime"
run: bin/m2ee -c ${{ github.workspace }}/project/m2ee-native.yml --verbose --yolo start
shell: bash
shell: bash
23 changes: 12 additions & 11 deletions .github/scripts/mxbuild.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,31 @@ FROM mcr.microsoft.com/dotnet/runtime:8.0
ARG MENDIX_VERSION

RUN \
echo "Installing Java 17..." && \
echo "Installing Java 21..." && \
apt-get -qq update && \
apt-get -qq install -y wget libgdiplus && \
wget -q https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz -O /tmp/openjdk.tar.gz && \
wget -q https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz -O /tmp/openjdk.tar.gz || { echo "Failed to download Java 21"; exit 1; } && \
mkdir -p /usr/lib/jvm && \
tar xfz /tmp/openjdk.tar.gz --directory /usr/lib/jvm && \
mv /usr/lib/jvm/jdk-17.0.2 /usr/lib/jvm/java-17-openjdk && \
rm /tmp/openjdk.tar.gz
tar xfz /tmp/openjdk.tar.gz --directory /usr/lib/jvm || { echo "Failed to extract Java 21"; exit 1; } && \
ls /usr/lib/jvm && \
mv /usr/lib/jvm/jdk-21* /usr/lib/jvm/java-21-openjdk && \
rm /tmp/openjdk.tar.gz

RUN \
echo "Downloading mxbuild ${MENDIX_VERSION}..." && \
wget -q https://cdn.mendix.com/runtime/mxbuild-${MENDIX_VERSION}.tar.gz -O /tmp/mxbuild.tar.gz && \
wget -q https://cdn.mendix.com/runtime/mxbuild-${MENDIX_VERSION}.tar.gz -O /tmp/mxbuild.tar.gz || { echo "Failed to download mxbuild"; exit 1; } && \
mkdir /tmp/mxbuild && \
tar xfz /tmp/mxbuild.tar.gz --directory /tmp/mxbuild && \
rm /tmp/mxbuild.tar.gz
tar xfz /tmp/mxbuild.tar.gz --directory /tmp/mxbuild || { echo "Failed to extract mxbuild"; exit 1; } && \
rm /tmp/mxbuild.tar.gz

RUN \
apt-get -qq remove -y wget && \
apt-get clean
apt-get clean

RUN \
echo "#!/bin/bash -x" >/bin/mxbuild && \
echo "dotnet /tmp/mxbuild/modeler/mxbuild.dll --java-home=/usr/lib/jvm/java-17-openjdk --java-exe-path=/usr/lib/jvm/java-17-openjdk/bin/java \$@" >>/bin/mxbuild && \
chmod +x /bin/mxbuild
echo "dotnet /tmp/mxbuild/modeler/mxbuild.dll --java-home=/usr/lib/jvm/java-21-openjdk --java-exe-path=/usr/lib/jvm/java-21-openjdk/bin/java \$@" >>/bin/mxbuild && \
chmod +x /bin/mxbuild

RUN \
echo "#!/bin/bash -x" >/bin/mx && \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/NativeAutomatedTestsAndroid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> ${{ runner.os == 'Windows' && '$env:GITHUB_ENV' || '$GITHUB_ENV' }}
- name: "Defining cache"
uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed # v2
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
Expand Down
Loading
Loading