Conform more code to strict null checking (#10153)
* Conform more code to strict null checking * Conform more code to strict null checking * Iterate * Iterate
This commit is contained in:
parent
a4ff959aa1
commit
145a5a8a8d
89 changed files with 520 additions and 551 deletions
|
@ -44,11 +44,11 @@ describe("MemberList", () => {
|
|||
return room;
|
||||
}
|
||||
|
||||
let parentDiv: HTMLDivElement = null;
|
||||
let client: MatrixClient = null;
|
||||
let root: Component = null;
|
||||
let parentDiv: HTMLDivElement;
|
||||
let client: MatrixClient;
|
||||
let root: Component;
|
||||
let memberListRoom: Room;
|
||||
let memberList: MemberList = null;
|
||||
let memberList: MemberList;
|
||||
|
||||
let adminUsers: RoomMember[] = [];
|
||||
let moderatorUsers: RoomMember[] = [];
|
||||
|
@ -140,14 +140,13 @@ describe("MemberList", () => {
|
|||
if (parentDiv) {
|
||||
ReactDOM.unmountComponentAtNode(parentDiv);
|
||||
parentDiv.remove();
|
||||
parentDiv = null;
|
||||
}
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
function expectOrderedByPresenceAndPowerLevel(memberTiles: MemberTile[], isPresenceEnabled: boolean) {
|
||||
let prevMember = null;
|
||||
let prevMember: RoomMember | undefined;
|
||||
for (const tile of memberTiles) {
|
||||
const memberA = prevMember;
|
||||
const memberB = tile.props.member;
|
||||
|
@ -160,8 +159,8 @@ describe("MemberList", () => {
|
|||
console.log(memberList.memberString(memberA));
|
||||
console.log(memberList.memberString(memberB));
|
||||
|
||||
const userA = memberA.user;
|
||||
const userB = memberB.user;
|
||||
const userA = memberA.user!;
|
||||
const userB = memberB.user!;
|
||||
|
||||
let groupChange = false;
|
||||
|
||||
|
@ -229,16 +228,16 @@ describe("MemberList", () => {
|
|||
const onlineUsers = [adminUsers[0]];
|
||||
const offlineUsers = [...moderatorUsers, ...adminUsers.slice(1), ...defaultUsers.slice(1)];
|
||||
activeUsers.forEach((u) => {
|
||||
u.user.currentlyActive = true;
|
||||
u.user.presence = "online";
|
||||
u.user!.currentlyActive = true;
|
||||
u.user!.presence = "online";
|
||||
});
|
||||
onlineUsers.forEach((u) => {
|
||||
u.user.currentlyActive = false;
|
||||
u.user.presence = "online";
|
||||
u.user!.currentlyActive = false;
|
||||
u.user!.presence = "online";
|
||||
});
|
||||
offlineUsers.forEach((u) => {
|
||||
u.user.currentlyActive = false;
|
||||
u.user.presence = "offline";
|
||||
u.user!.currentlyActive = false;
|
||||
u.user!.presence = "offline";
|
||||
});
|
||||
|
||||
// Bypass all the event listeners and skip to the good part
|
||||
|
@ -268,18 +267,18 @@ describe("MemberList", () => {
|
|||
const inactiveUsers = [...moderatorUsers, ...adminUsers.slice(1), ...defaultUsers.slice(1)];
|
||||
activeUsers.forEach((u) => {
|
||||
u.powerLevel = 100; // set everyone to the same PL to avoid running that check
|
||||
u.user.lastPresenceTs = 1000;
|
||||
u.user.lastActiveAgo = 0;
|
||||
u.user!.lastPresenceTs = 1000;
|
||||
u.user!.lastActiveAgo = 0;
|
||||
});
|
||||
semiActiveUsers.forEach((u) => {
|
||||
u.powerLevel = 100;
|
||||
u.user.lastPresenceTs = 1000;
|
||||
u.user.lastActiveAgo = 50;
|
||||
u.user!.lastPresenceTs = 1000;
|
||||
u.user!.lastActiveAgo = 50;
|
||||
});
|
||||
inactiveUsers.forEach((u) => {
|
||||
u.powerLevel = 100;
|
||||
u.user.lastPresenceTs = 1000;
|
||||
u.user.lastActiveAgo = 100;
|
||||
u.user!.lastPresenceTs = 1000;
|
||||
u.user!.lastActiveAgo = 100;
|
||||
});
|
||||
|
||||
// Bypass all the event listeners and skip to the good part
|
||||
|
@ -294,10 +293,10 @@ describe("MemberList", () => {
|
|||
// Intentionally put everyone on the same level to force a name comparison
|
||||
const allUsers = [...adminUsers, ...moderatorUsers, ...defaultUsers];
|
||||
allUsers.forEach((u) => {
|
||||
u.user.currentlyActive = true;
|
||||
u.user.presence = "online";
|
||||
u.user.lastPresenceTs = 1000;
|
||||
u.user.lastActiveAgo = 0;
|
||||
u.user!.currentlyActive = true;
|
||||
u.user!.presence = "online";
|
||||
u.user!.lastPresenceTs = 1000;
|
||||
u.user!.lastActiveAgo = 0;
|
||||
u.powerLevel = 100;
|
||||
});
|
||||
|
||||
|
|
|
@ -37,13 +37,13 @@ describe("NotificationBadge", () => {
|
|||
/>,
|
||||
);
|
||||
|
||||
fireEvent.click(container.firstChild);
|
||||
fireEvent.click(container.firstChild!);
|
||||
expect(cb).toHaveBeenCalledTimes(1);
|
||||
|
||||
fireEvent.mouseEnter(container.firstChild);
|
||||
fireEvent.mouseEnter(container.firstChild!);
|
||||
expect(cb).toHaveBeenCalledTimes(2);
|
||||
|
||||
fireEvent.mouseLeave(container.firstChild);
|
||||
fireEvent.mouseLeave(container.firstChild!);
|
||||
expect(cb).toHaveBeenCalledTimes(3);
|
||||
});
|
||||
|
||||
|
|
|
@ -217,7 +217,7 @@ function createRoom(info: IRoomCreationInfo) {
|
|||
const client: MatrixClient = MatrixClientPeg.get();
|
||||
|
||||
const roomId = "!1234567890:domain";
|
||||
const userId = client.getUserId();
|
||||
const userId = client.getUserId()!;
|
||||
if (info.isDm) {
|
||||
client.getAccountData = (eventType) => {
|
||||
expect(eventType).toEqual("m.direct");
|
||||
|
@ -231,7 +231,7 @@ function createRoom(info: IRoomCreationInfo) {
|
|||
pendingEventOrdering: PendingEventOrdering.Detached,
|
||||
});
|
||||
|
||||
const otherJoinEvents = [];
|
||||
const otherJoinEvents: MatrixEvent[] = [];
|
||||
for (const otherUserId of info.userIds) {
|
||||
otherJoinEvents.push(mkJoinEvent(roomId, otherUserId));
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
const documentOffset = new DocumentOffset(11, true);
|
||||
model.update("hello world", "insertText", documentOffset);
|
||||
|
||||
const content = createMessageContent(model, null, undefined, permalinkCreator);
|
||||
const content = createMessageContent(model, undefined, undefined, permalinkCreator);
|
||||
|
||||
expect(content).toEqual({
|
||||
body: "hello world",
|
||||
|
@ -101,7 +101,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
const documentOffset = new DocumentOffset(13, true);
|
||||
model.update("hello *world*", "insertText", documentOffset);
|
||||
|
||||
const content = createMessageContent(model, null, undefined, permalinkCreator);
|
||||
const content = createMessageContent(model, undefined, undefined, permalinkCreator);
|
||||
|
||||
expect(content).toEqual({
|
||||
body: "hello *world*",
|
||||
|
@ -116,7 +116,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
const documentOffset = new DocumentOffset(22, true);
|
||||
model.update("/me blinks __quickly__", "insertText", documentOffset);
|
||||
|
||||
const content = createMessageContent(model, null, undefined, permalinkCreator);
|
||||
const content = createMessageContent(model, undefined, undefined, permalinkCreator);
|
||||
|
||||
expect(content).toEqual({
|
||||
body: "blinks __quickly__",
|
||||
|
@ -132,7 +132,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
model.update("/me ✨sparkles✨", "insertText", documentOffset);
|
||||
expect(model.parts.length).toEqual(4); // Emoji count as non-text
|
||||
|
||||
const content = createMessageContent(model, null, undefined, permalinkCreator);
|
||||
const content = createMessageContent(model, undefined, undefined, permalinkCreator);
|
||||
|
||||
expect(content).toEqual({
|
||||
body: "✨sparkles✨",
|
||||
|
@ -146,7 +146,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
|
||||
model.update("//dev/null is my favourite place", "insertText", documentOffset);
|
||||
|
||||
const content = createMessageContent(model, null, undefined, permalinkCreator);
|
||||
const content = createMessageContent(model, undefined, undefined, permalinkCreator);
|
||||
|
||||
expect(content).toEqual({
|
||||
body: "/dev/null is my favourite place",
|
||||
|
@ -216,7 +216,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
|
||||
// ensure the right state was persisted to localStorage
|
||||
unmount();
|
||||
expect(JSON.parse(localStorage.getItem(key))).toStrictEqual({
|
||||
expect(JSON.parse(localStorage.getItem(key)!)).toStrictEqual({
|
||||
parts: [{ type: "plain", text: "Test Text" }],
|
||||
replyEventId: mockEvent.getId(),
|
||||
});
|
||||
|
@ -249,7 +249,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
|
||||
// ensure the right state was persisted to localStorage
|
||||
window.dispatchEvent(new Event("beforeunload"));
|
||||
expect(JSON.parse(localStorage.getItem(key))).toStrictEqual({
|
||||
expect(JSON.parse(localStorage.getItem(key)!)).toStrictEqual({
|
||||
parts: [{ type: "plain", text: "Hello World" }],
|
||||
});
|
||||
});
|
||||
|
@ -260,7 +260,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
const { container } = getComponent({ replyToEvent: mockEvent });
|
||||
|
||||
addTextToComposer(container, "This is a message");
|
||||
fireEvent.keyDown(container.querySelector(".mx_SendMessageComposer"), { key: "Enter" });
|
||||
fireEvent.keyDown(container.querySelector(".mx_SendMessageComposer")!, { key: "Enter" });
|
||||
|
||||
await waitFor(() => {
|
||||
expect(spyDispatcher).toHaveBeenCalledWith({
|
||||
|
@ -271,7 +271,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
});
|
||||
|
||||
expect(container.textContent).toBe("");
|
||||
const str = sessionStorage.getItem(`mx_cider_history_${mockRoom.roomId}[0]`);
|
||||
const str = sessionStorage.getItem(`mx_cider_history_${mockRoom.roomId}[0]`)!;
|
||||
expect(JSON.parse(str)).toStrictEqual({
|
||||
parts: [{ type: "plain", text: "This is a message" }],
|
||||
replyEventId: mockEvent.getId(),
|
||||
|
@ -289,7 +289,7 @@ describe("<SendMessageComposer/>", () => {
|
|||
const { container } = getComponent();
|
||||
|
||||
addTextToComposer(container, "test message");
|
||||
fireEvent.keyDown(container.querySelector(".mx_SendMessageComposer"), { key: "Enter" });
|
||||
fireEvent.keyDown(container.querySelector(".mx_SendMessageComposer")!, { key: "Enter" });
|
||||
|
||||
expect(mockClient.sendMessage).toHaveBeenCalledWith("myfakeroom", null, {
|
||||
body: "test message",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue