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 { filterEmitCallsByEventType } from "../test-utils/emitter";
|
||||||
import { RoomState, RoomStateEvent } from "../../src/models/room-state";
|
import { RoomState, RoomStateEvent } from "../../src/models/room-state";
|
||||||
import { Beacon, BeaconEvent, getBeaconInfoIdentifier } from "../../src/models/beacon";
|
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 { MatrixEvent, MatrixEventEvent } from "../../src/models/event";
|
||||||
import { M_BEACON } from "../../src/@types/beacon";
|
import { M_BEACON } from "../../src/@types/beacon";
|
||||||
import { MatrixClient } from "../../src/client";
|
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 () {
|
describe("getInvitedMemberCount", function () {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
state = new RoomState(roomId);
|
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 () {
|
describe("setJoinedMemberCount", function () {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
state = new RoomState(roomId);
|
state = new RoomState(roomId);
|
||||||
|
Reference in New Issue
Block a user