1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-07-31 15:24:23 +03:00

Don't use event.sender in CallMembership (#3793)

* Don't use event.sender in CallMembership

I fell into another js-sdk trap: this is "only guaranteed to be set
for events that appear in a timeline" and not state events. It does
not say why. We only ever used it to get the sender user ID anyway,
so just use getSender().

* Fix test
This commit is contained in:
David Baker
2023-10-10 16:19:52 +01:00
committed by GitHub
parent 2f79e6c056
commit c8f8fb587d
3 changed files with 6 additions and 8 deletions

View File

@ -29,9 +29,7 @@ const membershipTemplate: CallMembershipData = {
function makeMockEvent(originTs = 0): MatrixEvent { function makeMockEvent(originTs = 0): MatrixEvent {
return { return {
getTs: jest.fn().mockReturnValue(originTs), getTs: jest.fn().mockReturnValue(originTs),
sender: { getSender: jest.fn().mockReturnValue("@alice:example.org"),
userId: "@alice:example.org",
},
} as unknown as MatrixEvent; } as unknown as MatrixEvent;
} }

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import { MatrixEvent, RoomMember } from "../matrix"; import { MatrixEvent } from "../matrix";
import { deepCompare } from "../utils"; import { deepCompare } from "../utils";
import { Focus } from "./focus"; import { Focus } from "./focus";
@ -42,11 +42,11 @@ export class CallMembership {
if (typeof data.device_id !== "string") throw new Error("Malformed membership event: device_id must be string"); if (typeof data.device_id !== "string") throw new Error("Malformed membership event: device_id must be string");
if (typeof data.call_id !== "string") throw new Error("Malformed membership event: call_id must be string"); if (typeof data.call_id !== "string") throw new Error("Malformed membership event: call_id must be string");
if (typeof data.scope !== "string") throw new Error("Malformed membership event: scope must be string"); if (typeof data.scope !== "string") throw new Error("Malformed membership event: scope must be string");
if (!parentEvent.sender) throw new Error("Invalid parent event: sender is null"); if (!parentEvent.getSender()) throw new Error("Invalid parent event: sender is null");
} }
public get member(): RoomMember { public get sender(): string | undefined {
return this.parentEvent.sender!; return this.parentEvent.getSender();
} }
public get callId(): string { public get callId(): string {

View File

@ -120,7 +120,7 @@ export class MatrixRTCSession extends TypedEventEmitter<MatrixRTCSessionEvent, M
callMemberships.sort((a, b) => a.createdTs() - b.createdTs()); callMemberships.sort((a, b) => a.createdTs() - b.createdTs());
logger.debug( logger.debug(
"Call memberships, in order: ", "Call memberships, in order: ",
callMemberships.map((m) => [m.createdTs(), m.member.userId]), callMemberships.map((m) => [m.createdTs(), m.sender]),
); );
return callMemberships; return callMemberships;