You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-07-05 00:22:28 +03:00
add tests for functional members
This commit is contained in:
@ -21,7 +21,12 @@ import { makeBeaconEvent, makeBeaconInfoEvent } from "../test-utils/beacon";
|
||||
import { filterEmitCallsByEventType } from "../test-utils/emitter";
|
||||
import { RoomState, RoomStateEvent } from "../../src/models/room-state";
|
||||
import { Beacon, BeaconEvent, getBeaconInfoIdentifier } from "../../src/models/beacon";
|
||||
import { EventType, RelationType, UNSTABLE_MSC2716_MARKER } from "../../src/@types/event";
|
||||
import {
|
||||
EventType,
|
||||
RelationType,
|
||||
UNSTABLE_ELEMENT_FUNCTIONAL_USERS,
|
||||
UNSTABLE_MSC2716_MARKER,
|
||||
} from "../../src/@types/event";
|
||||
import { MatrixEvent, MatrixEventEvent } from "../../src/models/event";
|
||||
import { M_BEACON } from "../../src/@types/beacon";
|
||||
import { MatrixClient } from "../../src/client";
|
||||
@ -704,6 +709,59 @@ describe("RoomState", function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe("getJoinedFunctionalMemberCount", function () {
|
||||
beforeEach(() => {
|
||||
state = new RoomState(roomId);
|
||||
});
|
||||
|
||||
it("should update after adding joined functional member", function () {
|
||||
state.setStateEvents([
|
||||
utils.mkMembership({ event: true, mship: "join", user: userA, room: roomId }),
|
||||
utils.mkEvent({
|
||||
event: true,
|
||||
type: UNSTABLE_ELEMENT_FUNCTIONAL_USERS.unstable!,
|
||||
skey: "",
|
||||
sender: userB,
|
||||
room: roomId,
|
||||
content: { service_members: [userA] },
|
||||
}),
|
||||
]);
|
||||
expect(state.getJoinedMemberCount()).toEqual(1);
|
||||
expect(state.getJoinedFunctionalMemberCount()).toEqual(1);
|
||||
state.setStateEvents([
|
||||
utils.mkMembership({ event: true, mship: "join", user: userC, room: roomId }),
|
||||
utils.mkEvent({
|
||||
event: true,
|
||||
type: UNSTABLE_ELEMENT_FUNCTIONAL_USERS.unstable!,
|
||||
skey: "",
|
||||
sender: userB,
|
||||
room: roomId,
|
||||
content: { service_members: [userA, userC] },
|
||||
}),
|
||||
]);
|
||||
expect(state.getJoinedMemberCount()).toEqual(2);
|
||||
expect(state.getJoinedFunctionalMemberCount()).toEqual(2);
|
||||
});
|
||||
|
||||
it("should not update after adding joined non-functional member", function () {
|
||||
state.setStateEvents([utils.mkMembership({ event: true, mship: "join", user: userA, room: roomId })]);
|
||||
expect(state.getJoinedMemberCount()).toEqual(1);
|
||||
expect(state.getJoinedFunctionalMemberCount()).toEqual(0);
|
||||
state.setStateEvents([
|
||||
utils.mkEvent({
|
||||
event: true,
|
||||
type: UNSTABLE_ELEMENT_FUNCTIONAL_USERS.unstable!,
|
||||
skey: "",
|
||||
sender: userB,
|
||||
room: roomId,
|
||||
content: { service_members: [userA] },
|
||||
}),
|
||||
]);
|
||||
expect(state.getJoinedMemberCount()).toEqual(1);
|
||||
expect(state.getJoinedFunctionalMemberCount()).toEqual(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe("getInvitedMemberCount", function () {
|
||||
beforeEach(() => {
|
||||
state = new RoomState(roomId);
|
||||
@ -717,6 +775,58 @@ describe("RoomState", function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe("getInvitedFunctionalMemberCount", function () {
|
||||
beforeEach(() => {
|
||||
state = new RoomState(roomId);
|
||||
});
|
||||
it("should update after adding invited functional member", function () {
|
||||
state.setStateEvents([
|
||||
utils.mkMembership({ event: true, mship: "invite", user: userA, room: roomId }),
|
||||
utils.mkEvent({
|
||||
event: true,
|
||||
type: UNSTABLE_ELEMENT_FUNCTIONAL_USERS.unstable!,
|
||||
skey: "",
|
||||
sender: userB,
|
||||
room: roomId,
|
||||
content: { service_members: [userA] },
|
||||
}),
|
||||
]);
|
||||
expect(state.getInvitedMemberCount()).toEqual(1);
|
||||
expect(state.getInvitedFunctionalMemberCount()).toEqual(1);
|
||||
state.setStateEvents([
|
||||
utils.mkMembership({ event: true, mship: "invite", user: userC, room: roomId }),
|
||||
utils.mkEvent({
|
||||
event: true,
|
||||
type: UNSTABLE_ELEMENT_FUNCTIONAL_USERS.unstable!,
|
||||
skey: "",
|
||||
sender: userB,
|
||||
room: roomId,
|
||||
content: { service_members: [userA, userC] },
|
||||
}),
|
||||
]);
|
||||
expect(state.getInvitedMemberCount()).toEqual(2);
|
||||
expect(state.getInvitedFunctionalMemberCount()).toEqual(2);
|
||||
});
|
||||
|
||||
it("should not update after adding invited non-functional member", function () {
|
||||
state.setStateEvents([utils.mkMembership({ event: true, mship: "invite", user: userA, room: roomId })]);
|
||||
expect(state.getInvitedMemberCount()).toEqual(1);
|
||||
expect(state.getInvitedFunctionalMemberCount()).toEqual(0);
|
||||
state.setStateEvents([
|
||||
utils.mkEvent({
|
||||
event: true,
|
||||
type: UNSTABLE_ELEMENT_FUNCTIONAL_USERS.unstable!,
|
||||
skey: "",
|
||||
sender: userB,
|
||||
room: roomId,
|
||||
content: { service_members: [userA] },
|
||||
}),
|
||||
]);
|
||||
expect(state.getInvitedMemberCount()).toEqual(1);
|
||||
expect(state.getInvitedFunctionalMemberCount()).toEqual(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe("setJoinedMemberCount", function () {
|
||||
beforeEach(() => {
|
||||
state = new RoomState(roomId);
|
||||
|
Reference in New Issue
Block a user