Merge pull request #12336 from matrix-org/andybalaam/stas-demydiuk-membership-type3

Introduce Membership type (take 2)
This commit is contained in:
David Baker 2024-03-22 15:36:39 +00:00 committed by GitHub
commit 8f22550f19
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
113 changed files with 711 additions and 517 deletions

View file

@ -18,6 +18,7 @@ limitations under the License.
import React from "react";
import { EventEmitter } from "events";
import { MatrixEvent, Room, RoomMember, Thread, ReceiptType } from "matrix-js-sdk/src/matrix";
import { KnownMembership } from "matrix-js-sdk/src/types";
import { render } from "@testing-library/react";
import { TooltipProvider } from "@vector-im/compound-web";
@ -171,8 +172,8 @@ describe("MessagePanel", function () {
user: "@user:id",
target: bobMember,
ts: ts0 + i * 1000,
mship: "join",
prevMship: "join",
mship: KnownMembership.Join,
prevMship: KnownMembership.Join,
name: "A user",
}),
);
@ -205,8 +206,8 @@ describe("MessagePanel", function () {
user: "@user:id",
target: bobMember,
ts: ts0 + i * 1000,
mship: "join",
prevMship: "join",
mship: KnownMembership.Join,
prevMship: KnownMembership.Join,
name: "A user",
}),
);
@ -245,7 +246,7 @@ describe("MessagePanel", function () {
user: alice,
target: aliceMember,
ts: ts0 + 1,
mship: "join",
mship: KnownMembership.Join,
name: "Alice",
}),
mkEvent({
@ -285,7 +286,7 @@ describe("MessagePanel", function () {
skey: "@bob:example.org",
target: bobMember,
ts: ts0 + 5,
mship: "invite",
mship: KnownMembership.Invite,
name: "Bob",
}),
];
@ -542,8 +543,8 @@ describe("MessagePanel", function () {
user: "@user:id",
target: bobMember,
ts: Date.now(),
mship: "join",
prevMship: "join",
mship: KnownMembership.Join,
prevMship: KnownMembership.Join,
name: "A user",
}),
];
@ -571,8 +572,8 @@ describe("MessagePanel", function () {
user: "@user:id",
target: bobMember,
ts: Date.now(),
mship: "join",
prevMship: "join",
mship: KnownMembership.Join,
prevMship: KnownMembership.Join,
name: "A user",
}),
...events,
@ -695,8 +696,8 @@ describe("MessagePanel", function () {
for (let i = 0; i < 100; i++) {
events.push(
TestUtilsMatrix.mkMembership({
mship: "join",
prevMship: "join",
mship: KnownMembership.Join,
prevMship: KnownMembership.Join,
room: "!room:id",
user: "@user:id",
event: true,
@ -716,8 +717,8 @@ describe("MessagePanel", function () {
for (let i = 0; i < 100; i++) {
events.push(
TestUtilsMatrix.mkMembership({
mship: "join",
prevMship: "join",
mship: KnownMembership.Join,
prevMship: KnownMembership.Join,
room: "!room:id",
user: "@user:id",
event: true,

View file

@ -29,6 +29,7 @@ import {
SearchResult,
IEvent,
} from "matrix-js-sdk/src/matrix";
import { KnownMembership } from "matrix-js-sdk/src/types";
import { MEGOLM_ALGORITHM } from "matrix-js-sdk/src/crypto/olmlib";
import { fireEvent, render, screen, RenderResult, waitForElementToBeRemoved, waitFor } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
@ -238,7 +239,7 @@ describe("RoomView", () => {
});
it("updates url preview visibility on encryption state change", async () => {
room.getMyMembership = jest.fn().mockReturnValue("join");
room.getMyMembership = jest.fn().mockReturnValue(KnownMembership.Join);
// we should be starting unencrypted
expect(cli.isCryptoEnabled()).toEqual(false);
expect(cli.isRoomEncrypted(room.roomId)).toEqual(false);
@ -583,7 +584,7 @@ describe("RoomView", () => {
it("allows to cancel a join request", async () => {
jest.spyOn(MatrixClientPeg, "safeGet").mockReturnValue(client);
jest.spyOn(client, "leave").mockResolvedValue({});
jest.spyOn(room, "getMyMembership").mockReturnValue("knock");
jest.spyOn(room, "getMyMembership").mockReturnValue(KnownMembership.Knock);
await mountRoomView();
fireEvent.click(screen.getByRole("button", { name: "Cancel request" }));
@ -594,7 +595,7 @@ describe("RoomView", () => {
});
it("should close search results when edit is clicked", async () => {
room.getMyMembership = jest.fn().mockReturnValue("join");
room.getMyMembership = jest.fn().mockReturnValue(KnownMembership.Join);
const eventMapper = (obj: Partial<IEvent>) => new MatrixEvent(obj);
@ -655,7 +656,7 @@ describe("RoomView", () => {
const room2 = new Room(`!${roomCount++}:example.org`, cli, "@alice:example.org");
rooms.set(room2.roomId, room2);
room.getMyMembership = jest.fn().mockReturnValue("join");
room.getMyMembership = jest.fn().mockReturnValue(KnownMembership.Join);
const eventMapper = (obj: Partial<IEvent>) => new MatrixEvent(obj);

View file

@ -18,6 +18,7 @@ import React from "react";
import { mocked } from "jest-mock";
import { fireEvent, render, screen, waitFor, waitForElementToBeRemoved } from "@testing-library/react";
import { MatrixClient, Room, HierarchyRoom } from "matrix-js-sdk/src/matrix";
import { KnownMembership } from "matrix-js-sdk/src/types";
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
import { TooltipProvider } from "@vector-im/compound-web";
@ -181,7 +182,7 @@ describe("SpaceHierarchy", () => {
mocked(client.getRoom).mockImplementation(
(roomId) => client.getRooms().find((room) => room.roomId === roomId) ?? null,
);
[room1, room2, space1, room3].forEach((r) => mocked(r.getMyMembership).mockReturnValue("leave"));
[room1, room2, space1, room3].forEach((r) => mocked(r.getMyMembership).mockReturnValue(KnownMembership.Leave));
const hierarchyRoot: HierarchyRoom = {
room_id: root.roomId,

View file

@ -35,6 +35,7 @@ import {
ThreadEvent,
ThreadFilterType,
} from "matrix-js-sdk/src/matrix";
import { KnownMembership } from "matrix-js-sdk/src/types";
import React, { createRef } from "react";
import { Mocked, mocked } from "jest-mock";
import { forEachRight } from "lodash";
@ -988,8 +989,8 @@ describe("TimelinePanel", () => {
events.forEach((event) => timelineSet.getLiveTimeline().addEvent(event, { toStartOfTimeline: true }));
const roomMembership = mkMembership({
mship: "join",
prevMship: "join",
mship: KnownMembership.Join,
prevMship: KnownMembership.Join,
user: authorId,
room: room.roomId,
event: true,
@ -999,7 +1000,7 @@ describe("TimelinePanel", () => {
events.push(roomMembership);
const member = new RoomMember(room.roomId, authorId);
member.membership = "join";
member.membership = KnownMembership.Join;
const roomState = new RoomState(room.roomId);
jest.spyOn(roomState, "getMember").mockReturnValue(member);