Fix tsc issues in right_panel and room component tests (#8078)
* fix ts issues in SendMessageComposer-test Signed-off-by: Kerry Archibald <kerrya@element.io> * remove empty file Signed-off-by: Kerry Archibald <kerrya@element.io> * fix tsc issues in MessageComposerbUttons-test Signed-off-by: Kerry Archibald <kerrya@element.io> * fix the rest Signed-off-by: Kerry Archibald <kerrya@element.io> * bad autoformatter Signed-off-by: Kerry Archibald <kerrya@element.io> * tsc fixes for test/components/views/right_panel Signed-off-by: Kerry Archibald <kerrya@element.io>
This commit is contained in:
parent
d7a3f39a3e
commit
026ca1ab64
9 changed files with 125 additions and 88 deletions
|
@ -28,13 +28,14 @@ import * as TestUtils from '../../../test-utils';
|
|||
import { compare } from "../../../../src/utils/strings";
|
||||
import MemberList from "../../../../src/components/views/rooms/MemberList";
|
||||
import MemberTile from '../../../../src/components/views/rooms/MemberTile';
|
||||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||
|
||||
function generateRoomId() {
|
||||
return '!' + Math.random().toString().slice(2, 10) + ':domain';
|
||||
}
|
||||
|
||||
describe('MemberList', () => {
|
||||
function createRoom(opts) {
|
||||
function createRoom(opts = {}) {
|
||||
const room = new Room(generateRoomId(), null, client.getUserId());
|
||||
if (opts) {
|
||||
Object.assign(room, opts);
|
||||
|
@ -114,16 +115,20 @@ describe('MemberList', () => {
|
|||
memberListRoom.currentState.members[member.userId] = member;
|
||||
}
|
||||
|
||||
const WrappedMemberList = TestUtils.wrapInMatrixClientContext(MemberList);
|
||||
const gatherWrappedRef = (r) => {
|
||||
memberList = r;
|
||||
};
|
||||
root = ReactDOM.render(
|
||||
(
|
||||
<WrappedMemberList
|
||||
roomId={memberListRoom.roomId}
|
||||
wrappedRef={gatherWrappedRef}
|
||||
/>
|
||||
<MatrixClientContext.Provider value={client}>
|
||||
<MemberList
|
||||
searchQuery=""
|
||||
onClose={jest.fn()}
|
||||
onSearchQueryChanged={jest.fn()}
|
||||
roomId={memberListRoom.roomId}
|
||||
ref={gatherWrappedRef}
|
||||
/>
|
||||
</MatrixClientContext.Provider>
|
||||
),
|
||||
parentDiv,
|
||||
);
|
||||
|
|
|
@ -25,6 +25,9 @@ import MessageComposer from "../../../../src/components/views/rooms/MessageCompo
|
|||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||
import RoomContext from "../../../../src/contexts/RoomContext";
|
||||
import { IRoomState } from "../../../../src/components/structures/RoomView";
|
||||
import ResizeNotifier from "../../../../src/utils/ResizeNotifier";
|
||||
import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks";
|
||||
|
||||
describe("MessageComposer", () => {
|
||||
stubClient();
|
||||
|
@ -32,18 +35,14 @@ describe("MessageComposer", () => {
|
|||
const room = mkStubRoom("!roomId:server", "Room 1", cli);
|
||||
|
||||
it("Renders a SendMessageComposer and MessageComposerButtons by default", () => {
|
||||
const wrapper = wrapAndRender((
|
||||
<MessageComposer room={room} resizeNotifier={jest.fn()} permalinkCreator={jest.fn()} />
|
||||
));
|
||||
const wrapper = wrapAndRender({ room });
|
||||
|
||||
expect(wrapper.find("SendMessageComposer")).toHaveLength(1);
|
||||
expect(wrapper.find("MessageComposerButtons")).toHaveLength(1);
|
||||
});
|
||||
|
||||
it("Does not render a SendMessageComposer or MessageComposerButtons when user has no permission", () => {
|
||||
const wrapper = wrapAndRender((
|
||||
<MessageComposer room={room} resizeNotifier={jest.fn()} permalinkCreator={jest.fn()} />
|
||||
), false);
|
||||
const wrapper = wrapAndRender({ room }, false);
|
||||
|
||||
expect(wrapper.find("SendMessageComposer")).toHaveLength(0);
|
||||
expect(wrapper.find("MessageComposerButtons")).toHaveLength(0);
|
||||
|
@ -51,9 +50,7 @@ describe("MessageComposer", () => {
|
|||
});
|
||||
|
||||
it("Does not render a SendMessageComposer or MessageComposerButtons when room is tombstoned", () => {
|
||||
const wrapper = wrapAndRender((
|
||||
<MessageComposer room={room} resizeNotifier={jest.fn()} permalinkCreator={jest.fn()} />
|
||||
), true, mkEvent({
|
||||
const wrapper = wrapAndRender({ room }, true, mkEvent({
|
||||
event: true,
|
||||
type: "m.room.tombstone",
|
||||
room: room.roomId,
|
||||
|
@ -69,7 +66,7 @@ describe("MessageComposer", () => {
|
|||
});
|
||||
});
|
||||
|
||||
function wrapAndRender(component: React.ReactElement, canSendMessages = true, tombstone?: MatrixEvent): ReactWrapper {
|
||||
function wrapAndRender(props = {}, canSendMessages = true, tombstone?: MatrixEvent): ReactWrapper {
|
||||
const mockClient = MatrixClientPeg.get();
|
||||
const roomId = "myroomid";
|
||||
const room: any = {
|
||||
|
@ -80,10 +77,21 @@ function wrapAndRender(component: React.ReactElement, canSendMessages = true, to
|
|||
return new RoomMember(roomId, userId);
|
||||
},
|
||||
};
|
||||
|
||||
const roomState = {
|
||||
room, canSendMessages, tombstone,
|
||||
} as unknown as IRoomState;
|
||||
|
||||
const defaultProps = {
|
||||
room,
|
||||
resizeNotifier: new ResizeNotifier(),
|
||||
permalinkCreator: new RoomPermalinkCreator(room),
|
||||
};
|
||||
|
||||
return mount(
|
||||
<MatrixClientContext.Provider value={mockClient}>
|
||||
<RoomContext.Provider value={{ room, canSendMessages, tombstone }}>
|
||||
{ component }
|
||||
<RoomContext.Provider value={roomState}>
|
||||
<MessageComposer {...defaultProps} {...props} />
|
||||
</RoomContext.Provider>
|
||||
</MatrixClientContext.Provider>,
|
||||
);
|
||||
|
|
|
@ -19,7 +19,6 @@ import { mount, ReactWrapper } from "enzyme";
|
|||
import { Room } from "matrix-js-sdk/src/models/room";
|
||||
import { RoomMember } from "matrix-js-sdk/src/models/room-member";
|
||||
|
||||
import * as TestUtils from "../../../test-utils";
|
||||
import sdk from "../../../skinned-sdk";
|
||||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||
import { Layout } from "../../../../src/settings/enums/Layout";
|
||||
|
@ -28,10 +27,7 @@ import { createTestClient } from "../../../test-utils";
|
|||
import { IRoomState } from "../../../../src/components/structures/RoomView";
|
||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||
|
||||
const _MessageComposerButtons = sdk.getComponent("views.rooms.MessageComposerButtons");
|
||||
const MessageComposerButtons = TestUtils.wrapInMatrixClientContext(
|
||||
_MessageComposerButtons,
|
||||
);
|
||||
const MessageComposerButtons = sdk.getComponent("views.rooms.MessageComposerButtons");
|
||||
|
||||
describe("MessageComposerButtons", () => {
|
||||
it("Renders emoji and upload buttons in wide mode", () => {
|
||||
|
@ -172,7 +168,8 @@ describe("MessageComposerButtons", () => {
|
|||
});
|
||||
|
||||
function wrapAndRender(component: React.ReactElement, narrow: boolean): ReactWrapper {
|
||||
const mockClient = MatrixClientPeg.matrixClient = createTestClient();
|
||||
const mockClient = createTestClient();
|
||||
jest.spyOn(MatrixClientPeg, 'get').mockReturnValue(mockClient);
|
||||
const roomId = "myroomid";
|
||||
const mockRoom: any = {
|
||||
currentState: undefined,
|
||||
|
@ -202,7 +199,6 @@ function createRoomState(room: Room, narrow: boolean): IRoomState {
|
|||
shouldPeek: true,
|
||||
membersLoaded: false,
|
||||
numUnreadMessages: 0,
|
||||
searching: false,
|
||||
guestsCanJoin: false,
|
||||
canPeek: false,
|
||||
showApps: false,
|
||||
|
|
|
@ -9,7 +9,6 @@ import DMRoomMap from '../../../../src/utils/DMRoomMap';
|
|||
import RoomHeader from '../../../../src/components/views/rooms/RoomHeader';
|
||||
import { SearchScope } from '../../../../src/components/views/rooms/SearchBar';
|
||||
import { E2EStatus } from '../../../../src/utils/ShieldUtils';
|
||||
import { PlaceCallType } from '../../../../src/CallHandler';
|
||||
import { mkEvent } from '../../../test-utils';
|
||||
import { IRoomState } from "../../../../src/components/structures/RoomView";
|
||||
import RoomContext from '../../../../src/contexts/RoomContext';
|
||||
|
@ -173,13 +172,13 @@ function createRoom(info: IRoomCreationInfo) {
|
|||
|
||||
function render(room: Room, roomContext?: Partial<IRoomState>): ReactWrapper {
|
||||
return mount((
|
||||
<RoomContext.Provider value={{ ...roomContext, room }}>
|
||||
<RoomContext.Provider value={{ ...roomContext, room } as IRoomState}>
|
||||
<RoomHeader
|
||||
room={room}
|
||||
inRoom={true}
|
||||
onSearchClick={() => {}}
|
||||
onForgetClick={() => {}}
|
||||
onCallPlaced={(_type: PlaceCallType) => {}}
|
||||
onCallPlaced={(_type) => { }}
|
||||
onAppsClick={() => {}}
|
||||
e2eStatus={E2EStatus.Normal}
|
||||
appsShown={true}
|
||||
|
|
|
@ -81,6 +81,7 @@ describe("SearchResultTile", () => {
|
|||
const tiles = wrapper.find(EventTile);
|
||||
expect(tiles.length).toEqual(2);
|
||||
expect(tiles.at(0).prop("mxEvent").getId()).toBe("$1:server");
|
||||
// @ts-ignore accessing private property
|
||||
expect(tiles.at(0).prop("callEventGrouper").events.size).toBe(2);
|
||||
expect(tiles.at(1).prop("mxEvent").getId()).toBe("$144429830826TWwbB:localhost");
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue