Remove SpaceStore singleton (#34088)
* Remove dead code * Remove LegacyCallHandler singleton Route via SDKContext to cut import cycles * Remove SpaceStore singleton Route via SDKContext to cut import cycles * Fix tests * Fix tests * Fix tests * Fix tests * Iterate * Post-merge fixup * Iterate
This commit is contained in:
@@ -10,7 +10,6 @@ import { JoinRule, type MatrixClient, type Room, RoomEvent, RoomType } from "mat
|
||||
|
||||
import { RoomListHeaderViewModel } from "../../../src/viewmodels/room-list/RoomListHeaderViewModel";
|
||||
import { MetaSpace, UPDATE_HOME_BEHAVIOUR, UPDATE_SELECTED_SPACE } from "../../../src/stores/spaces";
|
||||
import SpaceStore from "../../../src/stores/spaces/SpaceStore";
|
||||
import defaultDispatcher from "../../../src/dispatcher/dispatcher";
|
||||
import { Action } from "../../../src/dispatcher/actions";
|
||||
import SettingsStore from "../../../src/settings/SettingsStore";
|
||||
@@ -27,6 +26,7 @@ import { createTestClient, mkSpace } from "../../test-utils";
|
||||
import { createRoom, hasCreateRoomRights } from "../../../src/viewmodels/room-list/utils";
|
||||
import PosthogTrackers from "../../../src/PosthogTrackers";
|
||||
import { ReleaseAnnouncementStore } from "../../../src/stores/ReleaseAnnouncementStore";
|
||||
import { TestSDKContext } from "../../unit-tests/TestSDKContext.ts";
|
||||
|
||||
jest.mock("../../../src/PosthogTrackers", () => ({
|
||||
trackInteraction: jest.fn(),
|
||||
@@ -51,9 +51,12 @@ describe("RoomListHeaderViewModel", () => {
|
||||
let matrixClient: MatrixClient;
|
||||
let mockSpace: Room;
|
||||
let vm: RoomListHeaderViewModel;
|
||||
let sdkContext: TestSDKContext;
|
||||
|
||||
beforeEach(() => {
|
||||
matrixClient = createTestClient();
|
||||
sdkContext = new TestSDKContext();
|
||||
sdkContext._client = matrixClient;
|
||||
|
||||
mockSpace = mkSpace(matrixClient, "!space:server");
|
||||
|
||||
@@ -79,10 +82,10 @@ describe("RoomListHeaderViewModel", () => {
|
||||
|
||||
describe("snapshot", () => {
|
||||
it("should compute snapshot for Home space", () => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(MetaSpace.Home);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(MetaSpace.Home);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
const snapshot = vm.getSnapshot();
|
||||
expect(snapshot.title).toBe("Home");
|
||||
@@ -93,10 +96,10 @@ describe("RoomListHeaderViewModel", () => {
|
||||
});
|
||||
|
||||
it("should compute snapshot for active space", () => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
const snapshot = vm.getSnapshot();
|
||||
expect(snapshot.title).toBe(mockSpace.roomId);
|
||||
@@ -108,7 +111,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
return false;
|
||||
});
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().canCreateVideoRoom).toBe(false);
|
||||
});
|
||||
|
||||
@@ -118,31 +121,31 @@ describe("RoomListHeaderViewModel", () => {
|
||||
return false;
|
||||
});
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().activeSortOption).toBe("alphabetical");
|
||||
});
|
||||
|
||||
it("should show invite option when space is public", () => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
jest.spyOn(mockSpace, "getJoinRule").mockReturnValue(JoinRule.Public);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().canInviteInSpace).toBe(true);
|
||||
});
|
||||
|
||||
it("should hide invite option when user cannot invite", () => {
|
||||
mocked(mockSpace.canInvite).mockReturnValue(false);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().canInviteInSpace).toBe(false);
|
||||
});
|
||||
|
||||
it("should hide space settings when user cannot access them", () => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
mocked(shouldShowSpaceSettings).mockReturnValue(false);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().canAccessSpaceSettings).toBe(false);
|
||||
});
|
||||
|
||||
@@ -152,7 +155,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
return false;
|
||||
});
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().isMessagePreviewEnabled).toBe(true);
|
||||
});
|
||||
|
||||
@@ -162,7 +165,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
return false;
|
||||
});
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().areSectionsEnabled).toBe(true);
|
||||
});
|
||||
|
||||
@@ -173,7 +176,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
return "watcher-id";
|
||||
});
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().areSectionsEnabled).toBe(false);
|
||||
|
||||
// Enable sections
|
||||
@@ -191,7 +194,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
"room_list_section",
|
||||
);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().displaySectionReleaseAnnouncement).toBe(true);
|
||||
});
|
||||
});
|
||||
@@ -200,24 +203,24 @@ describe("RoomListHeaderViewModel", () => {
|
||||
it.each([UPDATE_SELECTED_SPACE, UPDATE_HOME_BEHAVIOUR])(
|
||||
"should update snapshot when %s event is emitted",
|
||||
(event) => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(MetaSpace.Home);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(MetaSpace.Home);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
SpaceStore.instance.emit(event);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
sdkContext.spaceStore.emit(event);
|
||||
|
||||
expect(vm.getSnapshot().title).toBe(mockSpace.roomId);
|
||||
},
|
||||
);
|
||||
|
||||
it("should update snapshot when space name changes", () => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
mockSpace.name = "new name";
|
||||
mockSpace.emit(RoomEvent.Name, mockSpace);
|
||||
@@ -228,20 +231,20 @@ describe("RoomListHeaderViewModel", () => {
|
||||
|
||||
describe("actions", () => {
|
||||
beforeEach(() => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpace", "get").mockReturnValue(mockSpace.roomId);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(mockSpace);
|
||||
});
|
||||
|
||||
it("should fire CreateChat action when createChatRoom is called", () => {
|
||||
const fireSpy = jest.spyOn(defaultDispatcher, "fire");
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
vm.createChatRoom(new Event("click"));
|
||||
expect(fireSpy).toHaveBeenCalledWith(Action.CreateChat);
|
||||
});
|
||||
|
||||
it("should call createRoom with active space when in a space", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.createRoom(new Event("click"));
|
||||
|
||||
expect(createRoom).toHaveBeenCalledWith(mockSpace);
|
||||
@@ -253,16 +256,16 @@ describe("RoomListHeaderViewModel", () => {
|
||||
return false;
|
||||
});
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.createVideoRoom();
|
||||
expect(showCreateNewRoom).toHaveBeenCalledWith(mockSpace, RoomType.ElementVideo);
|
||||
});
|
||||
|
||||
it("should use UnstableCall type when element_call_video_rooms is enabled", () => {
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
jest.spyOn(sdkContext.spaceStore, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
|
||||
const dispatchSpy = jest.spyOn(defaultDispatcher, "dispatch");
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.createVideoRoom();
|
||||
|
||||
expect(dispatchSpy).toHaveBeenCalledWith({
|
||||
@@ -273,7 +276,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
|
||||
it("should dispatch ViewRoom action when openSpaceHome is called", () => {
|
||||
const dispatchSpy = jest.spyOn(defaultDispatcher, "dispatch");
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.openSpaceHome();
|
||||
|
||||
expect(dispatchSpy).toHaveBeenCalledWith({
|
||||
@@ -284,21 +287,21 @@ describe("RoomListHeaderViewModel", () => {
|
||||
});
|
||||
|
||||
it("should show space invite dialog when inviteInSpace is called", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.inviteInSpace();
|
||||
|
||||
expect(showSpaceInvite).toHaveBeenCalledWith(mockSpace);
|
||||
});
|
||||
|
||||
it("should show space preferences dialog when openSpacePreferences is called", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.openSpacePreferences();
|
||||
|
||||
expect(showSpacePreferences).toHaveBeenCalledWith(mockSpace);
|
||||
});
|
||||
|
||||
it("should show space settings dialog when openSpaceSettings is called", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.openSpaceSettings();
|
||||
|
||||
expect(showSpaceSettings).toHaveBeenCalledWith(mockSpace);
|
||||
@@ -310,7 +313,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
["unread-first" as const, SortingAlgorithm.Unread],
|
||||
])("should resort when sort is called with '%s'", (option, expectedAlgorithm) => {
|
||||
const resortSpy = jest.spyOn(RoomListStoreV3.instance, "resort").mockImplementation(jest.fn());
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.sort(option);
|
||||
expect(resortSpy).toHaveBeenCalledWith(expectedAlgorithm);
|
||||
});
|
||||
@@ -321,7 +324,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
);
|
||||
PosthogTrackers.trackRoomListSortingAlgorithmChange = jest.fn();
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
jest.spyOn(RoomListStoreV3.instance, "resort").mockImplementation(jest.fn());
|
||||
vm.sort("unread-first");
|
||||
|
||||
@@ -335,7 +338,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
const createSectionSpy = jest
|
||||
.spyOn(RoomListStoreV3.instance, "createSection")
|
||||
.mockResolvedValue("element.io.section.work");
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
vm.createSection();
|
||||
expect(createSectionSpy).toHaveBeenCalled();
|
||||
});
|
||||
@@ -343,7 +346,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
describe("collapseOrExpandSections", () => {
|
||||
it("should dispatch RoomListCollapseAllSections when collapseSections is not 'expand'", () => {
|
||||
const fireSpy = jest.spyOn(defaultDispatcher, "fire");
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
vm.collapseOrExpandSections();
|
||||
|
||||
@@ -352,7 +355,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
|
||||
it("should dispatch RoomListExpandAllSections when collapseSections is 'expand'", () => {
|
||||
const fireSpy = jest.spyOn(defaultDispatcher, "fire");
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
// Drive the VM into the "expand" state by simulating all sections collapsed
|
||||
defaultDispatcher.dispatch(
|
||||
@@ -371,7 +374,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
|
||||
describe("RoomListSectionsCollapseStateChanged handling", () => {
|
||||
it("should set collapseSections to 'expand' when collapseSections is collapse", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
defaultDispatcher.dispatch(
|
||||
{
|
||||
@@ -385,7 +388,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
});
|
||||
|
||||
it("should set collapseSections to 'collapse' when collapseSections is expand", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
defaultDispatcher.dispatch(
|
||||
{
|
||||
@@ -399,7 +402,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
});
|
||||
|
||||
it("should set collapseSections to undefined when collapseSections is undefined", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
// First drive it into a non-undefined state
|
||||
defaultDispatcher.dispatch(
|
||||
@@ -430,7 +433,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
});
|
||||
const setValueSpy = jest.spyOn(SettingsStore, "setValue").mockImplementation(jest.fn());
|
||||
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
expect(vm.getSnapshot().isMessagePreviewEnabled).toBe(true);
|
||||
|
||||
vm.toggleMessagePreview();
|
||||
@@ -440,7 +443,7 @@ describe("RoomListHeaderViewModel", () => {
|
||||
});
|
||||
|
||||
it("should call nextReleaseAnnouncement and set displaySectionReleaseAnnouncement to false when closeSectionReleaseAnnouncement is called", () => {
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: SpaceStore.instance });
|
||||
vm = new RoomListHeaderViewModel({ matrixClient, spaceStore: sdkContext.spaceStore });
|
||||
|
||||
vm.closeSectionReleaseAnnouncement();
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@ import {
|
||||
TestSDKContext,
|
||||
} from "../../test-utils";
|
||||
import RoomListStoreV3, { RoomListStoreV3Event } from "../../../src/stores/room-list-v3/RoomListStoreV3";
|
||||
import SpaceStore from "../../../src/stores/spaces/SpaceStore";
|
||||
import { FilterEnum } from "../../../src/stores/room-list-v3/skip-list/filters";
|
||||
import dispatcher from "../../../src/dispatcher/dispatcher";
|
||||
import { Action } from "../../../src/dispatcher/actions";
|
||||
@@ -77,7 +76,7 @@ describe("RoomListViewModel", () => {
|
||||
});
|
||||
|
||||
jest.spyOn(RoomListStoreV3.instance, "isLoadingRooms", "get").mockReturnValue(false);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "activeSpaceRoom", "get").mockReturnValue(null);
|
||||
jest.spyOn(SDKContextClass.instance.roomViewStore, "getRoomId").mockReturnValue(null);
|
||||
|
||||
mocked(hasCreateRoomRights).mockReturnValue(false);
|
||||
@@ -92,7 +91,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should initialize with correct snapshot", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -113,7 +112,7 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -126,7 +125,7 @@ describe("RoomListViewModel", () => {
|
||||
mocked(hasCreateRoomRights).mockReturnValue(true);
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -138,7 +137,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should update room list when ListsUpdate event fires", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -162,7 +161,7 @@ describe("RoomListViewModel", () => {
|
||||
jest.spyOn(RoomListStoreV3.instance, "isLoadingRooms", "get").mockReturnValue(true);
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -177,7 +176,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should keep existing view model when ListsUpdate event fires", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -196,7 +195,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should update room list when space changes", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -207,7 +206,9 @@ describe("RoomListViewModel", () => {
|
||||
sections: [{ tag: CHATS_TAG, rooms: spaceRoomList }],
|
||||
});
|
||||
|
||||
jest.spyOn(SpaceStore.instance, "getLastSelectedRoomIdForSpace").mockReturnValue("!room1:server");
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "getLastSelectedRoomIdForSpace").mockReturnValue(
|
||||
"!room1:server",
|
||||
);
|
||||
|
||||
RoomListStoreV3.instance.emit(RoomListStoreV3Event.ListsUpdate);
|
||||
|
||||
@@ -218,7 +219,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should clear view models when space changes", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -244,7 +245,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should clear roomsMap when space changes and repopulate with new rooms", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -254,7 +255,7 @@ describe("RoomListViewModel", () => {
|
||||
spaceId: "!space:server",
|
||||
sections: [{ tag: CHATS_TAG, rooms: [newSpaceRoom] }],
|
||||
});
|
||||
jest.spyOn(SpaceStore.instance, "getLastSelectedRoomIdForSpace").mockReturnValue(null);
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "getLastSelectedRoomIdForSpace").mockReturnValue(null);
|
||||
|
||||
RoomListStoreV3.instance.emit(RoomListStoreV3Event.ListsUpdate);
|
||||
|
||||
@@ -269,7 +270,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should update active room index when room is selected", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -289,7 +290,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should return undefined active room index when no room is selected", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -311,7 +312,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should keep selected room at same index when room list updates", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -341,7 +342,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should not apply sticky behavior when user changes rooms", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -371,7 +372,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should toggle filter on", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -392,7 +393,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should toggle filter off", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -507,7 +508,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should create room item view model on demand", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -520,7 +521,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should reuse existing room item view model", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -533,7 +534,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should return undefined for non-existent room", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -543,7 +544,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should not throw when requesting view model for a room removed from the list but still in roomsMap", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -561,7 +562,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should return undefined for a room from old space after space change", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -572,7 +573,7 @@ describe("RoomListViewModel", () => {
|
||||
spaceId: "!space:server",
|
||||
sections: [{ tag: CHATS_TAG, rooms: [spaceRoom] }],
|
||||
});
|
||||
jest.spyOn(SpaceStore.instance, "getLastSelectedRoomIdForSpace").mockReturnValue(null);
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "getLastSelectedRoomIdForSpace").mockReturnValue(null);
|
||||
|
||||
RoomListStoreV3.instance.emit(RoomListStoreV3Event.ListsUpdate);
|
||||
|
||||
@@ -582,7 +583,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should recover when roomsMap is stale but roomsResult has the room", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -596,7 +597,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should dispose view models for rooms no longer visible", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -623,7 +624,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should dispatch CreateChat action when createChatRoom is called", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -637,7 +638,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should dispatch CreateRoom action without parent space", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -652,11 +653,11 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
it("should dispatch CreateRoom action with parent space", () => {
|
||||
const spaceRoom = mkStubRoom("!space:server", "Space", matrixClient);
|
||||
jest.spyOn(SpaceStore.instance, "activeSpaceRoom", "get").mockReturnValue(spaceRoom);
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "activeSpaceRoom", "get").mockReturnValue(spaceRoom);
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -680,7 +681,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should navigate to next room when delta is 1", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -707,7 +708,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should navigate to previous room when delta is -1", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -734,7 +735,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should wrap around to last room when navigating backwards from first room", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -761,7 +762,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should not navigate when current room is not found", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -789,7 +790,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should not navigate when no room is selected", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -826,7 +827,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should dispose all room item view models on dispose", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -846,7 +847,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should show toast when SectionCreated event fires", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
RoomListStoreV3.instance.emit(RoomListStoreV3Event.SectionCreated);
|
||||
@@ -856,7 +857,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should show toast when RoomTagged event fires", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
RoomListStoreV3.instance.emit(RoomListStoreV3Event.RoomTagged);
|
||||
@@ -866,7 +867,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should clear toast when closeToast is called", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -880,7 +881,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should auto-close toast after 15 seconds", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -894,7 +895,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should reset the auto-close timer when a new section is created", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -923,7 +924,7 @@ describe("RoomListViewModel", () => {
|
||||
mockRoom3Unread();
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -937,7 +938,7 @@ describe("RoomListViewModel", () => {
|
||||
mockRoom3Unread();
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
viewModel.updateVisibleFold(1);
|
||||
@@ -980,7 +981,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should initialize with multiple sections", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -997,7 +998,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should not be a flat list when multiple sections exist", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1016,7 +1017,7 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1037,7 +1038,7 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1048,7 +1049,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should exclude favourite and low_priority from filter list", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1072,7 +1073,7 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1084,7 +1085,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should create section header view models on demand", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1097,7 +1098,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should reuse section header view models", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1109,7 +1110,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should hide room IDs when a section is collapsed", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1132,7 +1133,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should compute activeRoomIndex relative to visible rooms when a section is collapsed", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1159,7 +1160,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should restore room IDs when a section is re-expanded", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1178,7 +1179,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should update sections when room list changes", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1202,7 +1203,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should preserve section collapse state across list updates", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1221,7 +1222,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should track section collapse state per space", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1240,7 +1241,7 @@ describe("RoomListViewModel", () => {
|
||||
{ tag: DefaultTagID.LowPriority, rooms: [] },
|
||||
],
|
||||
});
|
||||
jest.spyOn(SpaceStore.instance, "getLastSelectedRoomIdForSpace").mockReturnValue(null);
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "getLastSelectedRoomIdForSpace").mockReturnValue(null);
|
||||
|
||||
RoomListStoreV3.instance.emit(RoomListStoreV3Event.ListsUpdate);
|
||||
|
||||
@@ -1280,7 +1281,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should apply filters across all sections", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1309,8 +1310,10 @@ describe("RoomListViewModel", () => {
|
||||
const customTag = `${CUSTOM_SECTION_TAG_PREFIX}test-uuid` as const;
|
||||
|
||||
beforeEach(() => {
|
||||
jest.spyOn(SpaceStore.instance, "enabledMetaSpaces", "get").mockReturnValue([MetaSpace.Home]);
|
||||
jest.spyOn(SpaceStore.instance, "spacePanelSpaces", "get").mockReturnValue([
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "enabledMetaSpaces", "get").mockReturnValue([
|
||||
MetaSpace.Home,
|
||||
]);
|
||||
jest.spyOn(SDKContextClass.instance.spaceStore, "spacePanelSpaces", "get").mockReturnValue([
|
||||
mkStubRoom("!space:server", "My Space", matrixClient),
|
||||
]);
|
||||
jest.spyOn(SettingsStore, "getValue").mockImplementation((setting: string) => {
|
||||
@@ -1338,7 +1341,7 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1356,7 +1359,7 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1374,7 +1377,7 @@ describe("RoomListViewModel", () => {
|
||||
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1386,7 +1389,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should collapse all sections when Action.RoomListCollapseAllSections is dispatched", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1408,7 +1411,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should expand all sections when Action.RoomListExpandAllSections is dispatched", async () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1433,7 +1436,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should dispatch collapseSections=expand when all sections are expanded (default)", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1449,7 +1452,7 @@ describe("RoomListViewModel", () => {
|
||||
it("should dispatch collapseSection=collapse when all sections are collapsed", () => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1481,7 +1484,7 @@ describe("RoomListViewModel", () => {
|
||||
});
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1499,7 +1502,7 @@ describe("RoomListViewModel", () => {
|
||||
stubClient();
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
|
||||
@@ -1535,7 +1538,7 @@ describe("RoomListViewModel", () => {
|
||||
beforeEach(() => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
// Ensure section header VMs are created before tests that interact with them
|
||||
@@ -1643,7 +1646,7 @@ describe("RoomListViewModel", () => {
|
||||
beforeEach(() => {
|
||||
viewModel = new RoomListViewModel({
|
||||
client: matrixClient,
|
||||
spaceStore: SpaceStore.instance,
|
||||
spaceStore: SDKContextClass.instance.spaceStore,
|
||||
roomViewStore: SDKContextClass.instance.roomViewStore,
|
||||
});
|
||||
mocked(tagRoom).mockClear();
|
||||
|
||||
Reference in New Issue
Block a user