Merge pull request #28538 from element-hq/t3chguy/fix/20721
This commit is contained in:
@@ -18,6 +18,9 @@ import { ActiveRoomChangedPayload } from "../../../../src/dispatcher/payloads/Ac
|
||||
import RightPanelStore from "../../../../src/stores/right-panel/RightPanelStore";
|
||||
import { RightPanelPhases } from "../../../../src/stores/right-panel/RightPanelStorePhases";
|
||||
import SettingsStore from "../../../../src/settings/SettingsStore";
|
||||
import { pendingVerificationRequestForUser } from "../../../../src/verification.ts";
|
||||
|
||||
jest.mock("../../../../src/verification");
|
||||
|
||||
describe("RightPanelStore", () => {
|
||||
// Mock out the settings store so the right panel store can't persist values between tests
|
||||
@@ -97,7 +100,7 @@ describe("RightPanelStore", () => {
|
||||
it("does nothing if given an invalid state", async () => {
|
||||
await viewRoom("!1:example.org");
|
||||
// Needs a member specified to be valid
|
||||
store.setCard({ phase: RightPanelPhases.RoomMemberInfo }, true, "!1:example.org");
|
||||
store.setCard({ phase: RightPanelPhases.MemberInfo }, true, "!1:example.org");
|
||||
expect(store.roomPhaseHistory).toEqual([]);
|
||||
});
|
||||
it("only creates a single history entry if given the same card twice", async () => {
|
||||
@@ -114,15 +117,15 @@ describe("RightPanelStore", () => {
|
||||
it("overwrites history if changing the phase", async () => {
|
||||
await viewRoom("!1:example.org");
|
||||
store.setCard({ phase: RightPanelPhases.RoomSummary }, true, "!1:example.org");
|
||||
store.setCard({ phase: RightPanelPhases.RoomMemberList }, true, "!1:example.org");
|
||||
expect(store.roomPhaseHistory).toEqual([{ phase: RightPanelPhases.RoomMemberList, state: {} }]);
|
||||
store.setCard({ phase: RightPanelPhases.MemberList }, true, "!1:example.org");
|
||||
expect(store.roomPhaseHistory).toEqual([{ phase: RightPanelPhases.MemberList, state: {} }]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("setCards", () => {
|
||||
it("overwrites history", async () => {
|
||||
await viewRoom("!1:example.org");
|
||||
store.setCard({ phase: RightPanelPhases.RoomMemberList }, true, "!1:example.org");
|
||||
store.setCard({ phase: RightPanelPhases.MemberList }, true, "!1:example.org");
|
||||
store.setCards(
|
||||
[{ phase: RightPanelPhases.RoomSummary }, { phase: RightPanelPhases.PinnedMessages }],
|
||||
true,
|
||||
@@ -200,21 +203,40 @@ describe("RightPanelStore", () => {
|
||||
store.setCards(
|
||||
[
|
||||
{
|
||||
phase: RightPanelPhases.RoomMemberList,
|
||||
phase: RightPanelPhases.MemberList,
|
||||
},
|
||||
{
|
||||
phase: RightPanelPhases.RoomMemberInfo,
|
||||
phase: RightPanelPhases.MemberInfo,
|
||||
state: { member: new RoomMember("!1:example.org", "@alice:example.org") },
|
||||
},
|
||||
],
|
||||
true,
|
||||
"!1:example.org",
|
||||
);
|
||||
expect(store.currentCardForRoom("!1:example.org").phase).toEqual(RightPanelPhases.RoomMemberInfo);
|
||||
expect(store.currentCardForRoom("!1:example.org").phase).toEqual(RightPanelPhases.MemberInfo);
|
||||
|
||||
// Switch away and back
|
||||
await viewRoom("!2:example.org");
|
||||
await viewRoom("!1:example.org");
|
||||
expect(store.currentCardForRoom("!1:example.org").phase).toEqual(RightPanelPhases.RoomMemberList);
|
||||
expect(store.currentCardForRoom("!1:example.org").phase).toEqual(RightPanelPhases.MemberList);
|
||||
});
|
||||
|
||||
it("should redirect to verification if set to phase MemberInfo for a user with a pending verification", async () => {
|
||||
const member = new RoomMember("!1:example.org", "@alice:example.org");
|
||||
const verificationRequest = { mockVerificationRequest: true } as any;
|
||||
mocked(pendingVerificationRequestForUser).mockReturnValue(verificationRequest);
|
||||
await viewRoom("!1:example.org");
|
||||
store.setCard(
|
||||
{
|
||||
phase: RightPanelPhases.MemberInfo,
|
||||
state: { member },
|
||||
},
|
||||
true,
|
||||
"!1:example.org",
|
||||
);
|
||||
expect(store.currentCard).toEqual({
|
||||
phase: RightPanelPhases.EncryptionPanel,
|
||||
state: { member, verificationRequest },
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -30,7 +30,7 @@ describe("onView3pidInvite()", () => {
|
||||
};
|
||||
onView3pidInvite(payload, rightPanelStore);
|
||||
|
||||
expect(rightPanelStore.showOrHidePhase).toHaveBeenCalledWith(RightPanelPhases.RoomMemberList);
|
||||
expect(rightPanelStore.showOrHidePhase).toHaveBeenCalledWith(RightPanelPhases.MemberList);
|
||||
expect(rightPanelStore.pushCard).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@@ -43,7 +43,7 @@ describe("onView3pidInvite()", () => {
|
||||
|
||||
expect(rightPanelStore.showOrHidePhase).not.toHaveBeenCalled();
|
||||
expect(rightPanelStore.pushCard).toHaveBeenCalledWith({
|
||||
phase: RightPanelPhases.Room3pidMemberInfo,
|
||||
phase: RightPanelPhases.ThreePidMemberInfo,
|
||||
state: { memberInfoEvent: payload.event },
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user