status-desktop/test/e2e
Lukáš Tinkl 77975e9039
fix: Optimize ContactsView & MembersTabPanel settings pages
- removed nested ListViews inside StackLayouts, in order to reduce the
memory footprint and improve performance, and also to be able to better
manage the scrolling
- no more unrolled multiple listviews, which again hurt the performance;
now the views instantiate the delegates dynamically on the fly
- the tab bar and the search fields now stick to the top of the page,
with the users list view scrolling independently
- both views now uniformly use the common `ContactListItemDelegate`
- the received/sent CRs are now combined into one `pendingContacts`
model
- factored out common search/filter criteria into a new, separate SFPM
`UserFilterContainer` component
- fix an issue where StatusContactVerificationIcons wasn't properly
displaying the "blocked" state/icon
- fix documentation comments, removed relative imports, and updated some

Fixes #16612
Fixes #16958
2024-12-20 13:27:10 +01:00
..
configs chore: update tests 2024-10-10 10:33:13 +03:00
constants chore(@e2e): fix group chat test and leftover for registering ens name toast 2024-12-04 13:33:02 +03:00
driver chore(@e2e): various fixes for tests 2024-10-29 21:16:40 +03:00
ext test: prepared user data for future tests 2024-06-24 16:24:57 +03:00
fixtures chore(@e2e): various fixes for tests 2024-10-29 21:16:40 +03:00
gui fix: Optimize ContactsView & MembersTabPanel settings pages 2024-12-20 13:27:10 +01:00
helpers chore(@e2e): fixes for tests according to changes to wallet tab reordering 2024-11-22 12:24:03 +02:00
scripts chore: simplify new permission class 2024-11-11 19:09:24 +03:00
tests chore(@e2e): fix group chat test and leftover for registering ens name toast 2024-12-04 13:33:02 +03:00
.gitignore ignore envrc and squish.ini 2024-05-31 10:22:29 +02:00
README.md chore: introduce timeout mark and update requirements 2023-12-26 19:14:36 +03:00
conftest.py chore(@e2e): various fixes for tests 2024-10-29 21:16:40 +03:00
img.png chore: update readme 2023-12-14 10:45:45 +03:00
img_1.png chore: update readme 2023-12-14 10:45:45 +03:00
pytest.ini chore: introduced local run mark and added skipif mark to skip them on ci 2024-08-09 11:14:54 +03:00
requirements.txt tests: use randomly generated seed where possible 2024-08-26 11:52:39 +02:00

README.md

This repository manages UI tests for desktop application

How to set up your environment

  1. MacOS: https://www.notion.so/Mac-arch-x64-and-Intel-50ea48dae1d4481b882afdbfad38e95a
  2. Linux: https://www.notion.so/Linux-21f7abd2bb684a0fb10057848760a889
  3. Windows: https://www.notion.so/Windows-fbccd2b09b784b32ba4174233d83878d

NOTE: when MacOS and Linux are proven to be working, Windows guide could be outdated (no one yet set up Windows)

Which build to use

  1. you can use your local dev build but sometimes tests hag there. To use it, just place a path to the executable to AUT_PATH in your _local.py config, for example AUT_PATH = "/Users/anastasiya/status-desktop/bin/nim_status_client"

  2. normally, please use CI build. Grab recent one from Jenkins job https://ci.status.im/job/status-desktop/job/nightly/

    2.1 Linux and Windows could be taken from nightly job img.png

    2.2 Mac requires entitlements for Squish which we don't add by default, so please go here https://ci.status.im/job/status-desktop/job/systems/job/macos/ and select architecture you need (arm or intel), click Build with parameters and select Squish entitlements. Select a branch if u like (master is default) img_1.png

Pytest marks used

You can run tests by mark, just use it like this in command line:

python3 -m pytest -m critical

or directly in pycharm terminal:

pytest -m critical

You can obtain the list of all marks we have by running this pytest --markers

  • critical, mark used to select the most important checks we do for PRs in desktop repository (the same for our repo PRs)
  • xfail, used to link tests to existing tickets in desktop, so if test fails it will be marked as expected to fail in report with a reference to the ticket. At the same time, if such test is passing, it will be shown as XPASS (unexpectedly passing) in report, which will indicate the initial bug is gone
  • skip, used to just skip tests for various reasons, normally with a ticket linked
  • flaky, used to mark the tests that are normally passing but sometimes fail. If such test passes, then if will be shown as passed in report normally. If the test fails, then the total run wont be failed, but the corresponding test will be marked as xfail in the report. It is done for a few tests that are not super stable yet, but passes most of the time. This mark should be used with caution and in case of real need only.
  • timeout(timeout=180, method="thread"), to catch excessively long test durations like deadlocked or hanging tests. This is done by pytest-timeout plugin