Files
ThreadNet-Web/apps/web/test/unit-tests/components/views/dialogs/LeaveSpaceDialog-test.tsx
T
sorB 3da363517f
Docker / Docker Buildx (push) Has been cancelled
Build Debian package / Build package (release) Has been cancelled
Build and Deploy / prepare (release) Has been cancelled
Deploy release / Deploy to Cloudflare Pages (release) Has been cancelled
Build and Deploy / Trigger Pro pipeline (release) Has been cancelled
Build and Deploy / Windows arm64 (release) Has been cancelled
Build and Deploy / Windows x64 (release) Has been cancelled
Build and Deploy / macOS (release) Has been cancelled
Build and Deploy / Linux amd64 (sqlcipher static) (release) Has been cancelled
Build and Deploy / Linux arm64 (sqlcipher static) (release) Has been cancelled
Build and Deploy / ${{ needs.prepare.outputs.deploy == 'true' && 'Deploy' || 'Deploy (dry-run)' }} (release) Has been cancelled
Build and Deploy / Deploy builds to ESS (release) Has been cancelled
feat: show call participants in room list (Discord-style)
2026-05-10 14:25:35 +02:00

51 lines
1.9 KiB
TypeScript

/*
Copyright 2025 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
import React from "react";
import { render, screen } from "jest-matrix-react";
import { MatrixEvent, type RoomMember } from "matrix-js-sdk/src/matrix";
import LeaveSpaceDialog from "../../../../../src/components/views/dialogs/LeaveSpaceDialog";
import { createTestClient, mkStubRoom } from "../../../../test-utils";
describe("LeaveSpaceDialog", () => {
it("should warn about not being able to rejoin non-public space", () => {
const mockClient = createTestClient();
const mockSpace = mkStubRoom("myfakeroom", "myfakeroom", mockClient) as any;
jest.spyOn(mockSpace.currentState, "getStateEvents").mockReturnValue(
new MatrixEvent({
type: "m.room.join_rules",
content: {
join_rule: "invite",
},
}),
);
render(<LeaveSpaceDialog space={mockSpace} onFinished={jest.fn()} />);
expect(screen.getByText(/You won't be able to rejoin unless you are re-invited/)).toBeInTheDocument();
});
it("should warn if user is the only admin", () => {
const mockClient = createTestClient();
const mockSpace = mkStubRoom("myfakeroom", "myfakeroom", mockClient) as any;
jest.spyOn(mockSpace, "getJoinedMembers").mockReturnValue([
{ powerLevel: 100 } as unknown as RoomMember,
{ powerLevel: 0 } as unknown as RoomMember,
]);
jest.spyOn(mockSpace, "getMember").mockReturnValue({
powerLevel: 100,
} as unknown as RoomMember);
render(<LeaveSpaceDialog space={mockSpace} onFinished={jest.fn()} />);
expect(
screen.getByText(/You're the only admin of this space. Leaving it will mean no one has control over it./),
).toBeInTheDocument();
});
});