@@ -12,7 +12,7 @@ describe('plugin-meetings', () => {
1212 let video ;
1313 let originalRemoteUpdateAudioVideo ;
1414
15- const fakeLocus = { info : 'this is a fake locus' } ;
15+ const fakeLocusResponse = { body : { locus : { info : 'this is a fake locus' } } } ;
1616
1717 const createFakeLocalStream = ( id , userMuted , systemMuted ) => {
1818 return {
@@ -38,9 +38,6 @@ describe('plugin-meetings', () => {
3838 unmuteAllowed : true ,
3939 remoteVideoMuted : false ,
4040 unmuteVideoAllowed : true ,
41- locusInfo : {
42- handleLocusDelta : sinon . stub ( ) ,
43- } ,
4441 members : {
4542 selfId : 'fake self id' ,
4643 muteMember : sinon . stub ( ) . resolves ( ) ,
@@ -49,7 +46,8 @@ describe('plugin-meetings', () => {
4946
5047 originalRemoteUpdateAudioVideo = MeetingUtil . remoteUpdateAudioVideo ;
5148
52- MeetingUtil . remoteUpdateAudioVideo = sinon . stub ( ) . resolves ( fakeLocus ) ;
49+ MeetingUtil . remoteUpdateAudioVideo = sinon . stub ( ) . resolves ( fakeLocusResponse ) ;
50+ MeetingUtil . updateLocusFromApiResponse = sinon . stub ( ) ;
5351
5452 audio = createMuteState ( AUDIO , meeting , true ) ;
5553 video = createMuteState ( VIDEO , meeting , true ) ;
@@ -141,6 +139,7 @@ describe('plugin-meetings', () => {
141139 // and local unmute was sent to server
142140 assert . calledOnce ( MeetingUtil . remoteUpdateAudioVideo ) ;
143141 assert . calledWith ( MeetingUtil . remoteUpdateAudioVideo , meeting , false , undefined ) ;
142+ assert . calledWith ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
144143
145144 assert . isFalse ( audio . isMuted ( ) ) ;
146145 } ) ;
@@ -173,6 +172,7 @@ describe('plugin-meetings', () => {
173172
174173 // system was muted so local unmute was not sent to server
175174 assert . notCalled ( MeetingUtil . remoteUpdateAudioVideo ) ;
175+ assert . notCalled ( MeetingUtil . updateLocusFromApiResponse ) ;
176176
177177 assert . isTrue ( audio . isMuted ( ) ) ;
178178 } ) ;
@@ -207,6 +207,7 @@ describe('plugin-meetings', () => {
207207 // and local unmute was sent to server
208208 assert . calledOnce ( MeetingUtil . remoteUpdateAudioVideo ) ;
209209 assert . calledWith ( MeetingUtil . remoteUpdateAudioVideo , meeting , undefined , false ) ;
210+ assert . calledWith ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
210211
211212 assert . isFalse ( video . isMuted ( ) ) ;
212213 } ) ;
@@ -219,7 +220,9 @@ describe('plugin-meetings', () => {
219220
220221 assert . isTrue ( video . isMuted ( ) ) ;
221222
223+ await testUtils . flushPromises ( ) ;
222224 MeetingUtil . remoteUpdateAudioVideo . resetHistory ( ) ;
225+ MeetingUtil . updateLocusFromApiResponse . resetHistory ( ) ;
223226
224227 // now simulate server requiring us to locally unmute
225228 // assuming setServerMuted succeeds at updating userMuted
@@ -239,6 +242,7 @@ describe('plugin-meetings', () => {
239242
240243 // system was muted so local unmute was not sent to server
241244 assert . notCalled ( MeetingUtil . remoteUpdateAudioVideo ) ;
245+ assert . notCalled ( MeetingUtil . updateLocusFromApiResponse ) ;
242246
243247 assert . isTrue ( video . isMuted ( ) ) ;
244248 } ) ;
@@ -443,6 +447,7 @@ describe('plugin-meetings', () => {
443447
444448 assert . calledOnce ( MeetingUtil . remoteUpdateAudioVideo ) ;
445449 assert . calledWith ( MeetingUtil . remoteUpdateAudioVideo , meeting , true , undefined ) ;
450+ assert . calledWith ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
446451
447452 // now allow the first request to complete
448453 serverResponseResolve ( ) ;
@@ -559,6 +564,7 @@ describe('plugin-meetings', () => {
559564 await testUtils . flushPromises ( ) ;
560565
561566 MeetingUtil . remoteUpdateAudioVideo . resetHistory ( ) ;
567+ MeetingUtil . updateLocusFromApiResponse . resetHistory ( ) ;
562568 } ;
563569
564570 const setupSpies = ( mediaType ) => {
@@ -605,13 +611,15 @@ describe('plugin-meetings', () => {
605611 { mediaType : VIDEO , title : 'video' } ,
606612 ] ;
607613
614+ const fakeLocusResponse = { body : { locus : { info : 'fake locus' } } } ;
615+
608616 tests . forEach ( ( { mediaType, title} ) =>
609617 describe ( title , ( ) => {
610618 let originalRemoteUpdateAudioVideo ;
611619
612620 beforeEach ( ( ) => {
613621 originalRemoteUpdateAudioVideo = MeetingUtil . remoteUpdateAudioVideo ;
614- MeetingUtil . remoteUpdateAudioVideo = sinon . stub ( ) . resolves ( { info : 'fake locus' } ) ;
622+ MeetingUtil . remoteUpdateAudioVideo = sinon . stub ( ) . resolves ( fakeLocusResponse ) ;
615623 } ) ;
616624
617625 afterEach ( ( ) => {
@@ -660,6 +668,7 @@ describe('plugin-meetings', () => {
660668 assert . calledWith ( setUnmuteAllowedSpy , muteState . state . server . unmuteAllowed ) ;
661669 assert . notCalled ( setServerMutedSpy ) ;
662670 assert . notCalled ( MeetingUtil . remoteUpdateAudioVideo ) ;
671+ assert . notCalled ( MeetingUtil . updateLocusFromApiResponse ) ;
663672 assert . isTrue ( muteState . state . client . localMute ) ;
664673 } ) ;
665674
@@ -672,6 +681,7 @@ describe('plugin-meetings', () => {
672681 assert . calledWith ( setUnmuteAllowedSpy , muteState . state . server . unmuteAllowed ) ;
673682 assert . notCalled ( setServerMutedSpy ) ;
674683 assert . notCalled ( MeetingUtil . remoteUpdateAudioVideo ) ;
684+ assert . notCalled ( MeetingUtil . updateLocusFromApiResponse ) ;
675685 assert . isTrue ( muteState . state . client . localMute ) ;
676686 } ) ;
677687
@@ -681,9 +691,12 @@ describe('plugin-meetings', () => {
681691
682692 muteState . init ( meeting ) ;
683693
694+ await testUtils . flushPromises ( ) ;
695+
684696 assert . calledWith ( setUnmuteAllowedSpy , muteState . state . server . unmuteAllowed ) ;
685697 assert . notCalled ( setServerMutedSpy ) ;
686698 assert . calledOnce ( MeetingUtil . remoteUpdateAudioVideo ) ;
699+ assert . calledOnceWithExactly ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
687700 assert . isFalse ( muteState . state . client . localMute ) ;
688701 } ) ;
689702
@@ -707,6 +720,7 @@ describe('plugin-meetings', () => {
707720 simulateUserMute ( mediaType , true ) ;
708721 muteState . handleLocalStreamMuteStateChange ( meeting ) ;
709722 assert . notCalled ( MeetingUtil . remoteUpdateAudioVideo ) ;
723+ assert . notCalled ( MeetingUtil . updateLocusFromApiResponse ) ;
710724
711725 assert . isFalse ( muteState . state . client . localMute ) ;
712726 } ) ;
@@ -716,35 +730,47 @@ describe('plugin-meetings', () => {
716730
717731 simulateUserMute ( mediaType , false ) ;
718732 muteState . handleLocalStreamMuteStateChange ( meeting ) ;
733+ await testUtils . flushPromises ( ) ;
734+
719735 assert . equal ( muteState . state . client . localMute , false ) ;
720736 assert . called ( MeetingUtil . remoteUpdateAudioVideo ) ;
737+ assert . calledOnceWithExactly ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
721738 } ) ;
722739
723740 it ( 'tests localMute - user mute from false to true' , async ( ) => {
724741 await setup ( mediaType , false , false , false , true ) ;
725742
726743 simulateUserMute ( mediaType , true ) ;
727744 muteState . handleLocalStreamMuteStateChange ( meeting ) ;
745+ await testUtils . flushPromises ( ) ;
746+
728747 assert . equal ( muteState . state . client . localMute , true ) ;
729748 assert . called ( MeetingUtil . remoteUpdateAudioVideo ) ;
749+ assert . calledOnceWithExactly ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
730750 } ) ;
731751
732752 it ( 'tests localMute - system mute from true to false' , async ( ) => {
733753 await setup ( mediaType , false , false , true , true ) ;
734754
735755 simulateSystemMute ( mediaType , false ) ;
736756 muteState . handleLocalStreamMuteStateChange ( meeting ) ;
757+ await testUtils . flushPromises ( ) ;
758+
737759 assert . equal ( muteState . state . client . localMute , false ) ;
738760 assert . called ( MeetingUtil . remoteUpdateAudioVideo ) ;
761+ assert . calledOnceWithExactly ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
739762 } ) ;
740763
741764 it ( 'tests localMute - system mute from false to true' , async ( ) => {
742765 await setup ( mediaType , false , false , false , true ) ;
743766
744767 simulateSystemMute ( mediaType , true ) ;
745768 muteState . handleLocalStreamMuteStateChange ( meeting ) ;
769+ await testUtils . flushPromises ( ) ;
770+
746771 assert . equal ( muteState . state . client . localMute , true ) ;
747772 assert . called ( MeetingUtil . remoteUpdateAudioVideo ) ;
773+ assert . calledOnceWithExactly ( MeetingUtil . updateLocusFromApiResponse , meeting , fakeLocusResponse ) ;
748774 } ) ;
749775 } ) ;
750776
0 commit comments