RoomListViewModel: Add functionality to toggle message preview setting (#29511)

* Add setting for showing message previews

* Add hook to track and toggle message preview

* Use hook in view model

* Add tests

* Fix tests

* Fix lint

* Fix typo
This commit is contained in:
R Midhun Suresh
2025-03-17 20:37:14 +05:30
committed by GitHub
parent ff1da50dd9
commit d88776e2dc
6 changed files with 81 additions and 0 deletions

View File

@@ -218,4 +218,26 @@ describe("RoomListViewModel", () => {
expect(vm.current.activeSortOption).toEqual(SortOption.AToZ);
});
});
describe("message preview toggle", () => {
it("should return shouldShowMessagePreview based on setting", () => {
jest.spyOn(SettingsStore, "getValue").mockImplementation(() => true);
mockAndCreateRooms();
const { result: vm } = renderHook(() => useRoomListViewModel());
expect(vm.current.shouldShowMessagePreview).toEqual(true);
});
it("should change setting on toggle", () => {
jest.spyOn(SettingsStore, "getValue").mockImplementation(() => true);
const fn = jest.spyOn(SettingsStore, "setValue").mockImplementation(async () => {});
mockAndCreateRooms();
const { result: vm } = renderHook(() => useRoomListViewModel());
expect(vm.current.shouldShowMessagePreview).toEqual(true);
act(() => {
vm.current.toggleMessagePreview();
});
expect(vm.current.shouldShowMessagePreview).toEqual(false);
expect(fn).toHaveBeenCalled();
});
});
});

View File

@@ -35,6 +35,8 @@ describe("<RoomList />", () => {
activeSecondaryFilter: SecondaryFilters.AllActivity,
sort: jest.fn(),
activeSortOption: SortOption.Activity,
shouldShowMessagePreview: false,
toggleMessagePreview: jest.fn(),
};
// Needed to render a room list cell

View File

@@ -28,6 +28,8 @@ describe("<RoomListPrimaryFilters />", () => {
activeSecondaryFilter: SecondaryFilters.AllActivity,
sort: jest.fn(),
activeSortOption: SortOption.Activity,
shouldShowMessagePreview: false,
toggleMessagePreview: jest.fn(),
};
});