In particular, this means that trying to edit an event that's not present anymore in a timeline (e.g. after a timeline reset) will fail, while it worked before. Changelog: `Timeline::edit_by_id` has been fused into `Timeline::edit`, which now takes a `TimelineEventItemId` as the identifier for the local or remote item to edit. This also means that editing an event that's not in the timeline anymore will now fail. Callers should manually create the edit event's content, and then send it via the send queue; which the FFI function `Room::edit` does.
Matrix SDK integration test
This set of tests requires a Synapse instance, and it runs the tests from this directory against this real-world server. As a result, these tests depend on the load of the machine/server, and as such they might be more sensitive to timing issues than other tests in the code base.
Requirements
This requires a synapse backend with a configuration patched for CI. You can get it up and running
with docker compose via:
docker compose -f assets/docker-compose.yml up -d
docker compose -f assets/docker-compose.yml logs --tail 100 -f
Note that this works also with podman compose.
Patches
You can see the patches we do to configuration (namely activate registration and resetting rate
limits, enable a few experimental features), check out what assets/ci-start.sh changes.
Running
The integration tests can be run with cargo test or cargo nextest run.
The integration tests expect the environment variables HOMESERVER_URL to be the HTTP URL to
access the synapse server and HOMESERVER_DOMAIN to be set to the domain configured in
that server. These variables are set to a default value that matches the default docker-compose.yml
template; if you haven't touched it, you don't need to manually set those environment variables.
Maintenance
Delete all instance data
To stop the services and drop the database of your docker-compose cluster, run:
docker compose -f assets/docker-compose.yml down --volumes --remove-orphan -t 0
Rebuild the synapse image
If the Synapse image has been updated in version, you may need to rebuild the custom Synapse image using the following:
docker compose -f assets/docker-compose.yml build --pull synapse
Then restart the synapse service:
docker compose -f assets/docker-compose.yml up -d synapse