RoomListStore: Remove invite rooms on decline (#29804)
* Remove room when new membership is leave It doesn't really matter what the previous membership was. * Fix test * Remove on join/invite only * Exclude kicked rooms from being removed
This commit is contained in:
@@ -122,11 +122,38 @@ describe("RoomListStoreV3", () => {
|
||||
expect(store.getSortedRooms()[0].roomId).toEqual(room.roomId);
|
||||
});
|
||||
|
||||
it("Room is removed when membership changes from join to leave", async () => {
|
||||
const { store, rooms, dispatcher } = await getRoomListStore();
|
||||
it.each([KnownMembership.Join, KnownMembership.Invite])(
|
||||
"Room is removed when membership changes to leave",
|
||||
async (membership) => {
|
||||
const { store, rooms, dispatcher } = await getRoomListStore();
|
||||
|
||||
// Let's say the user leaves room at index 37
|
||||
// Let's say the user leaves room at index 37
|
||||
const room = rooms[37];
|
||||
|
||||
const payload = {
|
||||
action: "MatrixActions.Room.myMembership",
|
||||
oldMembership: membership,
|
||||
membership: KnownMembership.Leave,
|
||||
room,
|
||||
};
|
||||
|
||||
const fn = jest.fn();
|
||||
store.on(LISTS_UPDATE_EVENT, fn);
|
||||
dispatcher.dispatch(payload, true);
|
||||
|
||||
expect(fn).toHaveBeenCalled();
|
||||
expect(store.getSortedRooms()).not.toContain(room);
|
||||
},
|
||||
);
|
||||
|
||||
it("Room is not removed when user is kicked", async () => {
|
||||
const { store, rooms, dispatcher, client } = await getRoomListStore();
|
||||
|
||||
// Let's say the user gets kicked out of room at index 37
|
||||
const room = rooms[37];
|
||||
const mockMember = room.getMember(client.getSafeUserId())!;
|
||||
mockMember.isKicked = () => true;
|
||||
room.getMember = () => mockMember;
|
||||
|
||||
const payload = {
|
||||
action: "MatrixActions.Room.myMembership",
|
||||
@@ -140,7 +167,7 @@ describe("RoomListStoreV3", () => {
|
||||
dispatcher.dispatch(payload, true);
|
||||
|
||||
expect(fn).toHaveBeenCalled();
|
||||
expect(store.getSortedRooms()).not.toContain(room);
|
||||
expect(store.getSortedRooms()).toContain(room);
|
||||
});
|
||||
|
||||
it("Predecessor room is removed on room upgrade", async () => {
|
||||
|
||||
Reference in New Issue
Block a user