From 81d135ff06b52b2794269a35c8052c07fd0fb321 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 4 May 2022 15:54:59 +0100 Subject: [PATCH] Fix reading of cached room device setting values (#8491) * Fix reading of cached room device setting values * Add tests (cherry picked from commit 5cdc8fb3fdc627a9ebeaddb7a231c937d295dc6b) --- .../handlers/RoomDeviceSettingsHandler.ts | 2 +- .../RoomDeviceSettingsHandler-test.ts | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 test/settings/handlers/RoomDeviceSettingsHandler-test.ts diff --git a/src/settings/handlers/RoomDeviceSettingsHandler.ts b/src/settings/handlers/RoomDeviceSettingsHandler.ts index c1d1b57e9b6..271802167e6 100644 --- a/src/settings/handlers/RoomDeviceSettingsHandler.ts +++ b/src/settings/handlers/RoomDeviceSettingsHandler.ts @@ -69,7 +69,7 @@ export default class RoomDeviceSettingsHandler extends AbstractLocalStorageSetti } private read(key: string): any { - return this.getItem(key); + return this.getObject(key); } private getKey(settingName: string, roomId: string): string { diff --git a/test/settings/handlers/RoomDeviceSettingsHandler-test.ts b/test/settings/handlers/RoomDeviceSettingsHandler-test.ts new file mode 100644 index 00000000000..694cfd5d884 --- /dev/null +++ b/test/settings/handlers/RoomDeviceSettingsHandler-test.ts @@ -0,0 +1,35 @@ +/* +Copyright 2022 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import RoomDeviceSettingsHandler from "../../../src/settings/handlers/RoomDeviceSettingsHandler"; +import { WatchManager } from "../../../src/settings/WatchManager"; + +describe("RoomDeviceSettingsHandler", () => { + it("should correctly read cached values", () => { + const watchers = new WatchManager(); + const handler = new RoomDeviceSettingsHandler(watchers); + + const settingName = "RightPanel.phases"; + const roomId = "!room:server"; + const value = { + isOpen: true, + history: [{}], + }; + + handler.setValue(settingName, roomId, value); + expect(handler.getValue(settingName, roomId)).toEqual(value); + }); +});