Alfonso Grillo 2439431287
Improve tests' reliability (#763)
* Create publisher extension into the unit test target

* Add ViewModelContext test extension

* Refactor BugReportViewModelTests

* Fix failing UTs

* Idea PublishedClosure

* Refactor RoomDetailsViewModelTests

* Replace more Task.yield/Task.sleep

* Move leaveRoom/ignore/unignore under the @MainActor

* Revert "Idea PublishedClosure"

This reverts commit 4ab25291041f0dbd99083baf9d95bc6647f1fd97.

* Make process(viewAction:) sync

* Refactor BugReportViewModel callback to a publisher

* Fix UTs

* Refactor ReportContentViewModel

* Fix ui test build error

* Try make sonar happy

* Empty commit

* Revert "Try make sonar happy"

This reverts commit 97804b19373a8f55f12174ccbf27f1fd8db583b7.

* Rename ui test identifier

* Cleanup

* Callback -> actions refactor

* Update template

* Add publisher in TemplateCoordinator

* Add env variable in IntegrationTests.xctestplan

* Add async sequence extension

* Amend integration test plan

* Remove env variable from target.yml

* Cleanup

* Fix failing UI tests
2023-04-05 17:07:12 +02:00
..
2022-11-28 11:19:40 +00:00
2022-04-13 13:57:27 +03:00
2022-11-15 11:49:13 +02:00

Scripts

Iconizer

Generates all app icon variants from one single .pdf file.

Usage:

sh iconizer.sh ../ElementX/Supporting\ Files/AppIcon.pdf ../ElementX/Supporting\ Files

Localizer

Generates all app localization files and imports them to the project, by downloading strings from element-android and converting them to strings and stringsdict files.

Usage:

./localizer.py

Boot Test Simulator

Boots a desired simulator and makes status bar overrides on that.

Usage:

./bootTestSimulator.py 'iPhone 13 Pro Max'

Create screen templates

New screen flows are currently using the MVVM-Coordinator pattern. Run Tools/Scripts/createScreen.sh to create a new screen and all its required dependencies.

Usage:

./createScreen.sh Folder MyScreenName

After that run xcodegen to regenerate the project.

createScreen.sh script will create:

  • Folder within the /ElementX/Sources/Screens/. Files inside will be named MyScreenNameXxx.
  • MyScreenNameScreenUITests.swift within UITests/Sources
  • MyScreenNameViewModelTests.swift within UnitTests/Sources/Unit