From 9dd00c7731f6fb15d7c548d66c5d78c1197d1ce7 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 18 Jun 2021 17:40:04 +0100 Subject: [PATCH] Fix tests and tweak some optional types --- spec/test-utils.js | 2 +- spec/unit/room.spec.js | 18 +++++++++++------- src/models/room.ts | 14 +++++--------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/spec/test-utils.js b/spec/test-utils.js index dcde2d6fe..47b2624f6 100644 --- a/spec/test-utils.js +++ b/spec/test-utils.js @@ -51,7 +51,7 @@ export function mock(constr, name) { result.toString = function() { return "mock" + (name ? " of " + name : ""); }; - for (const key in constr.prototype) { // eslint-disable-line guard-for-in + for (const key of Object.getOwnPropertyNames(constr.prototype)) { // eslint-disable-line guard-for-in try { if (constr.prototype[key] instanceof Function) { result[key] = jest.fn(); diff --git a/spec/unit/room.spec.js b/spec/unit/room.spec.js index 69b53a2b1..34ec05f24 100644 --- a/spec/unit/room.spec.js +++ b/spec/unit/room.spec.js @@ -1,8 +1,8 @@ import * as utils from "../test-utils"; -import { EventStatus, MatrixEvent } from "../../src/models/event"; +import { EventStatus, MatrixEvent } from "../../src"; import { EventTimeline } from "../../src/models/event-timeline"; -import { RoomState } from "../../src/models/room-state"; -import { Room } from "../../src/models/room"; +import { RoomState } from "../../src"; +import { Room } from "../../src"; import { TestClient } from "../TestClient"; describe("Room", function() { @@ -86,9 +86,11 @@ describe("Room", function() { ]; it("should call RoomState.setTypingEvent on m.typing events", function() { - room.currentState = utils.mock(RoomState); const typing = utils.mkEvent({ - room: roomId, type: "m.typing", event: true, content: { + room: roomId, + type: "m.typing", + event: true, + content: { user_ids: [userA], }, }); @@ -140,8 +142,8 @@ describe("Room", function() { expect(callCount).toEqual(2); }); - it("should call setStateEvents on the right RoomState with the right " + - "forwardLooking value for new events", function() { + it("should call setStateEvents on the right RoomState with the right forwardLooking value for new events", + function() { const events = [ utils.mkMembership({ room: roomId, mship: "invite", user: userB, skey: userA, event: true, @@ -652,6 +654,7 @@ describe("Room", function() { const roomName = "flibble"; const event = addMember(userA, "invite"); + event.event.unsigned = {}; event.event.unsigned.invite_room_state = [ { type: "m.room.name", @@ -671,6 +674,7 @@ describe("Room", function() { const roomName = "flibble"; setRoomName(roomName); const roomNameToIgnore = "ignoreme"; + event.event.unsigned = {}; event.event.unsigned.invite_room_state = [ { type: "m.room.name", diff --git a/src/models/room.ts b/src/models/room.ts index 64e2366a1..16b8fcac8 100644 --- a/src/models/room.ts +++ b/src/models/room.ts @@ -284,7 +284,7 @@ export class Room extends EventEmitter { .reverse() .map(event => event.attemptDecryption(this.client.crypto, { isRetry: true })); - return Promise.allSettled(decryptionPromises); + return Promise.allSettled(decryptionPromises) as Promise; } /** @@ -301,7 +301,7 @@ export class Room extends EventEmitter { .reverse() .map(event => event.attemptDecryption(this.client.crypto, { isRetry: true })); - return Promise.allSettled(decryptionPromises); + return Promise.allSettled(decryptionPromises) as Promise; } /** @@ -1237,7 +1237,7 @@ export class Room extends EventEmitter { * @fires module:client~MatrixClient#event:"Room.timeline" * @private */ - private addLiveEvent(event: MatrixEvent, duplicateStrategy: "ignore" | "replace", fromCache: boolean): void { + private addLiveEvent(event: MatrixEvent, duplicateStrategy?: "ignore" | "replace", fromCache = false): void { if (event.isRedaction()) { const redactId = event.event.redacts; @@ -1336,11 +1336,7 @@ export class Room extends EventEmitter { // call setEventMetadata to set up event.sender etc // as event is shared over all timelineSets, we set up its metadata based // on the unfiltered timelineSet. - EventTimeline.setEventMetadata( - event, - this.getLiveTimeline().getState(EventTimeline.FORWARDS), - false, - ); + EventTimeline.setEventMetadata(event, this.getLiveTimeline().getState(EventTimeline.FORWARDS), false); this.txnToEvent[txnId] = event; @@ -1612,7 +1608,7 @@ export class Room extends EventEmitter { * @param {boolean} fromCache whether the sync response came from cache * @throws If duplicateStrategy is not falsey, 'replace' or 'ignore'. */ - public addLiveEvents(events: MatrixEvent[], duplicateStrategy: "replace" | "ignore", fromCache: boolean): void { + public addLiveEvents(events: MatrixEvent[], duplicateStrategy?: "replace" | "ignore", fromCache = false): void { let i; if (duplicateStrategy && ["replace", "ignore"].indexOf(duplicateStrategy) === -1) { throw new Error("duplicateStrategy MUST be either 'replace' or 'ignore'");