Introduce Membership type
This commit is contained in:
parent
3c6fd58628
commit
da99bad7b9
115 changed files with 582 additions and 526 deletions
|
@ -57,13 +57,13 @@ const fav2 = "!fav2:server";
|
|||
const fav3 = "!fav3:server";
|
||||
const dm1 = "!dm1:server";
|
||||
const dm1Partner = new RoomMember(dm1, "@dm1Partner:server");
|
||||
dm1Partner.membership = "join";
|
||||
dm1Partner.membership = Membership.Join;
|
||||
const dm2 = "!dm2:server";
|
||||
const dm2Partner = new RoomMember(dm2, "@dm2Partner:server");
|
||||
dm2Partner.membership = "join";
|
||||
dm2Partner.membership = Membership.Join;
|
||||
const dm3 = "!dm3:server";
|
||||
const dm3Partner = new RoomMember(dm3, "@dm3Partner:server");
|
||||
dm3Partner.membership = "join";
|
||||
dm3Partner.membership = Membership.Join;
|
||||
const orphan1 = "!orphan1:server";
|
||||
const orphan2 = "!orphan2:server";
|
||||
const invite1 = "!invite1:server";
|
||||
|
@ -289,7 +289,7 @@ describe("SpaceStore", () => {
|
|||
});
|
||||
|
||||
it("invite to a subspace is only shown at the top level", async () => {
|
||||
mkSpace(invite1).getMyMembership.mockReturnValue("invite");
|
||||
mkSpace(invite1).getMyMembership.mockReturnValue(Membership.Invite);
|
||||
mkSpace(space1, [invite1]);
|
||||
await run();
|
||||
|
||||
|
@ -335,20 +335,20 @@ describe("SpaceStore", () => {
|
|||
});
|
||||
|
||||
[invite1, invite2].forEach((roomId) => {
|
||||
mocked(client.getRoom(roomId)!).getMyMembership.mockReturnValue("invite");
|
||||
mocked(client.getRoom(roomId)).getMyMembership.mockReturnValue(Membership.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([
|
||||
mySpace1Member.membership = Membership.Join;
|
||||
(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([
|
||||
mySpace2Member.membership = Membership.Join;
|
||||
(rooms.find((r) => r.roomId === space2).getMembers as jest.Mock).mockReturnValue([
|
||||
mySpace2Member,
|
||||
dm2Partner,
|
||||
]);
|
||||
|
@ -683,16 +683,16 @@ describe("SpaceStore", () => {
|
|||
|
||||
it("should add new DM Invites to the People Space Notification State", async () => {
|
||||
mkRoom(dm1);
|
||||
mocked(client.getRoom(dm1)!).getMyMembership.mockReturnValue("join");
|
||||
mocked(client.getRoom(dm1)!).getMyMembership.mockReturnValue(Membership.Join);
|
||||
mocked(client).getRoom.mockImplementation((roomId) => rooms.find((room) => room.roomId === roomId) || null);
|
||||
|
||||
await run();
|
||||
|
||||
mkRoom(dm2);
|
||||
const cliDm2 = client.getRoom(dm2)!;
|
||||
mocked(cliDm2).getMyMembership.mockReturnValue("invite");
|
||||
mocked(cliDm2).getMyMembership.mockReturnValue(Membership.Invite);
|
||||
mocked(client).getRoom.mockImplementation((roomId) => rooms.find((room) => room.roomId === roomId) || null);
|
||||
client.emit(RoomEvent.MyMembership, cliDm2, "invite");
|
||||
client.emit(RoomEvent.MyMembership, cliDm2, Membership.Invite);
|
||||
|
||||
[dm1, dm2].forEach((d) => {
|
||||
expect(
|
||||
|
@ -721,9 +721,9 @@ describe("SpaceStore", () => {
|
|||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces).toStrictEqual([space]);
|
||||
space.getMyMembership.mockReturnValue("leave");
|
||||
space.getMyMembership.mockReturnValue(Membership.Leave);
|
||||
const prom = testUtils.emitPromise(store, UPDATE_TOP_LEVEL_SPACES);
|
||||
client.emit(RoomEvent.MyMembership, space, "leave", "join");
|
||||
client.emit(RoomEvent.MyMembership, space, Membership.Leave, Membership.Join);
|
||||
await prom;
|
||||
expect(store.spacePanelSpaces).toStrictEqual([]);
|
||||
});
|
||||
|
@ -733,7 +733,7 @@ describe("SpaceStore", () => {
|
|||
expect(store.spacePanelSpaces).toStrictEqual([]);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
const space = mkSpace(space1);
|
||||
space.getMyMembership.mockReturnValue("invite");
|
||||
space.getMyMembership.mockReturnValue(Membership.Invite);
|
||||
const prom = testUtils.emitPromise(store, UPDATE_INVITED_SPACES);
|
||||
client.emit(ClientEvent.Room, space);
|
||||
await prom;
|
||||
|
@ -743,14 +743,14 @@ describe("SpaceStore", () => {
|
|||
|
||||
it("updates state when space invite is accepted", async () => {
|
||||
const space = mkSpace(space1);
|
||||
space.getMyMembership.mockReturnValue("invite");
|
||||
space.getMyMembership.mockReturnValue(Membership.Invite);
|
||||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces).toStrictEqual([]);
|
||||
expect(store.invitedSpaces).toStrictEqual([space]);
|
||||
space.getMyMembership.mockReturnValue("join");
|
||||
space.getMyMembership.mockReturnValue(Membership.Join);
|
||||
const prom = testUtils.emitPromise(store, UPDATE_TOP_LEVEL_SPACES);
|
||||
client.emit(RoomEvent.MyMembership, space, "join", "invite");
|
||||
client.emit(RoomEvent.MyMembership, space, Membership.Join, Membership.Invite);
|
||||
await prom;
|
||||
expect(store.spacePanelSpaces).toStrictEqual([space]);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
|
@ -758,14 +758,14 @@ describe("SpaceStore", () => {
|
|||
|
||||
it("updates state when space invite is rejected", async () => {
|
||||
const space = mkSpace(space1);
|
||||
space.getMyMembership.mockReturnValue("invite");
|
||||
space.getMyMembership.mockReturnValue(Membership.Invite);
|
||||
await run();
|
||||
|
||||
expect(store.spacePanelSpaces).toStrictEqual([]);
|
||||
expect(store.invitedSpaces).toStrictEqual([space]);
|
||||
space.getMyMembership.mockReturnValue("leave");
|
||||
space.getMyMembership.mockReturnValue(Membership.Leave);
|
||||
const prom = testUtils.emitPromise(store, UPDATE_INVITED_SPACES);
|
||||
client.emit(RoomEvent.MyMembership, space, "leave", "invite");
|
||||
client.emit(RoomEvent.MyMembership, space, Membership.Leave, Membership.Invite);
|
||||
await prom;
|
||||
expect(store.spacePanelSpaces).toStrictEqual([]);
|
||||
expect(store.invitedSpaces).toStrictEqual([]);
|
||||
|
@ -783,7 +783,7 @@ describe("SpaceStore", () => {
|
|||
expect(store.isRoomInSpace(MetaSpace.Home, invite1)).toBeFalsy();
|
||||
|
||||
const invite = mkRoom(invite1);
|
||||
invite.getMyMembership.mockReturnValue("invite");
|
||||
invite.getMyMembership.mockReturnValue(Membership.Invite);
|
||||
const prom = testUtils.emitPromise(store, space1);
|
||||
client.emit(ClientEvent.Room, space);
|
||||
await prom;
|
||||
|
@ -845,7 +845,7 @@ describe("SpaceStore", () => {
|
|||
room: spaceId,
|
||||
user: client.getUserId()!,
|
||||
skey: user.userId,
|
||||
content: { membership: "join" },
|
||||
content: { membership: Membership.Join },
|
||||
ts: Date.now(),
|
||||
});
|
||||
const spaceRoom = client.getRoom(spaceId)!;
|
||||
|
@ -926,7 +926,7 @@ describe("SpaceStore", () => {
|
|||
beforeEach(async () => {
|
||||
mkRoom(room1); // not a space
|
||||
mkSpace(space1, [mkSpace(space2).roomId]);
|
||||
mkSpace(space3).getMyMembership.mockReturnValue("invite");
|
||||
mkSpace(space3).getMyMembership.mockReturnValue(Membership.Invite);
|
||||
await run();
|
||||
store.setActiveSpace(MetaSpace.Home);
|
||||
expect(store.activeSpace).toBe(MetaSpace.Home);
|
||||
|
@ -986,7 +986,7 @@ describe("SpaceStore", () => {
|
|||
const event = mkEvent({
|
||||
event: true,
|
||||
type: EventType.RoomMember,
|
||||
content: { membership: "join" },
|
||||
content: { membership: Membership.Join },
|
||||
skey: dm1Partner.userId,
|
||||
user: dm1Partner.userId,
|
||||
room: space1,
|
||||
|
@ -994,7 +994,7 @@ describe("SpaceStore", () => {
|
|||
space.getMember.mockImplementation((userId) => {
|
||||
if (userId === dm1Partner.userId) {
|
||||
const member = new RoomMember(space1, dm1Partner.userId);
|
||||
member.membership = "join";
|
||||
member.membership = Membership.Join;
|
||||
return member;
|
||||
}
|
||||
return null;
|
||||
|
@ -1249,15 +1249,15 @@ describe("SpaceStore", () => {
|
|||
|
||||
// receive invite to space
|
||||
const rootSpace = mkSpace(space1, [room1, room2, space2]);
|
||||
rootSpace.getMyMembership.mockReturnValue("invite");
|
||||
rootSpace.getMyMembership.mockReturnValue(Membership.Invite);
|
||||
client.emit(ClientEvent.Room, rootSpace);
|
||||
jest.runOnlyPendingTimers();
|
||||
expect(SpaceStore.instance.invitedSpaces).toStrictEqual([rootSpace]);
|
||||
expect(SpaceStore.instance.spacePanelSpaces).toStrictEqual([]);
|
||||
|
||||
// accept invite to space
|
||||
rootSpace.getMyMembership.mockReturnValue("join");
|
||||
client.emit(RoomEvent.MyMembership, rootSpace, "join", "invite");
|
||||
rootSpace.getMyMembership.mockReturnValue(Membership.Join);
|
||||
client.emit(RoomEvent.MyMembership, rootSpace, Membership.Join, Membership.Invite);
|
||||
jest.runOnlyPendingTimers();
|
||||
expect(SpaceStore.instance.invitedSpaces).toStrictEqual([]);
|
||||
expect(SpaceStore.instance.spacePanelSpaces).toStrictEqual([rootSpace]);
|
||||
|
@ -1265,7 +1265,7 @@ describe("SpaceStore", () => {
|
|||
// join room in space
|
||||
expect(SpaceStore.instance.isRoomInSpace(space1, room1)).toBeFalsy();
|
||||
const rootSpaceRoom1 = mkRoom(room1);
|
||||
rootSpaceRoom1.getMyMembership.mockReturnValue("join");
|
||||
rootSpaceRoom1.getMyMembership.mockReturnValue(Membership.Join);
|
||||
client.emit(ClientEvent.Room, rootSpaceRoom1);
|
||||
jest.runOnlyPendingTimers();
|
||||
expect(SpaceStore.instance.invitedSpaces).toStrictEqual([]);
|
||||
|
@ -1279,7 +1279,7 @@ describe("SpaceStore", () => {
|
|||
// receive room invite
|
||||
expect(SpaceStore.instance.isRoomInSpace(space1, room2)).toBeFalsy();
|
||||
const rootSpaceRoom2 = mkRoom(room2);
|
||||
rootSpaceRoom2.getMyMembership.mockReturnValue("invite");
|
||||
rootSpaceRoom2.getMyMembership.mockReturnValue(Membership.Invite);
|
||||
client.emit(ClientEvent.Room, rootSpaceRoom2);
|
||||
jest.runOnlyPendingTimers();
|
||||
expect(SpaceStore.instance.invitedSpaces).toStrictEqual([]);
|
||||
|
@ -1292,9 +1292,9 @@ describe("SpaceStore", () => {
|
|||
|
||||
// start DM in space
|
||||
const myRootSpaceMember = new RoomMember(space1, testUserId);
|
||||
myRootSpaceMember.membership = "join";
|
||||
myRootSpaceMember.membership = Membership.Join;
|
||||
const rootSpaceFriend = new RoomMember(space1, dm1Partner.userId);
|
||||
rootSpaceFriend.membership = "join";
|
||||
rootSpaceFriend.membership = Membership.Join;
|
||||
rootSpace.getMembers.mockReturnValue([myRootSpaceMember, rootSpaceFriend]);
|
||||
rootSpace.getMember.mockImplementation((userId) => {
|
||||
switch (userId) {
|
||||
|
@ -1310,7 +1310,7 @@ describe("SpaceStore", () => {
|
|||
event: true,
|
||||
type: EventType.RoomMember,
|
||||
content: {
|
||||
membership: "join",
|
||||
membership: Membership.Join,
|
||||
},
|
||||
skey: dm1Partner.userId,
|
||||
user: dm1Partner.userId,
|
||||
|
@ -1320,7 +1320,7 @@ describe("SpaceStore", () => {
|
|||
jest.runOnlyPendingTimers();
|
||||
expect(SpaceStore.instance.getSpaceFilteredUserIds(space1)!.has(dm1Partner.userId)).toBeTruthy();
|
||||
const dm1Room = mkRoom(dm1);
|
||||
dm1Room.getMyMembership.mockReturnValue("join");
|
||||
dm1Room.getMyMembership.mockReturnValue(Membership.Join);
|
||||
client.emit(ClientEvent.Room, dm1Room);
|
||||
jest.runOnlyPendingTimers();
|
||||
expect(SpaceStore.instance.invitedSpaces).toStrictEqual([]);
|
||||
|
@ -1333,7 +1333,7 @@ describe("SpaceStore", () => {
|
|||
|
||||
// join subspace
|
||||
const subspace = mkSpace(space2);
|
||||
subspace.getMyMembership.mockReturnValue("join");
|
||||
subspace.getMyMembership.mockReturnValue(Membership.Join);
|
||||
const prom = testUtils.emitPromise(SpaceStore.instance, space1);
|
||||
client.emit(ClientEvent.Room, subspace);
|
||||
jest.runOnlyPendingTimers();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue