* Supply '--network slirp4netns:allow_host_loopback=true' argument when launching via Podman
This means that the host.containers.internal address will work as a way
to access the host machine's network from within the container in
Podman. This is eqivalent to '--add-host
host.docker.internal:host-gateway' in Docker.
* Log the locations of generated files for Cypress tests
* Use 'host.containers.internal' to access the host network when using Podman
* Support Podman in email Cypress tests too
* Restrict code that decides between Docker and Podman to run in Cypress plugins
Because it can't run in the browser - it needs to run a command line
command to find out.
* Move logic for HOST_DOCKER_INTERNAL into cfgDirFromTemplate
* Add some fantasy tests
* Turn commented code into pretend-real code
* First pass at a list of all the cases we should test
* List test cases related to redactions
* Add testcases about paging up
* Add a case about notification counts
* More test cases related to replies, notifications, room list
* Iterate tests
* Wire up additional tests
* Wire up more tests
* Tidy
* Wire up more tests
* Wire up more tests
* Wire up more tests
* Wire up more tests
* Mute browser
* Silence electron warnings
* Iterate
* revert
* Wire up more tests
* Try to stabilise tests
* Try to stabilise tests
* Validate that the notification dot is missing as well as the count
* Skip a test that is failing for unknown reasons
* Use markAsRead in 'marking as read' test and add related test
* Fix incorrect comment
* Extract tests to their own suite
* Attempt to fix test
* Wire up more tests
* Wire up more tests
* Wire up more tests
* Wire up more tests
* Iterate
* Add comments
* Iterate
* Fix comments
* Update cypress/e2e/read-receipts/high-level.spec.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Switch to importing TypedEventEmitter from main js-sdk export
* Switch to importing js-sdk/matrix in cypress
* Remove duplicated imports
* Fix lint:js-fix to run prettier last otherwise ESLint --fix may cause a mess
* Add lint rule
* Fix cypress-axe import
* Fix cypress-axe import
* Update all non-major dependencies
* Add isLocation to ComposerEvent analytics events
* Remove cypress-each as it is incompatible with modern typescript
* Roll back eslint-plugin-deprecate
* Remove stale comment
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Use cypress-terminal-report
This cypress plugin gives nice console logs about what is happening: I hope it
will help us debug mysteriously failing tests.
In its default config, it only logs for failing tests.
* another anti-morgan hack
* Disable collection of `console.debug`
* `ctr:info` is not real
* Run cypress test without `cryptoCallbacks`
* Add security phrase test
* Add security key test
* Fix type import
* Move new test in `verification.spec.ts`
* The nest tests work with the new crypto
* Fix import yupe
* Cypress: `crypto.verification.request` -> `crypto.verificationRequestReceived`
matrix-org/matrix-js-sdk#3514 deprecated crypto.verification.request.
* Cypress: `beginKeyVerification` -> `startVerification`
matrix-org/matrix-js-sdk#3528 deprecated beginKeyVerification
* simplify `setupBotClient`
no functional change here, just combining the various `cy.wrap()`ed things into
a single async func
* Cypress: Use Rust crypto for the bot user in verification tests
We can already start using the Rust crypto implementation for the "bot" user in
the verification tests!
* Cypress: move verification tests to their own file
* Remove redundant cypress test
This does nothing that the verification test doesn't do better.
* Factor `beginKeyVerification` call out of `doTwoWaySasVerification`
... for more flexibility. This allows us to have tests where the other side
picks the verification method.
* Cypress test for incoming verification requests
* Cypress: skip tests known to fail when using Rust crypto
... which means we can then run the cypress test suite against Element Web R to
check we aren't introducing regressions.
* Update cypress/e2e/register/register.spec.ts
* Use env var to detect rust crypto
* Hoist `skipIfRustCrypto` call earlier
* Add intercept of `config.json`
To help make sure that we run our tests against a known config, rather than
accidentally making requests to `matrix.org`.
* Remove now-redundant stubs of matrix.org files
Now that we intercept config.json, all this stuff is redundant.
* Reinstate fixture which is actually used
Turns out this is used after all
* Add a `map_style_url`
* disable failing axe check
* Minimum hacks required to run cypress tests with dendrite
* Remove wget hack since dendrite containers now have curl
* Add basic dendritedocker plugin & hack into login spec for testing
* Add generic HomeserverInstance interface
* Add env var to configure which homeserver to use
* Remove synapse specific homeserver support api
* Update the rest of the tests to use HomeserverInstance
* Update cypress docs to reference new homeserver abstraction
* Fix formatting issues
* Change dendrite to use main branch container
* Improve decryption error UI by consolidating error messages and providing instructions when possible
* Fix TS strict errors
* Rename .scss to .pcss
* Avoid accessing clipboard, Cypress doesn't like it
* Display DecryptionFailureBar alongside other AuxPanel bars
* Add comments
* Add small margin off-screen for visible decryption failures
* Fix some more TS strict errors
* Add unit tests for DecryptionFailureBar
* Add button to resend key requests manually
* Remove references to matrix-js-sdk crypto internals
* Add hysteresis to visible decryption failures
* Add comment
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Add comment
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Don't create empty div if we're not showing resend requests button
* cancel updateSessions on unmount
* Update unit tests
* Fix lint and implicit any
* Simplify visible event bounds checking
* Adjust cypress test descriptions
* Add percy snapshots
* Update src/components/structures/TimelinePanel.tsx
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Add comments on TimelinePanel IState
* comment
* Add names to percy snapshots
* Show Resend Key Requests button when there are sessions that haven't already been requested via this bar
* We no longer request keys from senders
* update i18n
* update expected text in cypress test
* don't download keys ourselves, update device info in response to updates from client
* fix ts strict errors
* visibledecryptionfailures undefined handling
* Fix implicitAny errors
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Attempt to stabilise login tests
* More stability
* Stabilise s'more
* don't clear LS as we rely on it for enablements
* Add small delay
* Iterate
* Update login.ts
* Add labs flag for sliding sync; add sliding_sync_proxy_url to config.json
* Disable the labs toggle if sliding_sync_proxy_url is not set
* Do validation checks on the sliding sync proxy URL before enabling it in Labs
* Enable sliding sync and add SlidingSyncManager
* Get room subscriptions working
* Hijack renderSublists in sliding sync mode
* Add support for sorting alphabetically/recency and room name filters
* Filter out tombstoned rooms; start adding show more logic
list ranges update but the UI doesn't
* update the UI when the list is updated
* bugfix: make sure the list sorts numerically
* Get invites transitioning correctly
* Force enable sliding sync and labs for now
* Linting
* Disable spotlight search
* Initial cypress plugins for Sliding Sync Proxy
* Use --rm when running Synapse in Docker for Cypress tests
* Update src/MatrixClientPeg.ts
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/components/views/rooms/RoomSublist.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/settings/controllers/SlidingSyncController.ts
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/components/views/rooms/RoomSublist.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* WIP add room searching to spotlight search
* Only read sliding sync results when there is a result, else use the local cache
* Use feature_sliding_sync not slidingSync
* Some review comments
* More review comments
* Use RoomViewStore to set room subscriptions
* Comment why any
* Update src/components/views/rooms/RoomSublist.tsx
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix cypress docker abstraction
* Iterate sliding sync proxy support
* Stash mostly functional test
* Update sliding sync proxy image
* i18n
* Add support for spaces; use list ID -> index mappings
- Mappings are more reusable and easier to understand than
racing for index positions.
- Register for all spaces immediately on startup.
* When the active space is updated, update the list registration
* Set spaces filter in the correct place
* Skeleton placeholder whilst loading the space
* Filter out spaces from the room list
* Use the new txn_id promises
* Ensure we actually resolve list registrations
* Fixmatrix-org/sliding-sync#30: don't show tombstoned search results
* Remove unused imports
* Add SYNCV3_SECRET to proxy to ensure it starts up; correct aliases for SS test
* Add another basic sliding sync e2e test
* Unbreak netlify
* Add more logging for debugging duplicate rooms
* If sliding sync is enabled, always use the rooms result even if it's empty
* Drop-in copy of RoomListStore for sliding sync
* Remove conditionals from RoomListStore - we have SlidingRoomListStore now
* WIP SlidingRoomListStore
* Add most sliding sync logic to SlidingRoomListStore
Still lots of logic in RoomSublist. Broken things:
- Join count is wrong completely.
- No skeleton placeholder when switching spaces.
* Migrate joined count to SS RLS
* Reinstate the skeleton UI when the list is loading
* linting
* Add support for sticky rooms based on the currently active room
* Add a bunch of passing SS E2E tests; some WIP
* Unbreak build from git merge
* Suppress unread indicators in sliding sync mode
* Add regression test for https://github.com/matrix-org/sliding-sync/issues/28
* Add invite test flows; show the invite list
The refactor to SS RLS removed the invite list entirely.
* Remove show more click as it wasn't the bug
* Linting and i18n
* only enable SS by default on netlify
* Jest fixes; merge conflict fixes; remove debug logging; use right sort enum values
* Actually fix jest tests
* Add support for favourites and low priority
* Bump sliding sync version
* Update sliding sync labs to be user configurable
* delint
* To disable SS or change proxy URL the user has to log out
* Review comments
* Linting
* Apply suggestions from code review
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/stores/room-list/SlidingRoomListStore.ts
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Review comments
* Add issue link for TODO markers
* Linting
* Apply suggestions from code review
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* More review comments
* More review comments
* stricter types
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>