Handle voice broadcast last_chunk_sequence (#9812)

This commit is contained in:
Michael Weimann
2022-12-28 09:32:49 +00:00
committed by GitHub
parent 539a50ae30
commit 2b7d106481
5 changed files with 118 additions and 18 deletions
@@ -62,6 +62,10 @@ describe("VoiceBroadcastChunkEvents", () => {
]);
});
it("getNumberOfEvents should return 4", () => {
expect(chunkEvents.getNumberOfEvents()).toBe(4);
});
it("getLength should return the total length of all chunks", () => {
expect(chunkEvents.getLength()).toBe(3259);
});
@@ -110,6 +114,7 @@ describe("VoiceBroadcastChunkEvents", () => {
eventSeq3Time2T,
eventSeq4Time1,
]);
expect(chunkEvents.getNumberOfEvents()).toBe(4);
});
});
});
@@ -129,6 +134,17 @@ describe("VoiceBroadcastChunkEvents", () => {
eventSeqUTime3,
eventSeq2Time4Dup,
]);
expect(chunkEvents.getNumberOfEvents()).toBe(5);
});
describe("getSequenceForEvent", () => {
it("should return the sequence if provided by the event", () => {
expect(chunkEvents.getSequenceForEvent(eventSeq3Time2)).toBe(3);
});
it("should return the index if no sequence provided by event", () => {
expect(chunkEvents.getSequenceForEvent(eventSeqUTime3)).toBe(4);
});
});
});
});
+8
View File
@@ -24,12 +24,16 @@ import {
} from "../../../src/voice-broadcast";
import { mkEvent } from "../../test-utils";
// timestamp incremented on each call to prevent duplicate timestamp
let timestamp = new Date().getTime();
export const mkVoiceBroadcastInfoStateEvent = (
roomId: Optional<string>,
state: Optional<VoiceBroadcastInfoState>,
senderId: Optional<string>,
senderDeviceId: Optional<string>,
startedInfoEvent?: MatrixEvent,
lastChunkSequence?: number,
): MatrixEvent => {
const relationContent = {};
@@ -40,6 +44,8 @@ export const mkVoiceBroadcastInfoStateEvent = (
};
}
const lastChunkSequenceContent = lastChunkSequence ? { last_chunk_sequence: lastChunkSequence } : {};
return mkEvent({
event: true,
// @ts-ignore allow everything here for edge test cases
@@ -53,7 +59,9 @@ export const mkVoiceBroadcastInfoStateEvent = (
state,
device_id: senderDeviceId,
...relationContent,
...lastChunkSequenceContent,
},
ts: timestamp++,
});
};