Room List Store: Filter rooms by active space (#29399)

* Add method to await space store setup

Otherwise, the room list store will get incorrect information about
spaces and thus will produce an incorrect roomlist.

* Implement a way to filter by active space

Implement a way to filter by active space

* Fix broken jest tests

* Fix typo

* Rename `isReady` to `storeReadyPromise`

* Fix mock in test
This commit is contained in:
R Midhun Suresh
2025-03-04 16:57:41 +05:30
committed by GitHub
parent ffa8971195
commit 21e9d93e69
6 changed files with 153 additions and 2 deletions
@@ -14,6 +14,8 @@ import { RoomSkipList } from "../../../../../src/stores/room-list-v3/skip-list/R
import { RecencySorter } from "../../../../../src/stores/room-list-v3/skip-list/sorters/RecencySorter";
import { AlphabeticSorter } from "../../../../../src/stores/room-list-v3/skip-list/sorters/AlphabeticSorter";
import { getMockedRooms } from "./getMockedRooms";
import SpaceStore from "../../../../../src/stores/spaces/SpaceStore";
import { MetaSpace } from "../../../../../src/stores/spaces";
describe("RoomSkipList", () => {
function generateSkipList(roomCount?: number): {
@@ -30,6 +32,12 @@ describe("RoomSkipList", () => {
return { skipList, rooms, totalRooms: rooms.length, sorter };
}
beforeEach(() => {
jest.spyOn(SpaceStore.instance, "isRoomInSpace").mockImplementation((space) => space === MetaSpace.Home);
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockImplementation(() => MetaSpace.Home);
jest.spyOn(SpaceStore.instance, "storeReadyPromise", "get").mockImplementation(() => Promise.resolve());
});
it("Rooms are in sorted order after initial seed", () => {
const { skipList, totalRooms } = generateSkipList();
expect(skipList.size).toEqual(totalRooms);