diff --git a/src/createRoom.ts b/src/createRoom.ts index bf2bfdcd12..0898609b89 100644 --- a/src/createRoom.ts +++ b/src/createRoom.ts @@ -399,11 +399,9 @@ export async function canEncryptToAllUsers(client: MatrixClient, userIds: string try { const usersDeviceMap = await client.downloadKeys(userIds); - // There are no devices at all. - if (usersDeviceMap.size === 0) return false; - for (const devices of usersDeviceMap.values()) { if (devices.size === 0) { + // This user does not have any encryption-capable devices. return false; } } diff --git a/test/createRoom-test.ts b/test/createRoom-test.ts index d89ee82ddb..0c34041b07 100644 --- a/test/createRoom-test.ts +++ b/test/createRoom-test.ts @@ -161,10 +161,16 @@ describe("canEncryptToAllUsers", () => { client = mocked(stubClient()); }); - it("should return false if download keys does not return any user", async () => { + it("should return true if userIds is empty", async () => { + client.downloadKeys.mockResolvedValue(new Map()); + const result = await canEncryptToAllUsers(client, []); + expect(result).toBe(true); + }); + + it("should return true if download keys does not return any user", async () => { client.downloadKeys.mockResolvedValue(new Map()); const result = await canEncryptToAllUsers(client, [user1Id, user2Id]); - expect(result).toBe(false); + expect(result).toBe(true); }); it("should return false if none of the users has a device", async () => {