Allow adding extra icons to the room header (#11799)
* Allow adding extra icons to the room header Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net> * Apply PR feedback Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net> * Apply PR feedback Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net> * Apply PR feedback Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net> * Apply PR feedback Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net> * Apply PR feedback Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net> --------- Signed-off-by: Charly Nguyen <charly.nguyen@nordeck.net>
This commit is contained in:
parent
9496097143
commit
01e7e01153
14 changed files with 210 additions and 7 deletions
|
@ -17,6 +17,7 @@ limitations under the License.
|
|||
import { mocked } from "jest-mock";
|
||||
import { MatrixError, Room } from "matrix-js-sdk/src/matrix";
|
||||
import { sleep } from "matrix-js-sdk/src/utils";
|
||||
import { RoomViewLifecycle, ViewRoomOpts } from "@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle";
|
||||
|
||||
import { RoomViewStore } from "../../src/stores/RoomViewStore";
|
||||
import { Action } from "../../src/dispatcher/actions";
|
||||
|
@ -43,6 +44,7 @@ import ErrorDialog from "../../src/components/views/dialogs/ErrorDialog";
|
|||
import { CancelAskToJoinPayload } from "../../src/dispatcher/payloads/CancelAskToJoinPayload";
|
||||
import { JoinRoomErrorPayload } from "../../src/dispatcher/payloads/JoinRoomErrorPayload";
|
||||
import { SubmitAskToJoinPayload } from "../../src/dispatcher/payloads/SubmitAskToJoinPayload";
|
||||
import { ModuleRunner } from "../../src/modules/ModuleRunner";
|
||||
|
||||
jest.mock("../../src/Modal");
|
||||
|
||||
|
@ -132,6 +134,11 @@ describe("RoomViewStore", function () {
|
|||
await untilDispatch(Action.CancelAskToJoin, dis);
|
||||
};
|
||||
|
||||
const dispatchRoomLoaded = async () => {
|
||||
dis.dispatch({ action: Action.RoomLoaded });
|
||||
await untilDispatch(Action.RoomLoaded, dis);
|
||||
};
|
||||
|
||||
let roomViewStore: RoomViewStore;
|
||||
let slidingSyncManager: SlidingSyncManager;
|
||||
let dis: MatrixDispatcher;
|
||||
|
@ -569,4 +576,30 @@ describe("RoomViewStore", function () {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("getViewRoomOpts", () => {
|
||||
it("returns viewRoomOpts", () => {
|
||||
expect(roomViewStore.getViewRoomOpts()).toEqual({ buttons: [] });
|
||||
});
|
||||
});
|
||||
|
||||
describe("Action.RoomLoaded", () => {
|
||||
it("updates viewRoomOpts", async () => {
|
||||
const buttons: ViewRoomOpts["buttons"] = [
|
||||
{
|
||||
icon: "test-icon",
|
||||
id: "test-id",
|
||||
label: () => "test-label",
|
||||
onClick: () => {},
|
||||
},
|
||||
];
|
||||
jest.spyOn(ModuleRunner.instance, "invoke").mockImplementation((lifecycleEvent, opts) => {
|
||||
if (lifecycleEvent === RoomViewLifecycle.ViewRoom) {
|
||||
opts.buttons = buttons;
|
||||
}
|
||||
});
|
||||
await dispatchRoomLoaded();
|
||||
expect(roomViewStore.getViewRoomOpts()).toEqual({ buttons });
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue