@@ -15,12 +15,7 @@ limitations under the License.
1515*/
1616
1717import { type MatrixEvent } from "../../../src" ;
18- import {
19- CallMembership ,
20- type SessionMembershipData ,
21- DEFAULT_EXPIRE_DURATION ,
22- type RtcMembershipData ,
23- } from "../../../src/matrixrtc/CallMembership" ;
18+ import { CallMembership , DEFAULT_EXPIRE_DURATION , type RtcMembershipData } from "../../../src/matrixrtc/CallMembership" ;
2419import { membershipTemplate } from "./mocks" ;
2520
2621function makeMockEvent ( originTs = 0 , content = { } ) : MatrixEvent {
@@ -42,16 +37,6 @@ describe("CallMembership", () => {
4237 jest . useRealTimers ( ) ;
4338 } ) ;
4439
45- const membershipTemplate : SessionMembershipData = {
46- "call_id" : "" ,
47- "scope" : "m.room" ,
48- "application" : "m.call" ,
49- "device_id" : "AAAAAAA" ,
50- "focus_active" : { type : "livekit" , focus_selection : "oldest_membership" } ,
51- "foci_preferred" : [ { type : "livekit" } ] ,
52- "m.call.intent" : "voice" ,
53- } ;
54-
5540 it ( "rejects membership with no device_id" , ( ) => {
5641 expect ( ( ) => {
5742 new CallMembership ( makeMockEvent ( 0 , Object . assign ( { } , membershipTemplate , { device_id : undefined } ) ) ) ;
@@ -184,6 +169,19 @@ describe("CallMembership", () => {
184169 expect ( membership . isExpired ( ) ) . toBe ( true ) ;
185170 } ) ;
186171 } ) ;
172+ describe ( "expiry calculation" , ( ) => {
173+ beforeEach ( ( ) => jest . useFakeTimers ( ) ) ;
174+ afterEach ( ( ) => jest . useRealTimers ( ) ) ;
175+
176+ it ( "calculates time until expiry" , ( ) => {
177+ // server origin timestamp for this event is 1000
178+ const fakeEvent = makeMockEvent ( 1000 , membershipTemplate ) ;
179+ const membership = new CallMembership ( fakeEvent ) ;
180+ jest . setSystemTime ( 2000 ) ;
181+ // should be using absolute expiry time
182+ expect ( membership . getMsUntilExpiry ( ) ) . toEqual ( DEFAULT_EXPIRE_DURATION - 1000 ) ;
183+ } ) ;
184+ } ) ;
187185 } ) ;
188186
189187 describe ( "RtcMembershipData" , ( ) => {
@@ -328,28 +326,25 @@ describe("CallMembership", () => {
328326 expect ( membership . isExpired ( ) ) . toBe ( false ) ;
329327 } ) ;
330328 } ) ;
331- } ) ;
332-
333- describe ( "expiry calculation" , ( ) => {
334- let fakeEvent : MatrixEvent ;
335- let membership : CallMembership ;
336-
337- beforeEach ( ( ) => {
338- // server origin timestamp for this event is 1000
339- fakeEvent = makeMockEvent ( 1000 , membershipTemplate ) ;
340- membership = new CallMembership ( fakeEvent ! ) ;
341329
342- jest . useFakeTimers ( ) ;
343- } ) ;
330+ describe ( "expiry calculation" , ( ) => {
331+ beforeEach ( ( ) => jest . useFakeTimers ( ) ) ;
332+ afterEach ( ( ) => jest . useRealTimers ( ) ) ;
344333
345- afterEach ( ( ) => {
346- jest . useRealTimers ( ) ;
347- } ) ;
334+ afterEach ( ( ) => {
335+ jest . useRealTimers ( ) ;
336+ } ) ;
348337
349- it ( "calculates time until expiry" , ( ) => {
350- jest . setSystemTime ( 2000 ) ;
351- // should be using absolute expiry time
352- expect ( membership . getMsUntilExpiry ( ) ) . toEqual ( DEFAULT_EXPIRE_DURATION - 1000 ) ;
338+ it ( "calculates time until expiry" , ( ) => {
339+ // server origin timestamp for this event is 1000
340+ // The related event used for created_ts is at 500
341+ const fakeEvent = makeMockEvent ( 1000 , membershipTemplate ) ;
342+ const initialEvent = makeMockEvent ( 500 , membershipTemplate ) ;
343+ const membership = new CallMembership ( fakeEvent , initialEvent ) ;
344+ jest . setSystemTime ( 2000 ) ;
345+ // should be using absolute expiry time
346+ expect ( membership . getMsUntilExpiry ( ) ) . toEqual ( DEFAULT_EXPIRE_DURATION - 1500 ) ;
347+ } ) ;
353348 } ) ;
354349 } ) ;
355350} ) ;
0 commit comments