Merge pull request #2098 from famedly/krille/ignore-leave-room-update-for-unknown-rooms

refactor: Ignore leave room update for unknown rooms
This commit is contained in:
Krille-chan 2025-06-02 10:12:24 +02:00 committed by GitHub
commit a3da3bda77
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 8 additions and 16 deletions

View File

@ -600,16 +600,6 @@ class FakeMatrixApi extends BaseClient {
},
'timeline': {
'events': [
{
'sender': '@bob:example.com',
'type': 'm.room.member',
'state_key': '@bob:example.com',
'content': {'membership': 'join'},
'prev_content': {'membership': 'invite'},
'origin_server_ts': 1417731086795,
'event_id': '\$7365636s6r6432:example.com',
'unsigned': {'foo': 'bar'},
},
{
'sender': '@alice:example.com',
'type': 'm.room.message',

View File

@ -2736,6 +2736,10 @@ class Client extends MatrixApi {
await _handleRoomEvents(room, state, EventUpdateType.inviteState);
}
}
if (syncRoomUpdate is LeftRoomUpdate && getRoomById(id) == null) {
Logs().d('Skip store LeftRoomUpdate for unknown room', id);
continue;
}
await database.storeRoomUpdate(id, syncRoomUpdate, room.lastEvent, this);
}
}

View File

@ -282,16 +282,13 @@ void main() {
final eventUpdateList = await eventUpdateListFuture;
expect(eventUpdateList.length, 3);
expect(eventUpdateList.length, 2);
expect(eventUpdateList[0].type, 'm.room.member');
expect(eventUpdateList[0].type, 'm.room.message');
expect(eventUpdateList[0].roomId, '!726s6s6q:example.com');
expect(eventUpdateList[1].type, 'm.room.message');
expect(eventUpdateList[1].roomId, '!726s6s6q:example.com');
expect(eventUpdateList[2].type, 'm.room.message');
expect(eventUpdateList[2].roomId, '!726s6s6f:example.com');
expect(eventUpdateList[1].roomId, '!726s6s6f:example.com');
expect(
matrix

View File

@ -186,6 +186,7 @@ void main() {
sess = await client.encryption!.keyManager
.createOutboundGroupSession(roomId);
final room = client.getRoomById(roomId)!;
room.partial = false;
final member = room.getState('m.room.member', '@alice:example.com');
member!.content['membership'] = 'leave';
room.summary.mJoinedMemberCount = room.summary.mJoinedMemberCount! - 1;