Apply prettier formatting
This commit is contained in:
parent
1cac306093
commit
526645c791
1576 changed files with 65385 additions and 62478 deletions
|
@ -15,12 +15,12 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { EventEmitter } from "events";
|
||||
import { mocked } from 'jest-mock';
|
||||
import { mocked } from "jest-mock";
|
||||
import { EventType } from "matrix-js-sdk/src/@types/event";
|
||||
import { RoomMember } from "matrix-js-sdk/src/models/room-member";
|
||||
import { RoomStateEvent } from "matrix-js-sdk/src/models/room-state";
|
||||
import { defer } from "matrix-js-sdk/src/utils";
|
||||
import { ClientEvent, RoomEvent, MatrixEvent } from 'matrix-js-sdk/src/matrix';
|
||||
import { ClientEvent, RoomEvent, MatrixEvent } from "matrix-js-sdk/src/matrix";
|
||||
|
||||
import SpaceStore from "../../src/stores/spaces/SpaceStore";
|
||||
import {
|
||||
|
@ -68,14 +68,14 @@ const space2 = "!space2:server";
|
|||
const space3 = "!space3:server";
|
||||
const space4 = "!space4:server";
|
||||
|
||||
const getUserIdForRoomId = jest.fn(roomId => {
|
||||
const getUserIdForRoomId = jest.fn((roomId) => {
|
||||
return {
|
||||
[dm1]: dm1Partner.userId,
|
||||
[dm2]: dm2Partner.userId,
|
||||
[dm3]: dm3Partner.userId,
|
||||
}[roomId];
|
||||
});
|
||||
const getDMRoomsForUserId = jest.fn(userId => {
|
||||
const getDMRoomsForUserId = jest.fn((userId) => {
|
||||
switch (userId) {
|
||||
case dm1Partner.userId:
|
||||
return [dm1];
|
||||
|
@ -100,11 +100,13 @@ describe("SpaceStore", () => {
|
|||
let rooms = [];
|
||||
const mkRoom = (roomId: string) => testUtils.mkRoom(client, roomId, rooms);
|
||||
const mkSpace = (spaceId: string, children: string[] = []) => testUtils.mkSpace(client, spaceId, rooms, children);
|
||||
const viewRoom = roomId => defaultDispatcher.dispatch({ action: Action.ViewRoom, room_id: roomId }, true);
|
||||
const viewRoom = (roomId) => defaultDispatcher.dispatch({ action: Action.ViewRoom, room_id: roomId }, true);
|
||||
|
||||
const run = async () => {
|
||||
mocked(client).getRoom.mockImplementation(roomId => rooms.find(room => room.roomId === roomId));
|
||||
mocked(client).getRoomUpgradeHistory.mockImplementation(roomId => [rooms.find(room => room.roomId === roomId)]);
|
||||
mocked(client).getRoom.mockImplementation((roomId) => rooms.find((room) => room.roomId === roomId));
|
||||
mocked(client).getRoomUpgradeHistory.mockImplementation((roomId) => [
|
||||
rooms.find((room) => room.roomId === roomId),
|
||||
]);
|
||||
await testUtils.setupAsyncStoreWithClient(store, client);
|
||||
jest.runOnlyPendingTimers();
|
||||
};
|
||||
|
@ -119,7 +121,7 @@ describe("SpaceStore", () => {
|
|||
|
||||
beforeEach(async () => {
|
||||
jest.runOnlyPendingTimers(); // run async dispatch
|
||||
mocked(client).getVisibleRooms.mockReturnValue(rooms = []);
|
||||
mocked(client).getVisibleRooms.mockReturnValue((rooms = []));
|
||||
|
||||
await SettingsStore.setValue("Spaces.enabledMetaSpaces", null, SettingLevel.DEVICE, {
|
||||
[MetaSpace.Home]: true,
|
||||
|
@ -157,18 +159,14 @@ describe("SpaceStore", () => {
|
|||
mkSpace("!space1:server");
|
||||
mkSpace("!space2:server");
|
||||
mkSpace("!company:server", [
|
||||
mkSpace("!company_dept1:server", [
|
||||
mkSpace("!company_dept1_group1:server").roomId,
|
||||
]).roomId,
|
||||
mkSpace("!company_dept1:server", [mkSpace("!company_dept1_group1:server").roomId]).roomId,
|
||||
mkSpace("!company_dept2:server").roomId,
|
||||
]);
|
||||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces.map(r => r.roomId).sort()).toStrictEqual([
|
||||
"!space1:server",
|
||||
"!space2:server",
|
||||
"!company:server",
|
||||
].sort());
|
||||
expect(store.spacePanelSpaces.map((r) => r.roomId).sort()).toStrictEqual(
|
||||
["!space1:server", "!space2:server", "!company:server"].sort(),
|
||||
);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
|
||||
expect(store.getChildRooms("!space1:server")).toStrictEqual([]);
|
||||
|
@ -195,19 +193,16 @@ describe("SpaceStore", () => {
|
|||
mkSpace("!space1:server");
|
||||
mkSpace("!space2:server");
|
||||
mkSpace("!company:server", [
|
||||
mkSpace("!company_dept1:server", [
|
||||
mkSpace("!company_dept1_group1:server", [subspace.roomId]).roomId,
|
||||
]).roomId,
|
||||
mkSpace("!company_dept1:server", [mkSpace("!company_dept1_group1:server", [subspace.roomId]).roomId])
|
||||
.roomId,
|
||||
mkSpace("!company_dept2:server", [subspace.roomId]).roomId,
|
||||
subspace.roomId,
|
||||
]);
|
||||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces.map(r => r.roomId).sort()).toStrictEqual([
|
||||
"!space1:server",
|
||||
"!space2:server",
|
||||
"!company:server",
|
||||
].sort());
|
||||
expect(store.spacePanelSpaces.map((r) => r.roomId).sort()).toStrictEqual(
|
||||
["!space1:server", "!space2:server", "!company:server"].sort(),
|
||||
);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
|
||||
expect(store.getChildRooms("!space1:server")).toStrictEqual([]);
|
||||
|
@ -231,16 +226,10 @@ describe("SpaceStore", () => {
|
|||
});
|
||||
|
||||
it("handles full cycles", async () => {
|
||||
mkSpace("!a:server", [
|
||||
mkSpace("!b:server", [
|
||||
mkSpace("!c:server", [
|
||||
"!a:server",
|
||||
]).roomId,
|
||||
]).roomId,
|
||||
]);
|
||||
mkSpace("!a:server", [mkSpace("!b:server", [mkSpace("!c:server", ["!a:server"]).roomId]).roomId]);
|
||||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces.map(r => r.roomId)).toStrictEqual(["!a:server"]);
|
||||
expect(store.spacePanelSpaces.map((r) => r.roomId)).toStrictEqual(["!a:server"]);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
|
||||
expect(store.getChildRooms("!a:server")).toStrictEqual([]);
|
||||
|
@ -252,16 +241,10 @@ describe("SpaceStore", () => {
|
|||
});
|
||||
|
||||
it("handles partial cycles", async () => {
|
||||
mkSpace("!b:server", [
|
||||
mkSpace("!a:server", [
|
||||
mkSpace("!c:server", [
|
||||
"!a:server",
|
||||
]).roomId,
|
||||
]).roomId,
|
||||
]);
|
||||
mkSpace("!b:server", [mkSpace("!a:server", [mkSpace("!c:server", ["!a:server"]).roomId]).roomId]);
|
||||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces.map(r => r.roomId)).toStrictEqual(["!b:server"]);
|
||||
expect(store.spacePanelSpaces.map((r) => r.roomId)).toStrictEqual(["!b:server"]);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
|
||||
expect(store.getChildRooms("!b:server")).toStrictEqual([]);
|
||||
|
@ -275,16 +258,11 @@ describe("SpaceStore", () => {
|
|||
it("handles partial cycles with additional spaces coming off them", async () => {
|
||||
// TODO this test should be failing right now
|
||||
mkSpace("!a:server", [
|
||||
mkSpace("!b:server", [
|
||||
mkSpace("!c:server", [
|
||||
"!a:server",
|
||||
mkSpace("!d:server").roomId,
|
||||
]).roomId,
|
||||
]).roomId,
|
||||
mkSpace("!b:server", [mkSpace("!c:server", ["!a:server", mkSpace("!d:server").roomId]).roomId]).roomId,
|
||||
]);
|
||||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces.map(r => r.roomId)).toStrictEqual(["!a:server"]);
|
||||
expect(store.spacePanelSpaces.map((r) => r.roomId)).toStrictEqual(["!a:server"]);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
|
||||
expect(store.getChildRooms("!a:server")).toStrictEqual([]);
|
||||
|
@ -313,16 +291,30 @@ describe("SpaceStore", () => {
|
|||
|
||||
describe("test fixture 1", () => {
|
||||
beforeEach(async () => {
|
||||
[fav1, fav2, fav3, dm1, dm2, dm3, orphan1, orphan2, invite1, invite2, room1, room2, room3, room4]
|
||||
.forEach(mkRoom);
|
||||
[
|
||||
fav1,
|
||||
fav2,
|
||||
fav3,
|
||||
dm1,
|
||||
dm2,
|
||||
dm3,
|
||||
orphan1,
|
||||
orphan2,
|
||||
invite1,
|
||||
invite2,
|
||||
room1,
|
||||
room2,
|
||||
room3,
|
||||
room4,
|
||||
].forEach(mkRoom);
|
||||
mkSpace(space1, [fav1, room1]);
|
||||
mkSpace(space2, [fav1, fav2, fav3, room1]);
|
||||
mkSpace(space3, [invite2]);
|
||||
mkSpace(space4, [room4, fav2, space2, space3]);
|
||||
|
||||
mocked(client).getRoom.mockImplementation(roomId => rooms.find(room => room.roomId === roomId));
|
||||
mocked(client).getRoom.mockImplementation((roomId) => rooms.find((room) => room.roomId === roomId));
|
||||
|
||||
[fav1, fav2, fav3].forEach(roomId => {
|
||||
[fav1, fav2, fav3].forEach((roomId) => {
|
||||
client.getRoom(roomId).tags = {
|
||||
"m.favourite": {
|
||||
order: 0.5,
|
||||
|
@ -330,21 +322,21 @@ describe("SpaceStore", () => {
|
|||
};
|
||||
});
|
||||
|
||||
[invite1, invite2].forEach(roomId => {
|
||||
[invite1, invite2].forEach((roomId) => {
|
||||
mocked(client.getRoom(roomId)).getMyMembership.mockReturnValue("invite");
|
||||
});
|
||||
|
||||
// have dmPartner1 be in space1 with you
|
||||
const mySpace1Member = new RoomMember(space1, testUserId);
|
||||
mySpace1Member.membership = "join";
|
||||
(rooms.find(r => r.roomId === space1).getMembers as jest.Mock).mockReturnValue([
|
||||
(rooms.find((r) => r.roomId === space1).getMembers as jest.Mock).mockReturnValue([
|
||||
mySpace1Member,
|
||||
dm1Partner,
|
||||
]);
|
||||
// have dmPartner2 be in space2 with you
|
||||
const mySpace2Member = new RoomMember(space2, testUserId);
|
||||
mySpace2Member.membership = "join";
|
||||
(rooms.find(r => r.roomId === space2).getMembers as jest.Mock).mockReturnValue([
|
||||
(rooms.find((r) => r.roomId === space2).getMembers as jest.Mock).mockReturnValue([
|
||||
mySpace2Member,
|
||||
dm2Partner,
|
||||
]);
|
||||
|
@ -371,7 +363,8 @@ describe("SpaceStore", () => {
|
|||
return userId === client.getUserId();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
// room 3 claims to be a child of space3 but is not due to invalid m.space.parent (permissions)
|
||||
const cliRoom3 = client.getRoom(room3);
|
||||
|
@ -386,7 +379,8 @@ describe("SpaceStore", () => {
|
|||
content: { via: [], canonical: true },
|
||||
ts: Date.now(),
|
||||
}),
|
||||
]));
|
||||
]),
|
||||
);
|
||||
const cliSpace3 = client.getRoom(space3);
|
||||
mocked(cliSpace3.currentState).maySendStateEvent.mockImplementation(
|
||||
(evType: string, userId: string) => {
|
||||
|
@ -394,12 +388,13 @@ describe("SpaceStore", () => {
|
|||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
await run();
|
||||
});
|
||||
|
||||
describe('isRoomInSpace()', () => {
|
||||
describe("isRoomInSpace()", () => {
|
||||
it("home space contains orphaned rooms", () => {
|
||||
expect(store.isRoomInSpace(MetaSpace.Home, orphan1)).toBeTruthy();
|
||||
expect(store.isRoomInSpace(MetaSpace.Home, orphan2)).toBeTruthy();
|
||||
|
@ -425,12 +420,10 @@ describe("SpaceStore", () => {
|
|||
expect(store.isRoomInSpace(MetaSpace.Home, invite2)).toBeTruthy();
|
||||
});
|
||||
|
||||
it(
|
||||
"all rooms space does contain rooms/low priority even if they are also shown in a space",
|
||||
async () => {
|
||||
await setShowAllRooms(true);
|
||||
expect(store.isRoomInSpace(MetaSpace.Home, room1)).toBeTruthy();
|
||||
});
|
||||
it("all rooms space does contain rooms/low priority even if they are also shown in a space", async () => {
|
||||
await setShowAllRooms(true);
|
||||
expect(store.isRoomInSpace(MetaSpace.Home, room1)).toBeTruthy();
|
||||
});
|
||||
|
||||
it("favourites space does contain favourites even if they are also shown in a space", async () => {
|
||||
expect(store.isRoomInSpace(MetaSpace.Favourites, fav1)).toBeTruthy();
|
||||
|
@ -528,7 +521,7 @@ describe("SpaceStore", () => {
|
|||
expect(store.isRoomInSpace(space3, dm3)).toBeFalsy();
|
||||
});
|
||||
|
||||
it('uses cached aggregated rooms', () => {
|
||||
it("uses cached aggregated rooms", () => {
|
||||
const rooms = store.getSpaceFilteredRoomIds(space4, true);
|
||||
expect(store.isRoomInSpace(space4, fav1)).toBeTruthy();
|
||||
expect(store.isRoomInSpace(space4, fav3)).toBeTruthy();
|
||||
|
@ -540,26 +533,44 @@ describe("SpaceStore", () => {
|
|||
});
|
||||
|
||||
it("dms are only added to Notification States for only the People Space", async () => {
|
||||
[dm1, dm2, dm3].forEach(d => {
|
||||
expect(store.getNotificationState(MetaSpace.People)
|
||||
.rooms.map(r => r.roomId).includes(d)).toBeTruthy();
|
||||
[dm1, dm2, dm3].forEach((d) => {
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(MetaSpace.People)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(d),
|
||||
).toBeTruthy();
|
||||
});
|
||||
[space1, space2, space3, MetaSpace.Home, MetaSpace.Orphans, MetaSpace.Favourites].forEach(s => {
|
||||
[dm1, dm2, dm3].forEach(d => {
|
||||
expect(store.getNotificationState(s).rooms.map(r => r.roomId).includes(d)).toBeFalsy();
|
||||
[space1, space2, space3, MetaSpace.Home, MetaSpace.Orphans, MetaSpace.Favourites].forEach((s) => {
|
||||
[dm1, dm2, dm3].forEach((d) => {
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(s)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(d),
|
||||
).toBeFalsy();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it("orphan rooms are added to Notification States for only the Home Space", async () => {
|
||||
await setShowAllRooms(false);
|
||||
[orphan1, orphan2].forEach(d => {
|
||||
expect(store.getNotificationState(MetaSpace.Home)
|
||||
.rooms.map(r => r.roomId).includes(d)).toBeTruthy();
|
||||
[orphan1, orphan2].forEach((d) => {
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(MetaSpace.Home)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(d),
|
||||
).toBeTruthy();
|
||||
});
|
||||
[space1, space2, space3].forEach(s => {
|
||||
[orphan1, orphan2].forEach(d => {
|
||||
expect(store.getNotificationState(s).rooms.map(r => r.roomId).includes(d)).toBeFalsy();
|
||||
[space1, space2, space3].forEach((s) => {
|
||||
[orphan1, orphan2].forEach((d) => {
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(s)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(d),
|
||||
).toBeFalsy();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -569,23 +580,83 @@ describe("SpaceStore", () => {
|
|||
// [fav1, fav2, fav3].forEach(d => {
|
||||
// expect(store.getNotificationState(HOME_SPACE).rooms.map(r => r.roomId).includes(d)).toBeTruthy();
|
||||
// });
|
||||
expect(store.getNotificationState(space1).rooms.map(r => r.roomId).includes(fav1)).toBeTruthy();
|
||||
expect(store.getNotificationState(space1).rooms.map(r => r.roomId).includes(fav2)).toBeFalsy();
|
||||
expect(store.getNotificationState(space1).rooms.map(r => r.roomId).includes(fav3)).toBeFalsy();
|
||||
expect(store.getNotificationState(space2).rooms.map(r => r.roomId).includes(fav1)).toBeTruthy();
|
||||
expect(store.getNotificationState(space2).rooms.map(r => r.roomId).includes(fav2)).toBeTruthy();
|
||||
expect(store.getNotificationState(space2).rooms.map(r => r.roomId).includes(fav3)).toBeTruthy();
|
||||
expect(store.getNotificationState(space3).rooms.map(r => r.roomId).includes(fav1)).toBeFalsy();
|
||||
expect(store.getNotificationState(space3).rooms.map(r => r.roomId).includes(fav2)).toBeFalsy();
|
||||
expect(store.getNotificationState(space3).rooms.map(r => r.roomId).includes(fav3)).toBeFalsy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space1)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav1),
|
||||
).toBeTruthy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space1)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav2),
|
||||
).toBeFalsy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space1)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav3),
|
||||
).toBeFalsy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space2)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav1),
|
||||
).toBeTruthy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space2)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav2),
|
||||
).toBeTruthy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space2)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav3),
|
||||
).toBeTruthy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space3)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav1),
|
||||
).toBeFalsy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space3)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav2),
|
||||
).toBeFalsy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space3)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(fav3),
|
||||
).toBeFalsy();
|
||||
});
|
||||
|
||||
it("other rooms are added to Notification States for all spaces containing the room exc Home", () => {
|
||||
// XXX: All rooms space is forcibly enabled, as part of a future PR test Home space better
|
||||
// expect(store.getNotificationState(HOME_SPACE).rooms.map(r => r.roomId).includes(room1)).toBeFalsy();
|
||||
expect(store.getNotificationState(space1).rooms.map(r => r.roomId).includes(room1)).toBeTruthy();
|
||||
expect(store.getNotificationState(space2).rooms.map(r => r.roomId).includes(room1)).toBeTruthy();
|
||||
expect(store.getNotificationState(space3).rooms.map(r => r.roomId).includes(room1)).toBeFalsy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space1)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(room1),
|
||||
).toBeTruthy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space2)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(room1),
|
||||
).toBeTruthy();
|
||||
expect(
|
||||
store
|
||||
.getNotificationState(space3)
|
||||
.rooms.map((r) => r.roomId)
|
||||
.includes(room1),
|
||||
).toBeFalsy();
|
||||
});
|
||||
|
||||
it("honours m.space.parent if sender has permission in parent space", () => {
|
||||
|
@ -690,10 +761,24 @@ describe("SpaceStore", () => {
|
|||
expect(store.isRoomInSpace(MetaSpace.Home, invite1)).toBeTruthy();
|
||||
});
|
||||
|
||||
describe('onRoomsUpdate()', () => {
|
||||
describe("onRoomsUpdate()", () => {
|
||||
beforeEach(() => {
|
||||
[fav1, fav2, fav3, dm1, dm2, dm3, orphan1, orphan2, invite1, invite2, room1, room2, room3, room4]
|
||||
.forEach(mkRoom);
|
||||
[
|
||||
fav1,
|
||||
fav2,
|
||||
fav3,
|
||||
dm1,
|
||||
dm2,
|
||||
dm3,
|
||||
orphan1,
|
||||
orphan2,
|
||||
invite1,
|
||||
invite2,
|
||||
room1,
|
||||
room2,
|
||||
room3,
|
||||
room4,
|
||||
].forEach(mkRoom);
|
||||
mkSpace(space2, [fav1, fav2, fav3, room1]);
|
||||
mkSpace(space3, [invite2]);
|
||||
mkSpace(space4, [room4, fav2, space2, space3]);
|
||||
|
@ -725,7 +810,7 @@ describe("SpaceStore", () => {
|
|||
room: spaceId,
|
||||
user: client.getUserId(),
|
||||
skey: user.userId,
|
||||
content: { membership: 'join' },
|
||||
content: { membership: "join" },
|
||||
ts: Date.now(),
|
||||
});
|
||||
const spaceRoom = client.getRoom(spaceId);
|
||||
|
@ -737,11 +822,11 @@ describe("SpaceStore", () => {
|
|||
client.emit(RoomStateEvent.Members, memberEvent, spaceRoom.currentState, user);
|
||||
};
|
||||
|
||||
it('emits events for parent spaces when child room is added', async () => {
|
||||
it("emits events for parent spaces when child room is added", async () => {
|
||||
await run();
|
||||
|
||||
const room5 = mkRoom('!room5:server');
|
||||
const emitSpy = jest.spyOn(store, 'emit').mockClear();
|
||||
const room5 = mkRoom("!room5:server");
|
||||
const emitSpy = jest.spyOn(store, "emit").mockClear();
|
||||
// add room5 into space2
|
||||
addChildRoom(space2, room5.roomId);
|
||||
|
||||
|
@ -753,9 +838,9 @@ describe("SpaceStore", () => {
|
|||
expect(emitSpy).not.toHaveBeenCalledWith(space3);
|
||||
});
|
||||
|
||||
it('updates rooms state when a child room is added', async () => {
|
||||
it("updates rooms state when a child room is added", async () => {
|
||||
await run();
|
||||
const room5 = mkRoom('!room5:server');
|
||||
const room5 = mkRoom("!room5:server");
|
||||
|
||||
expect(store.isRoomInSpace(space2, room5.roomId)).toBeFalsy();
|
||||
expect(store.isRoomInSpace(space4, room5.roomId)).toBeFalsy();
|
||||
|
@ -770,10 +855,10 @@ describe("SpaceStore", () => {
|
|||
expect(store.isRoomInSpace(space1, room5.roomId)).toBeTruthy();
|
||||
});
|
||||
|
||||
it('emits events for parent spaces when a member is added', async () => {
|
||||
it("emits events for parent spaces when a member is added", async () => {
|
||||
await run();
|
||||
|
||||
const emitSpy = jest.spyOn(store, 'emit').mockClear();
|
||||
const emitSpy = jest.spyOn(store, "emit").mockClear();
|
||||
// add into space2
|
||||
addMember(space2, dm1Partner);
|
||||
|
||||
|
@ -785,7 +870,7 @@ describe("SpaceStore", () => {
|
|||
expect(emitSpy).not.toHaveBeenCalledWith(space3);
|
||||
});
|
||||
|
||||
it('updates users state when a member is added', async () => {
|
||||
it("updates users state when a member is added", async () => {
|
||||
await run();
|
||||
|
||||
expect(store.getSpaceFilteredUserIds(space2)).toEqual(new Set([]));
|
||||
|
@ -805,9 +890,7 @@ describe("SpaceStore", () => {
|
|||
|
||||
beforeEach(async () => {
|
||||
mkRoom(room1); // not a space
|
||||
mkSpace(space1, [
|
||||
mkSpace(space2).roomId,
|
||||
]);
|
||||
mkSpace(space1, [mkSpace(space2).roomId]);
|
||||
mkSpace(space3).getMyMembership.mockReturnValue("invite");
|
||||
await run();
|
||||
store.setActiveSpace(MetaSpace.Home);
|
||||
|
@ -873,7 +956,7 @@ describe("SpaceStore", () => {
|
|||
user: dm1Partner.userId,
|
||||
room: space1,
|
||||
});
|
||||
space.getMember.mockImplementation(userId => {
|
||||
space.getMember.mockImplementation((userId) => {
|
||||
if (userId === dm1Partner.userId) {
|
||||
const member = new RoomMember(space1, dm1Partner.userId);
|
||||
member.membership = "join";
|
||||
|
@ -924,7 +1007,7 @@ describe("SpaceStore", () => {
|
|||
mkSpace(space2, [room2]);
|
||||
await run();
|
||||
|
||||
dispatcherRef = defaultDispatcher.register(payload => {
|
||||
dispatcherRef = defaultDispatcher.register((payload) => {
|
||||
if (payload.action === Action.ViewRoom || payload.action === Action.ViewHomePage) {
|
||||
currentRoom = payload.room_id || null;
|
||||
}
|
||||
|
@ -1006,17 +1089,19 @@ describe("SpaceStore", () => {
|
|||
mkSpace(space2, [room1, room2]);
|
||||
|
||||
const cliRoom2 = client.getRoom(room2);
|
||||
mocked(cliRoom2.currentState).getStateEvents.mockImplementation(testUtils.mockStateEventImplementation([
|
||||
mkEvent({
|
||||
event: true,
|
||||
type: EventType.SpaceParent,
|
||||
room: room2,
|
||||
user: testUserId,
|
||||
skey: space2,
|
||||
content: { via: [], canonical: true },
|
||||
ts: Date.now(),
|
||||
}),
|
||||
]));
|
||||
mocked(cliRoom2.currentState).getStateEvents.mockImplementation(
|
||||
testUtils.mockStateEventImplementation([
|
||||
mkEvent({
|
||||
event: true,
|
||||
type: EventType.SpaceParent,
|
||||
room: room2,
|
||||
user: testUserId,
|
||||
skey: space2,
|
||||
content: { via: [], canonical: true },
|
||||
ts: Date.now(),
|
||||
}),
|
||||
]),
|
||||
);
|
||||
await run();
|
||||
});
|
||||
|
||||
|
@ -1174,11 +1259,8 @@ describe("SpaceStore", () => {
|
|||
myRootSpaceMember.membership = "join";
|
||||
const rootSpaceFriend = new RoomMember(space1, dm1Partner.userId);
|
||||
rootSpaceFriend.membership = "join";
|
||||
rootSpace.getMembers.mockReturnValue([
|
||||
myRootSpaceMember,
|
||||
rootSpaceFriend,
|
||||
]);
|
||||
rootSpace.getMember.mockImplementation(userId => {
|
||||
rootSpace.getMembers.mockReturnValue([myRootSpaceMember, rootSpaceFriend]);
|
||||
rootSpace.getMember.mockImplementation((userId) => {
|
||||
switch (userId) {
|
||||
case testUserId:
|
||||
return myRootSpaceMember;
|
||||
|
@ -1219,7 +1301,7 @@ describe("SpaceStore", () => {
|
|||
client.emit(ClientEvent.Room, subspace);
|
||||
jest.runOnlyPendingTimers();
|
||||
expect(SpaceStore.instance.invitedSpaces).toStrictEqual([]);
|
||||
expect(SpaceStore.instance.spacePanelSpaces.map(r => r.roomId)).toStrictEqual([rootSpace.roomId]);
|
||||
expect(SpaceStore.instance.spacePanelSpaces.map((r) => r.roomId)).toStrictEqual([rootSpace.roomId]);
|
||||
await prom;
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue