* 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
* 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
* 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>
* Move spaces tests from Puppeteer to Cypress
* Add missing fixture
* Tweak synapsedocker to not double error on a docker failure
* Fix space hierarchy loading race condition
Fixes https://github.com/matrix-org/element-web-rageshakes/issues/10345
* Fix race condition when creating public space with url update code
* Try Electron once more due to perms issues around clipboard
* Try set browser permissions properly
* Try to enable clipboard another way
* Try electron again
* Try electron again again
* Switch to built-in cypress feature for file uploads
* Mock clipboard instead
* TMPDIR ftw?
* uid:gid pls
* Clipboard tests can now run on any browser due to mocking
* Test Enter as well as button for space creation
* Make the test actually work
* Update cypress/support/util.ts
Co-authored-by: Eric Eastwood <erice@element.io>
Co-authored-by: Eric Eastwood <erice@element.io>
* Add non-consent (default) Synapse template
* Add consent test
* Add create room test
* Stash work
* Initial threads tests
* fix
* Delete old threads e2e tests, plan new ones
* Fix typed s'more
* Try something else
* specify d.ts
* Fix types once and for all?
* Fix the consent tests
* Iterate threads test harness
* Fix dispatcher types
* Iterate threads test
* fix typing
* Alternative import attempt
* let it break let it break let it break
* Tweak types
* Stash
* delint and update docs
* null-guard scrollIntoView
* Iterate threads test
* Apply suggestions from code review
* A first, maybe working cypress test
Plus cypress plugins to manage synapses in docker containers
* Fix yaml
* This file is important
* try & find where it's put the artifact
* Download artifact to a directory
* pics or it didn't happen
* Add conditional, otherwise no artifacts on failure...
* Try increasing timeout
also actually give the test a name
* Try in chrome
* Get docker logs to see why it's failing
also document the chrome setting
* Try changing mode on homeserver.yaml
* debug
* More debugging
* more file permissions debugging
* ARGH
* more debug
* sigh
* Eugh, that's not how arguments work
* Add the option to really allow open registration
and remove debug logging / comment fixes
* failure to yaml
* Upload docker logs as artifacts
and temporarily remove contional to test
* Put the conditional back
* Upgrade types in end to end tests
to be compatible with fs-extra types
* Try reducing timeout a bit
also make password more... sensible
* Hex is not octal
* Remove file mode
Seems to be unnecessary since the signing key is perfectly fine
* Give the log files extensions
* Rename workflow file now it also does tests
* Add cypress scripts
* copyright headers
* Use ? operator
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Use develop synapse image
* Tidy up any remaining synapses after each spec run
Also:
* Move the synapseStart / synapseStop functions out to the top level
so they can be reused
* Add a tsconfig file
* Give the containers names
* Don't upload video on test pass
We don't upload it anyway so tell cypress not to so it can not
bother encoding them
* Enable linting on cypress files
and fix existing lint errors
* Type check cypress files
and make it pass the type checks, specifically:
* Upgrade sinon fake timers to a version that has the right types
* Set module resolution
* Type check cypress files separately
* Rename workflow file again
Probably better to just call it an element web build
* Don't plus + characters in container name
* Fix yaml
* Stream logs to file
* Add note to end to end tester to sya what's been ported
* Put docker rm in finally block
Co-authored-by: Travis Ralston <travisr@matrix.org>