@webex/plugin-meetings 3.7.0-next.6 → 3.7.0-next.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/annotation/index.js +17 -0
  2. package/dist/annotation/index.js.map +1 -1
  3. package/dist/breakouts/breakout.js +1 -1
  4. package/dist/breakouts/index.js +1 -1
  5. package/dist/common/errors/join-forbidden-error.js +52 -0
  6. package/dist/common/errors/join-forbidden-error.js.map +1 -0
  7. package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
  8. package/dist/common/errors/join-webinar-error.js.map +1 -0
  9. package/dist/common/errors/multistream-not-supported-error.js +53 -0
  10. package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
  11. package/dist/config.js +1 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/constants.js +46 -5
  14. package/dist/constants.js.map +1 -1
  15. package/dist/index.js +16 -11
  16. package/dist/index.js.map +1 -1
  17. package/dist/interpretation/index.js +1 -1
  18. package/dist/interpretation/siLanguage.js +1 -1
  19. package/dist/locus-info/index.js +14 -3
  20. package/dist/locus-info/index.js.map +1 -1
  21. package/dist/locus-info/selfUtils.js +35 -17
  22. package/dist/locus-info/selfUtils.js.map +1 -1
  23. package/dist/meeting/brbState.js +167 -0
  24. package/dist/meeting/brbState.js.map +1 -0
  25. package/dist/meeting/in-meeting-actions.js +2 -0
  26. package/dist/meeting/in-meeting-actions.js.map +1 -1
  27. package/dist/meeting/index.js +774 -649
  28. package/dist/meeting/index.js.map +1 -1
  29. package/dist/meeting/locusMediaRequest.js +9 -0
  30. package/dist/meeting/locusMediaRequest.js.map +1 -1
  31. package/dist/meeting/muteState.js +1 -6
  32. package/dist/meeting/muteState.js.map +1 -1
  33. package/dist/meeting/request.js +30 -0
  34. package/dist/meeting/request.js.map +1 -1
  35. package/dist/meeting/request.type.js.map +1 -1
  36. package/dist/meeting/util.js +16 -16
  37. package/dist/meeting/util.js.map +1 -1
  38. package/dist/meeting-info/meeting-info-v2.js +96 -33
  39. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  40. package/dist/meeting-info/utilv2.js +1 -1
  41. package/dist/meeting-info/utilv2.js.map +1 -1
  42. package/dist/meetings/index.js +107 -55
  43. package/dist/meetings/index.js.map +1 -1
  44. package/dist/meetings/meetings.types.js +2 -0
  45. package/dist/meetings/meetings.types.js.map +1 -1
  46. package/dist/meetings/util.js +1 -1
  47. package/dist/meetings/util.js.map +1 -1
  48. package/dist/member/index.js +9 -0
  49. package/dist/member/index.js.map +1 -1
  50. package/dist/member/types.js.map +1 -1
  51. package/dist/member/util.js +39 -28
  52. package/dist/member/util.js.map +1 -1
  53. package/dist/metrics/constants.js +3 -2
  54. package/dist/metrics/constants.js.map +1 -1
  55. package/dist/multistream/remoteMedia.js +30 -15
  56. package/dist/multistream/remoteMedia.js.map +1 -1
  57. package/dist/multistream/sendSlotManager.js +24 -0
  58. package/dist/multistream/sendSlotManager.js.map +1 -1
  59. package/dist/reachability/index.js +31 -3
  60. package/dist/reachability/index.js.map +1 -1
  61. package/dist/roap/index.js +10 -8
  62. package/dist/roap/index.js.map +1 -1
  63. package/dist/types/annotation/index.d.ts +5 -0
  64. package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
  65. package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
  66. package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
  67. package/dist/types/constants.d.ts +38 -1
  68. package/dist/types/index.d.ts +3 -3
  69. package/dist/types/locus-info/index.d.ts +2 -1
  70. package/dist/types/meeting/brbState.d.ts +54 -0
  71. package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
  72. package/dist/types/meeting/index.d.ts +21 -12
  73. package/dist/types/meeting/locusMediaRequest.d.ts +4 -0
  74. package/dist/types/meeting/request.d.ts +12 -1
  75. package/dist/types/meeting/request.type.d.ts +6 -0
  76. package/dist/types/meeting/util.d.ts +1 -1
  77. package/dist/types/meeting-info/meeting-info-v2.d.ts +27 -4
  78. package/dist/types/meetings/index.d.ts +19 -1
  79. package/dist/types/meetings/meetings.types.d.ts +8 -0
  80. package/dist/types/member/index.d.ts +1 -0
  81. package/dist/types/member/types.d.ts +7 -0
  82. package/dist/types/metrics/constants.d.ts +2 -1
  83. package/dist/types/multistream/sendSlotManager.d.ts +8 -1
  84. package/dist/types/reachability/index.d.ts +9 -1
  85. package/dist/webinar/index.js +354 -3
  86. package/dist/webinar/index.js.map +1 -1
  87. package/package.json +23 -22
  88. package/src/annotation/index.ts +16 -0
  89. package/src/common/errors/join-forbidden-error.ts +26 -0
  90. package/src/common/errors/join-webinar-error.ts +24 -0
  91. package/src/common/errors/multistream-not-supported-error.ts +30 -0
  92. package/src/config.ts +1 -1
  93. package/src/constants.ts +43 -3
  94. package/src/index.ts +5 -3
  95. package/src/locus-info/index.ts +20 -3
  96. package/src/locus-info/selfUtils.ts +24 -6
  97. package/src/meeting/brbState.ts +169 -0
  98. package/src/meeting/in-meeting-actions.ts +4 -0
  99. package/src/meeting/index.ts +256 -82
  100. package/src/meeting/locusMediaRequest.ts +7 -0
  101. package/src/meeting/muteState.ts +1 -6
  102. package/src/meeting/request.ts +26 -1
  103. package/src/meeting/request.type.ts +7 -0
  104. package/src/meeting/util.ts +8 -10
  105. package/src/meeting-info/meeting-info-v2.ts +74 -11
  106. package/src/meeting-info/utilv2.ts +3 -1
  107. package/src/meetings/index.ts +79 -20
  108. package/src/meetings/meetings.types.ts +10 -0
  109. package/src/meetings/util.ts +2 -1
  110. package/src/member/index.ts +9 -0
  111. package/src/member/types.ts +8 -0
  112. package/src/member/util.ts +34 -24
  113. package/src/metrics/constants.ts +2 -1
  114. package/src/multistream/remoteMedia.ts +28 -15
  115. package/src/multistream/sendSlotManager.ts +31 -0
  116. package/src/reachability/index.ts +29 -1
  117. package/src/roap/index.ts +10 -8
  118. package/src/webinar/index.ts +197 -3
  119. package/test/unit/spec/annotation/index.ts +46 -1
  120. package/test/unit/spec/locus-info/index.js +292 -60
  121. package/test/unit/spec/locus-info/selfConstant.js +7 -0
  122. package/test/unit/spec/locus-info/selfUtils.js +101 -1
  123. package/test/unit/spec/meeting/brbState.ts +114 -0
  124. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
  125. package/test/unit/spec/meeting/index.js +733 -106
  126. package/test/unit/spec/meeting/muteState.js +0 -24
  127. package/test/unit/spec/meeting/utils.js +22 -19
  128. package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
  129. package/test/unit/spec/meeting-info/utilv2.js +17 -0
  130. package/test/unit/spec/meetings/index.js +159 -18
  131. package/test/unit/spec/meetings/utils.js +10 -0
  132. package/test/unit/spec/member/util.js +52 -11
  133. package/test/unit/spec/multistream/remoteMedia.ts +11 -7
  134. package/test/unit/spec/reachability/index.ts +120 -10
  135. package/test/unit/spec/roap/index.ts +47 -0
  136. package/test/unit/spec/webinar/index.ts +457 -0
  137. package/dist/common/errors/webinar-registration-error.js.map +0 -1
  138. package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -0,0 +1,114 @@
1
+ import sinon from 'sinon';
2
+ import {assert} from '@webex/test-helper-chai';
3
+
4
+ import testUtils from '../../../utils/testUtils';
5
+ import {BrbState, createBrbState} from '@webex/plugin-meetings/src/meeting/brbState';
6
+
7
+ describe('plugin-meetings', () => {
8
+ let meeting: any;
9
+ let brbState: BrbState;
10
+
11
+ beforeEach(async () => {
12
+ meeting = {
13
+ isMultistream: true,
14
+ locusUrl: 'locus url',
15
+ deviceUrl: 'device url',
16
+ selfId: 'self id',
17
+ mediaProperties: {
18
+ webrtcMediaConnection: true,
19
+ },
20
+ sendSlotManager: {
21
+ setSourceStateOverride: sinon.stub(),
22
+ },
23
+ meetingRequest: {
24
+ setBrb: sinon.stub().resolves(),
25
+ },
26
+ };
27
+
28
+ brbState = new BrbState(meeting, false);
29
+ await testUtils.flushPromises();
30
+ });
31
+
32
+ describe('brbState library', () => {
33
+ it('takes into account current status when instantiated', async () => {
34
+ // create a new BrbState instance
35
+ brbState = createBrbState(meeting, true);
36
+ await testUtils.flushPromises();
37
+
38
+ assert.isTrue(brbState.state.client.enabled);
39
+
40
+ // now check the opposite case
41
+ brbState = createBrbState(meeting, false);
42
+ await testUtils.flushPromises();
43
+
44
+ assert.isFalse(brbState.state.client.enabled);
45
+ });
46
+
47
+ it('can be enabled', async () => {
48
+ brbState.enable(true, meeting.sendSlotManager);
49
+ brbState.handleServerBrbUpdate(true);
50
+ await testUtils.flushPromises();
51
+
52
+ assert.isTrue(brbState.state.client.enabled);
53
+ assert.isTrue(brbState.state.server.enabled);
54
+ });
55
+
56
+ it('can be disabled', async () => {
57
+ brbState.enable(false, meeting.sendSlotManager);
58
+ brbState.handleServerBrbUpdate(false);
59
+ await testUtils.flushPromises();
60
+
61
+ assert.isFalse(brbState.state.client.enabled);
62
+ assert.isFalse(brbState.state.server.enabled);
63
+ });
64
+
65
+ it('does not send local brb state to server if it is not a multistream meeting', async () => {
66
+ meeting.isMultistream = false;
67
+ brbState.enable(true, meeting.sendSlotManager);
68
+ brbState.handleServerBrbUpdate(true);
69
+ await testUtils.flushPromises();
70
+
71
+ assert.isTrue(meeting.meetingRequest.setBrb.notCalled);
72
+ });
73
+
74
+ it('does not send local brb state to server if webrtc media connection is not defined', async () => {
75
+ meeting.mediaProperties.webrtcMediaConnection = undefined;
76
+ brbState.enable(true, meeting.sendSlotManager);
77
+ brbState.handleServerBrbUpdate(true);
78
+ await testUtils.flushPromises();
79
+
80
+ assert.isTrue(meeting.meetingRequest.setBrb.notCalled);
81
+ });
82
+
83
+ it('does not send request twice when in progress', async () => {
84
+ brbState.state.syncToServerInProgress = true;
85
+ brbState.enable(true, meeting.sendSlotManager);
86
+ await testUtils.flushPromises();
87
+
88
+ assert.isTrue(meeting.meetingRequest.setBrb.notCalled);
89
+ });
90
+
91
+ it('syncs with server when client state does not match server state', async () => {
92
+ brbState.enable(true, meeting.sendSlotManager);
93
+ brbState.handleServerBrbUpdate(true);
94
+ await testUtils.flushPromises();
95
+
96
+ assert.isTrue(meeting.meetingRequest.setBrb.calledOnce);
97
+ });
98
+
99
+ it('sets source state override when client state does not match server state', async () => {
100
+ brbState.enable(true, meeting.sendSlotManager);
101
+ brbState.handleServerBrbUpdate(true);
102
+ await testUtils.flushPromises();
103
+
104
+ assert.isTrue(meeting.sendSlotManager.setSourceStateOverride.calledOnce);
105
+ });
106
+
107
+ it('handles server update', async () => {
108
+ brbState.handleServerBrbUpdate(true);
109
+ await testUtils.flushPromises();
110
+
111
+ assert.isTrue(brbState.state.server.enabled);
112
+ });
113
+ });
114
+ });
@@ -42,6 +42,7 @@ describe('plugin-meetings', () => {
42
42
  waitingForOthersToJoin: null,
43
43
  canSendReactions: null,
44
44
  canManageBreakout: null,
45
+ canStartBreakout: null,
45
46
  canBroadcastMessageToBreakout: null,
46
47
  canAdmitLobbyToBreakout: null,
47
48
  canUserAskForHelp: null,
@@ -141,6 +142,7 @@ describe('plugin-meetings', () => {
141
142
  'waitingForOthersToJoin',
142
143
  'canSendReactions',
143
144
  'canManageBreakout',
145
+ 'canStartBreakout',
144
146
  'canBroadcastMessageToBreakout',
145
147
  'canAdmitLobbyToBreakout',
146
148
  'canUserAskForHelp',