From aeb9f4373fff7cc8e1fa0e2c26f870dc50119cae Mon Sep 17 00:00:00 2001 From: Kerry Date: Wed, 14 Dec 2022 17:59:23 +1300 Subject: [PATCH] Device manager - use deleteAccountData to prune device manager client information events (#9734) --- src/utils/device/clientInformation.ts | 4 ++-- test/DeviceListener-test.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/utils/device/clientInformation.ts b/src/utils/device/clientInformation.ts index 8b7b802239..e97135ab1f 100644 --- a/src/utils/device/clientInformation.ts +++ b/src/utils/device/clientInformation.ts @@ -75,9 +75,9 @@ export const removeClientInformation = async (matrixClient: MatrixClient): Promi const type = getClientInformationEventType(deviceId); const clientInformation = getDeviceClientInformation(matrixClient, deviceId); - // if a non-empty client info event exists, overwrite to remove the content + // if a non-empty client info event exists, remove it if (clientInformation.name || clientInformation.version || clientInformation.url) { - await matrixClient.setAccountData(type, {}); + await matrixClient.deleteAccountData(type); } }; diff --git a/test/DeviceListener-test.ts b/test/DeviceListener-test.ts index 99c413938c..dea4ab1987 100644 --- a/test/DeviceListener-test.ts +++ b/test/DeviceListener-test.ts @@ -96,6 +96,7 @@ describe("DeviceListener", () => { getDeviceId: jest.fn().mockReturnValue(deviceId), setAccountData: jest.fn(), getAccountData: jest.fn(), + deleteAccountData: jest.fn(), checkDeviceTrust: jest.fn().mockReturnValue(new DeviceTrustLevel(false, false, false, false)), }); jest.spyOn(MatrixClientPeg, "get").mockReturnValue(mockClient); @@ -188,9 +189,8 @@ describe("DeviceListener", () => { mockClient!.getAccountData.mockReturnValue(clientInfoEvent); await createAndStart(); - expect(mockClient!.setAccountData).toHaveBeenCalledWith( + expect(mockClient!.deleteAccountData).toHaveBeenCalledWith( `io.element.matrix_client_information.${deviceId}`, - {}, ); }); @@ -198,7 +198,7 @@ describe("DeviceListener", () => { mockClient!.getAccountData.mockReturnValue(emptyClientInfoEvent); await createAndStart(); - expect(mockClient!.setAccountData).not.toHaveBeenCalled(); + expect(mockClient!.deleteAccountData).not.toHaveBeenCalled(); }); it("does not save client information on logged in action", async () => {