Support dynamic room predecessors in WidgetLayoutStore (#10326)
* Support dynamic room predecessors in WidgetLayoutStore * Improve TS correctness in WidgetLayoutStore * Test to cover onNotReady to quieten SonarCloud --------- Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
This commit is contained in:
parent
acb7dd84ac
commit
edd8865670
2 changed files with 62 additions and 6 deletions
|
@ -21,6 +21,7 @@ import WidgetStore, { IApp } from "../../src/stores/WidgetStore";
|
|||
import { Container, WidgetLayoutStore } from "../../src/stores/widgets/WidgetLayoutStore";
|
||||
import { stubClient } from "../test-utils";
|
||||
import defaultDispatcher from "../../src/dispatcher/dispatcher";
|
||||
import SettingsStore from "../../src/settings/SettingsStore";
|
||||
|
||||
// setup test env values
|
||||
const roomId = "!room:server";
|
||||
|
@ -263,4 +264,45 @@ describe("WidgetLayoutStore", () => {
|
|||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("Can call onNotReady before onReady has been called", () => {
|
||||
// Just to quieten SonarCloud :-(
|
||||
|
||||
// @ts-ignore bypass private ctor for tests
|
||||
const store = new WidgetLayoutStore();
|
||||
// @ts-ignore calling private method
|
||||
store.onNotReady();
|
||||
});
|
||||
|
||||
describe("when feature_dynamic_room_predecessors is not enabled", () => {
|
||||
beforeAll(() => {
|
||||
jest.spyOn(SettingsStore, "getValue").mockReturnValue(false);
|
||||
});
|
||||
|
||||
it("passes the flag in to getVisibleRooms", async () => {
|
||||
mocked(client.getVisibleRooms).mockRestore();
|
||||
mocked(client.getVisibleRooms).mockReturnValue([]);
|
||||
// @ts-ignore bypass private ctor for tests
|
||||
const store = new WidgetLayoutStore();
|
||||
await store.start();
|
||||
expect(client.getVisibleRooms).toHaveBeenCalledWith(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("when feature_dynamic_room_predecessors is enabled", () => {
|
||||
beforeAll(() => {
|
||||
jest.spyOn(SettingsStore, "getValue").mockImplementation(
|
||||
(settingName) => settingName === "feature_dynamic_room_predecessors",
|
||||
);
|
||||
});
|
||||
|
||||
it("passes the flag in to getVisibleRooms", async () => {
|
||||
mocked(client.getVisibleRooms).mockRestore();
|
||||
mocked(client.getVisibleRooms).mockReturnValue([]);
|
||||
// @ts-ignore bypass private ctor for tests
|
||||
const store = new WidgetLayoutStore();
|
||||
await store.start();
|
||||
expect(client.getVisibleRooms).toHaveBeenCalledWith(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue