You've already forked matrix-js-sdk
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:
@@ -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() {
|
||||||
|
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user