Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit f90bc40

Browse files
authored
Support dynamic room predecessors in StopGapWidgetDriver (#10338)
1 parent aca077c commit f90bc40

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/stores/widgets/StopGapWidgetDriver.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import { ElementWidgetCapabilities } from "./ElementWidgetCapabilities";
6161
import { navigateToPermalink } from "../../utils/permalinks/navigator";
6262
import { SdkContextClass } from "../../contexts/SDKContext";
6363
import { ModuleRunner } from "../../modules/ModuleRunner";
64+
import SettingsStore from "../../settings/SettingsStore";
6465

6566
// TODO: Purge this from the universe
6667

@@ -311,7 +312,7 @@ export class StopGapWidgetDriver extends WidgetDriver {
311312

312313
const targetRooms = roomIds
313314
? roomIds.includes(Symbols.AnyRoom)
314-
? client.getVisibleRooms()
315+
? client.getVisibleRooms(SettingsStore.getValue("feature_dynamic_room_predecessors"))
315316
: roomIds.map((r) => client.getRoom(r))
316317
: [client.getRoom(SdkContextClass.instance.roomViewStore.getRoomId()!)];
317318
return targetRooms.filter((r) => !!r) as Room[];

test/stores/widgets/StopGapWidgetDriver-test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import { StopGapWidgetDriver } from "../../../src/stores/widgets/StopGapWidgetDr
4040
import { stubClient } from "../../test-utils";
4141
import { ModuleRunner } from "../../../src/modules/ModuleRunner";
4242
import dis from "../../../src/dispatcher/dispatcher";
43+
import SettingsStore from "../../../src/settings/SettingsStore";
4344

4445
describe("StopGapWidgetDriver", () => {
4546
let client: MockedObject<MatrixClient>;
@@ -366,4 +367,31 @@ describe("StopGapWidgetDriver", () => {
366367
expect(dis.dispatch).not.toHaveBeenCalled();
367368
});
368369
});
370+
371+
describe("If the feature_dynamic_room_predecessors feature is not enabled", () => {
372+
beforeEach(() => {
373+
jest.spyOn(SettingsStore, "getValue").mockReturnValue(false);
374+
});
375+
376+
it("passes the flag through to getVisibleRooms", () => {
377+
const driver = mkDefaultDriver();
378+
driver.readRoomEvents(EventType.CallAnswer, "", 0, ["*"]);
379+
expect(client.getVisibleRooms).toHaveBeenCalledWith(false);
380+
});
381+
});
382+
383+
describe("If the feature_dynamic_room_predecessors is enabled", () => {
384+
beforeEach(() => {
385+
// Turn on feature_dynamic_room_predecessors setting
386+
jest.spyOn(SettingsStore, "getValue").mockImplementation(
387+
(settingName) => settingName === "feature_dynamic_room_predecessors",
388+
);
389+
});
390+
391+
it("passes the flag through to getVisibleRooms", () => {
392+
const driver = mkDefaultDriver();
393+
driver.readRoomEvents(EventType.CallAnswer, "", 0, ["*"]);
394+
expect(client.getVisibleRooms).toHaveBeenCalledWith(true);
395+
});
396+
});
369397
});

0 commit comments

Comments
 (0)