* Add tests for auto-subscribe on first send and isolated sender with no peers
* Add PR CI workflow with tiered test strategy
- pr_tests.yml: build job with cache, wrapper-tests, smoke-tests,
and label-triggered full-suite
- test_common.yml: add deploy_allure/send_discord inputs so PR runs
skip reporting side effects
- Add docker_required marker to S19 (needs Docker, excluded from
wrapper-only CI job)
- Register docker_required marker in pytest.ini
* Document PR CI test workflows in README
* Refine PR CI test strategy:
- Exclude `docker_required` tests from smoke set in `pr_tests.yml`.
- Add `wait_for_connected` helper for connection state checks.
- Update S19 test to dynamically create and clean up the store node setup.
- General simplifications and improved test stability.
* Add `wait_for_connected` assertion to ensure sender connection state before propagation test
* Refine tests and CI workflows:
- Replace `ERROR_TIMEOUT_S` with `ERROR_AFTER_CACHE_EXPIRY_TIMEOUT_S` in `test_send_e2e.py`.
- Adjust timeout assertion for better clarity and accuracy.
- Update `pr_tests.yml` to add retries (`--reruns`) and ignore wrapper tests in smoke tests.
- Change `test_common.yml` default Discord reporting to `false`.
* Normalize `portsshift` to `portsShift` in `test_send_e2e.py` configuration definitions.
---------
Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
* Add `assert_event_invariants` to enforce per-request event constraints and integrate into relevant tests
* Integrate `assert_event_invariants` into edge and store tests
* Remove redundant comments from `test_send_e2e.py`
---------
Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
- Refactored the `wait_for_event` function for clarity and to ensure proper deadline handling within the loop.
- Introduced `assert_event_invariants` to validate per-request event properties, enforcing invariants like correct `requestId`, no duplicate terminal events, and proper timing between `Propagated` and `Sent`.
- Added tests for `assert_event_invariants` enforcement in `S14` and `S15` lightpush scenarios.
Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>
* Fix for wrong url of reports
* remove the delete hidden file step
* work around for the cleanup of >200k to clean all
* add additional cleanup
* fix clean up
* another fix trail
* restore the number of shards
* - Add S06 relay-only test case for testing message propagation without a store.
- Update `wrapper_helpers` for clearer event type handling and type annotations (`Optional[...]` usage).
- Simplify `get_node_multiaddr` to retrieve addresses via `get_node_info_raw`.
- Refactor `wrappers_manager` to adjust bindings path to `vendor` directory and add `get_node_info_raw` method.
- Update `.gitignore` to exclude `store.sqlite3*`.
* Refactor S06 relay-only test: replace try-finally blocks with context managers for clarity and conciseness.
* Migrate S06 relay-only test to `test_send_e2e.py` and refactor with `StepsCommon` for reusability.
---------
Co-authored-by: Egor Rachkovskii <egorrachkovskii@status.im>