1
0
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:
HarHarLinks
2024-02-06 18:26:46 +01:00
committed by Kim Brose
parent e65fb242ba
commit c114bf5c43

View File

@ -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);