1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-08-06 12:02:40 +03:00

make sure invited count cache gets reset when updating member

This commit is contained in:
Bruno Windels
2018-07-26 19:43:05 +02:00
parent 6ce7170cf4
commit d8f673ed51
2 changed files with 79 additions and 4 deletions

View File

@@ -529,13 +529,53 @@ describe("RoomState", function() {
}); });
}); });
describe("getJoinedMemberCount", function() {
beforeEach(() => {
state = new RoomState(roomId);
});
it("should update after adding joined member", function() {
state.setStateEvents([
utils.mkMembership({event: true, mship: "join",
user: userA, room: roomId}),
]);
expect(state.getJoinedMemberCount()).toEqual(1);
state.setStateEvents([
utils.mkMembership({event: true, mship: "join",
user: userC, room: roomId}),
]);
expect(state.getJoinedMemberCount()).toEqual(2);
});
});
describe("getInvitedMemberCount", function() {
beforeEach(() => {
state = new RoomState(roomId);
});
it("should update after adding invited member", function() {
state.setStateEvents([
utils.mkMembership({event: true, mship: "invite",
user: userA, room: roomId}),
]);
expect(state.getInvitedMemberCount()).toEqual(1);
state.setStateEvents([
utils.mkMembership({event: true, mship: "invite",
user: userC, room: roomId}),
]);
expect(state.getInvitedMemberCount()).toEqual(2);
});
});
describe("setJoinedMemberCount", function() { describe("setJoinedMemberCount", function() {
beforeEach(() => {
state = new RoomState(roomId);
});
it("should, once used, override counting members from state", function() { it("should, once used, override counting members from state", function() {
state.setStateEvents([ state.setStateEvents([
utils.mkMembership({event: true, mship: "join", utils.mkMembership({event: true, mship: "join",
user: userA, room: roomId}), user: userA, room: roomId}),
utils.mkMembership({event: true, mship: "invite",
user: userB, room: roomId}),
]); ]);
expect(state.getJoinedMemberCount()).toEqual(1); expect(state.getJoinedMemberCount()).toEqual(1);
state.setJoinedMemberCount(100); state.setJoinedMemberCount(100);
@@ -552,8 +592,6 @@ describe("RoomState", function() {
state.setStateEvents([ state.setStateEvents([
utils.mkMembership({event: true, mship: "join", utils.mkMembership({event: true, mship: "join",
user: userA, room: roomId}), user: userA, room: roomId}),
utils.mkMembership({event: true, mship: "invite",
user: userB, room: roomId}),
]); ]);
state.setJoinedMemberCount(100); state.setJoinedMemberCount(100);
const copy = state.clone(); const copy = state.clone();
@@ -565,6 +603,42 @@ describe("RoomState", function() {
}); });
}); });
describe("setInvitedMemberCount", function() {
beforeEach(() => {
state = new RoomState(roomId);
});
it("should, once used, override counting members from state", function() {
state.setStateEvents([
utils.mkMembership({event: true, mship: "invite",
user: userB, room: roomId}),
]);
expect(state.getInvitedMemberCount()).toEqual(1);
state.setInvitedMemberCount(100);
expect(state.getInvitedMemberCount()).toEqual(100);
state.setStateEvents([
utils.mkMembership({event: true, mship: "invite",
user: userC, room: roomId}),
]);
expect(state.getInvitedMemberCount()).toEqual(100);
});
it("should, once used, override counting members from state, " +
"also after clone", function() {
state.setStateEvents([
utils.mkMembership({event: true, mship: "invite",
user: userB, room: roomId}),
]);
state.setInvitedMemberCount(100);
const copy = state.clone();
copy.setStateEvents([
utils.mkMembership({event: true, mship: "invite",
user: userC, room: roomId}),
]);
expect(state.getInvitedMemberCount()).toEqual(100);
});
});
describe("maySendEvent", function() { describe("maySendEvent", function() {
it("should say non-joined members may not send events", it("should say non-joined members may not send events",
function() { function() {

View File

@@ -376,6 +376,7 @@ RoomState.prototype._updateMember = function(member) {
this.members[member.userId] = member; this.members[member.userId] = member;
this._joinedMemberCount = null; this._joinedMemberCount = null;
this._invitedMemberCount = null;
}; };
/** /**