@webex/plugin-meetings 3.12.0-next.9 → 3.12.0-next.90

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 (213) hide show
  1. package/AGENTS.md +9 -0
  2. package/dist/aiEnableRequest/index.js +15 -2
  3. package/dist/aiEnableRequest/index.js.map +1 -1
  4. package/dist/breakouts/breakout.js +8 -3
  5. package/dist/breakouts/breakout.js.map +1 -1
  6. package/dist/breakouts/index.js +26 -2
  7. package/dist/breakouts/index.js.map +1 -1
  8. package/dist/config.js +2 -2
  9. package/dist/config.js.map +1 -1
  10. package/dist/constants.js +35 -9
  11. package/dist/constants.js.map +1 -1
  12. package/dist/controls-options-manager/constants.js +11 -1
  13. package/dist/controls-options-manager/constants.js.map +1 -1
  14. package/dist/controls-options-manager/index.js +67 -29
  15. package/dist/controls-options-manager/index.js.map +1 -1
  16. package/dist/controls-options-manager/util.js +91 -0
  17. package/dist/controls-options-manager/util.js.map +1 -1
  18. package/dist/hashTree/constants.js +13 -1
  19. package/dist/hashTree/constants.js.map +1 -1
  20. package/dist/hashTree/hashTreeParser.js +880 -382
  21. package/dist/hashTree/hashTreeParser.js.map +1 -1
  22. package/dist/hashTree/utils.js +42 -0
  23. package/dist/hashTree/utils.js.map +1 -1
  24. package/dist/index.js +7 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/interceptors/dataChannelAuthToken.js +75 -15
  27. package/dist/interceptors/dataChannelAuthToken.js.map +1 -1
  28. package/dist/interceptors/locusRetry.js +23 -8
  29. package/dist/interceptors/locusRetry.js.map +1 -1
  30. package/dist/interpretation/index.js +10 -1
  31. package/dist/interpretation/index.js.map +1 -1
  32. package/dist/interpretation/interpretation.types.js +7 -0
  33. package/dist/interpretation/interpretation.types.js.map +1 -0
  34. package/dist/interpretation/siLanguage.js +1 -1
  35. package/dist/locus-info/controlsUtils.js +4 -1
  36. package/dist/locus-info/controlsUtils.js.map +1 -1
  37. package/dist/locus-info/index.js +303 -88
  38. package/dist/locus-info/index.js.map +1 -1
  39. package/dist/locus-info/infoUtils.js +36 -5
  40. package/dist/locus-info/infoUtils.js.map +1 -1
  41. package/dist/locus-info/types.js +19 -0
  42. package/dist/locus-info/types.js.map +1 -1
  43. package/dist/media/index.js +3 -1
  44. package/dist/media/index.js.map +1 -1
  45. package/dist/media/properties.js +1 -0
  46. package/dist/media/properties.js.map +1 -1
  47. package/dist/meeting/in-meeting-actions.js +5 -1
  48. package/dist/meeting/in-meeting-actions.js.map +1 -1
  49. package/dist/meeting/index.js +1233 -793
  50. package/dist/meeting/index.js.map +1 -1
  51. package/dist/meeting/locusMediaRequest.js +229 -82
  52. package/dist/meeting/locusMediaRequest.js.map +1 -1
  53. package/dist/meeting/muteState.js +10 -1
  54. package/dist/meeting/muteState.js.map +1 -1
  55. package/dist/meeting/request.js +5 -2
  56. package/dist/meeting/request.js.map +1 -1
  57. package/dist/meeting/util.js +35 -2
  58. package/dist/meeting/util.js.map +1 -1
  59. package/dist/meeting-info/meeting-info-v2.js +2 -2
  60. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  61. package/dist/meetings/index.js +231 -118
  62. package/dist/meetings/index.js.map +1 -1
  63. package/dist/meetings/meetings.types.js +6 -1
  64. package/dist/meetings/meetings.types.js.map +1 -1
  65. package/dist/meetings/request.js +39 -0
  66. package/dist/meetings/request.js.map +1 -1
  67. package/dist/meetings/util.js +79 -5
  68. package/dist/meetings/util.js.map +1 -1
  69. package/dist/member/index.js +10 -0
  70. package/dist/member/index.js.map +1 -1
  71. package/dist/member/types.js.map +1 -1
  72. package/dist/member/util.js +30 -0
  73. package/dist/member/util.js.map +1 -1
  74. package/dist/members/index.js +101 -43
  75. package/dist/members/index.js.map +1 -1
  76. package/dist/members/util.js +8 -1
  77. package/dist/members/util.js.map +1 -1
  78. package/dist/metrics/constants.js +5 -1
  79. package/dist/metrics/constants.js.map +1 -1
  80. package/dist/multistream/codec/constants.js +63 -0
  81. package/dist/multistream/codec/constants.js.map +1 -0
  82. package/dist/multistream/mediaRequestManager.js +62 -15
  83. package/dist/multistream/mediaRequestManager.js.map +1 -1
  84. package/dist/multistream/receiveSlot.js +9 -0
  85. package/dist/multistream/receiveSlot.js.map +1 -1
  86. package/dist/reachability/index.js +10 -13
  87. package/dist/reachability/index.js.map +1 -1
  88. package/dist/reachability/reachability.types.js +2 -0
  89. package/dist/reachability/reachability.types.js.map +1 -1
  90. package/dist/reachability/util.js +45 -0
  91. package/dist/reachability/util.js.map +1 -1
  92. package/dist/reactions/reactions.type.js.map +1 -1
  93. package/dist/recording-controller/index.js +1 -3
  94. package/dist/recording-controller/index.js.map +1 -1
  95. package/dist/types/config.d.ts +2 -2
  96. package/dist/types/constants.d.ts +12 -1
  97. package/dist/types/controls-options-manager/constants.d.ts +6 -1
  98. package/dist/types/controls-options-manager/index.d.ts +16 -0
  99. package/dist/types/hashTree/constants.d.ts +2 -0
  100. package/dist/types/hashTree/hashTreeParser.d.ts +146 -17
  101. package/dist/types/hashTree/utils.d.ts +18 -0
  102. package/dist/types/index.d.ts +3 -0
  103. package/dist/types/interceptors/locusRetry.d.ts +4 -4
  104. package/dist/types/interpretation/interpretation.types.d.ts +10 -0
  105. package/dist/types/locus-info/index.d.ts +50 -6
  106. package/dist/types/locus-info/infoUtils.d.ts +8 -0
  107. package/dist/types/locus-info/types.d.ts +21 -1
  108. package/dist/types/media/properties.d.ts +1 -0
  109. package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
  110. package/dist/types/meeting/index.d.ts +94 -7
  111. package/dist/types/meeting/locusMediaRequest.d.ts +12 -0
  112. package/dist/types/meeting/request.d.ts +1 -0
  113. package/dist/types/meeting/util.d.ts +9 -0
  114. package/dist/types/meetings/index.d.ts +30 -18
  115. package/dist/types/meetings/meetings.types.d.ts +15 -0
  116. package/dist/types/meetings/request.d.ts +14 -0
  117. package/dist/types/member/index.d.ts +1 -0
  118. package/dist/types/member/types.d.ts +1 -0
  119. package/dist/types/member/util.d.ts +9 -0
  120. package/dist/types/members/index.d.ts +15 -2
  121. package/dist/types/members/util.d.ts +1 -5
  122. package/dist/types/metrics/constants.d.ts +4 -0
  123. package/dist/types/multistream/codec/constants.d.ts +7 -0
  124. package/dist/types/multistream/mediaRequestManager.d.ts +22 -5
  125. package/dist/types/reachability/index.d.ts +1 -1
  126. package/dist/types/reachability/reachability.types.d.ts +7 -0
  127. package/dist/types/reachability/util.d.ts +17 -0
  128. package/dist/types/reactions/reactions.type.d.ts +3 -0
  129. package/dist/webinar/index.js +305 -159
  130. package/dist/webinar/index.js.map +1 -1
  131. package/package.json +22 -22
  132. package/src/aiEnableRequest/index.ts +16 -0
  133. package/src/breakouts/breakout.ts +3 -1
  134. package/src/breakouts/index.ts +31 -0
  135. package/src/config.ts +2 -2
  136. package/src/constants.ts +20 -3
  137. package/src/controls-options-manager/constants.ts +14 -1
  138. package/src/controls-options-manager/index.ts +87 -28
  139. package/src/controls-options-manager/util.ts +81 -1
  140. package/src/hashTree/constants.ts +16 -0
  141. package/src/hashTree/hashTreeParser.ts +580 -196
  142. package/src/hashTree/utils.ts +36 -0
  143. package/src/index.ts +6 -0
  144. package/src/interceptors/dataChannelAuthToken.ts +88 -12
  145. package/src/interceptors/locusRetry.ts +25 -4
  146. package/src/interpretation/index.ts +27 -9
  147. package/src/interpretation/interpretation.types.ts +11 -0
  148. package/src/locus-info/controlsUtils.ts +3 -1
  149. package/src/locus-info/index.ts +304 -100
  150. package/src/locus-info/infoUtils.ts +41 -6
  151. package/src/locus-info/types.ts +25 -1
  152. package/src/media/index.ts +3 -0
  153. package/src/media/properties.ts +1 -0
  154. package/src/meeting/in-meeting-actions.ts +8 -0
  155. package/src/meeting/index.ts +494 -67
  156. package/src/meeting/locusMediaRequest.ts +106 -6
  157. package/src/meeting/muteState.ts +10 -1
  158. package/src/meeting/request.ts +11 -0
  159. package/src/meeting/util.ts +47 -5
  160. package/src/meeting-info/meeting-info-v2.ts +4 -2
  161. package/src/meetings/index.ts +133 -78
  162. package/src/meetings/meetings.types.ts +19 -0
  163. package/src/meetings/request.ts +43 -0
  164. package/src/meetings/util.ts +97 -1
  165. package/src/member/index.ts +10 -0
  166. package/src/member/types.ts +1 -0
  167. package/src/member/util.ts +29 -0
  168. package/src/members/index.ts +70 -7
  169. package/src/members/util.ts +12 -4
  170. package/src/metrics/constants.ts +4 -0
  171. package/src/multistream/codec/constants.ts +58 -0
  172. package/src/multistream/mediaRequestManager.ts +119 -28
  173. package/src/multistream/receiveSlot.ts +18 -0
  174. package/src/reachability/index.ts +19 -15
  175. package/src/reachability/reachability.types.ts +11 -0
  176. package/src/reachability/util.ts +36 -0
  177. package/src/reactions/reactions.type.ts +3 -0
  178. package/src/recording-controller/index.ts +1 -2
  179. package/src/webinar/index.ts +214 -36
  180. package/test/unit/spec/aiEnableRequest/index.ts +86 -0
  181. package/test/unit/spec/breakouts/breakout.ts +9 -3
  182. package/test/unit/spec/breakouts/index.ts +49 -0
  183. package/test/unit/spec/controls-options-manager/index.js +244 -29
  184. package/test/unit/spec/controls-options-manager/util.js +165 -0
  185. package/test/unit/spec/hashTree/hashTreeParser.ts +1838 -180
  186. package/test/unit/spec/hashTree/utils.ts +125 -1
  187. package/test/unit/spec/interceptors/dataChannelAuthToken.ts +196 -0
  188. package/test/unit/spec/interceptors/locusRetry.ts +205 -4
  189. package/test/unit/spec/interpretation/index.ts +26 -4
  190. package/test/unit/spec/locus-info/controlsUtils.js +172 -57
  191. package/test/unit/spec/locus-info/index.js +499 -81
  192. package/test/unit/spec/locus-info/infoUtils.js +184 -1
  193. package/test/unit/spec/media/index.ts +31 -0
  194. package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
  195. package/test/unit/spec/meeting/index.js +1615 -42
  196. package/test/unit/spec/meeting/locusMediaRequest.ts +302 -4
  197. package/test/unit/spec/meeting/muteState.js +81 -0
  198. package/test/unit/spec/meeting/request.js +12 -0
  199. package/test/unit/spec/meeting/utils.js +157 -1
  200. package/test/unit/spec/meeting-info/meetinginfov2.js +19 -10
  201. package/test/unit/spec/meetings/index.js +363 -36
  202. package/test/unit/spec/meetings/request.js +141 -0
  203. package/test/unit/spec/meetings/utils.js +189 -0
  204. package/test/unit/spec/member/index.js +7 -0
  205. package/test/unit/spec/member/util.js +89 -0
  206. package/test/unit/spec/members/index.js +216 -0
  207. package/test/unit/spec/members/request.js +37 -1
  208. package/test/unit/spec/members/utils.js +63 -0
  209. package/test/unit/spec/multistream/mediaRequestManager.ts +501 -37
  210. package/test/unit/spec/reachability/index.ts +59 -46
  211. package/test/unit/spec/reachability/util.ts +31 -0
  212. package/test/unit/spec/recording-controller/index.js +9 -8
  213. package/test/unit/spec/webinar/index.ts +329 -28
@@ -1,3 +1,4 @@
1
+ import 'jsdom-global/register';
1
2
  import {assert} from '@webex/test-helper-chai';
2
3
  import MockWebex from '@webex/test-helper-mock-webex';
3
4
  import { CapabilityState, WebCapabilities } from '@webex/web-capabilities';
@@ -63,6 +64,13 @@ describe('isAnyPublicClusterReachable', () => {
63
64
  );
64
65
  });
65
66
 
67
+ it('returns false when only xtls is reachable', async () => {
68
+ await checkIsClusterReachable(
69
+ {x: {udp: {result: 'unreachable'}, tcp: {result: 'unreachable'}, xtls: {result: 'reachable'}}},
70
+ false
71
+ );
72
+ });
73
+
66
74
  it('returns false when both tcp and udp are unreachable', async () => {
67
75
  await checkIsClusterReachable(
68
76
  {x: {udp: {result: 'unreachable'}, tcp: {result: 'unreachable'}}},
@@ -70,6 +78,13 @@ describe('isAnyPublicClusterReachable', () => {
70
78
  );
71
79
  });
72
80
 
81
+ it('returns false when udp, tcp and xtls are all unreachable', async () => {
82
+ await checkIsClusterReachable(
83
+ {x: {udp: {result: 'unreachable'}, tcp: {result: 'unreachable'}, xtls: {result: 'unreachable'}}},
84
+ false
85
+ );
86
+ });
87
+
73
88
  it('returns false when reachability result is empty', async () => {
74
89
  await checkIsClusterReachable({x: {}}, false);
75
90
  });
@@ -510,10 +525,7 @@ describe('gatherReachability', () => {
510
525
  return mockInstance;
511
526
  });
512
527
 
513
- webex.config.meetings.experimental = {
514
- enableTcpReachability: false,
515
- enableTlsReachability: false,
516
- };
528
+ webex.config.meetings.enableReachabilityChecks = {tcp: false, tls: false};
517
529
  });
518
530
 
519
531
  afterEach(() => {
@@ -1229,10 +1241,7 @@ describe('gatherReachability', () => {
1229
1241
  expectedMetrics,
1230
1242
  }) =>
1231
1243
  it(`works correctly for the case: ${title}`, async () => {
1232
- webex.config.meetings.experimental = {
1233
- enableTcpReachability: true,
1234
- enableTlsReachability: true,
1235
- };
1244
+ webex.config.meetings.enableReachabilityChecks = true;
1236
1245
 
1237
1246
  // the metrics related to ipver and trigger are not tested in these tests and are all the same, so setting them up here
1238
1247
  const expectedMetricsFull = {
@@ -1367,10 +1376,7 @@ describe('gatherReachability', () => {
1367
1376
  });
1368
1377
 
1369
1378
  it(`starts ip network version detection and includes the results in the metrics`, async () => {
1370
- webex.config.meetings.experimental = {
1371
- enableTcpReachability: true,
1372
- enableTlsReachability: true,
1373
- };
1379
+ webex.config.meetings.enableReachabilityChecks = true;
1374
1380
  webex.internal.device.ipNetworkDetector = {
1375
1381
  supportsIpV4: true,
1376
1382
  supportsIpV6: true,
@@ -1447,10 +1453,7 @@ describe('gatherReachability', () => {
1447
1453
  });
1448
1454
 
1449
1455
  it('keeps updating reachability results after the 3s public cloud timeout expires', async () => {
1450
- webex.config.meetings.experimental = {
1451
- enableTcpReachability: true,
1452
- enableTlsReachability: true,
1453
- };
1456
+ webex.config.meetings.enableReachabilityChecks = true;
1454
1457
 
1455
1458
  const reachability = new Reachability(webex);
1456
1459
 
@@ -1546,10 +1549,7 @@ describe('gatherReachability', () => {
1546
1549
  });
1547
1550
 
1548
1551
  it('handles clientMediaIpsUpdated event by updating clientMediaIps in results', async () => {
1549
- webex.config.meetings.experimental = {
1550
- enableTcpReachability: true,
1551
- enableTlsReachability: true,
1552
- };
1552
+ webex.config.meetings.enableReachabilityChecks = true;
1553
1553
 
1554
1554
  const reachability = new Reachability(webex);
1555
1555
 
@@ -1634,10 +1634,7 @@ describe('gatherReachability', () => {
1634
1634
  });
1635
1635
 
1636
1636
  it('starts ClusterReachability on each media cluster', async () => {
1637
- webex.config.meetings.experimental = {
1638
- enableTcpReachability: true,
1639
- enableTlsReachability: true,
1640
- };
1637
+ webex.config.meetings.enableReachabilityChecks = true;
1641
1638
 
1642
1639
  const getClustersResult = {
1643
1640
  clusters: {
@@ -1686,10 +1683,7 @@ describe('gatherReachability', () => {
1686
1683
  });
1687
1684
 
1688
1685
  it('does not do TCP reachability if it is disabled in config', async () => {
1689
- webex.config.meetings.experimental = {
1690
- enableTcpReachability: false,
1691
- enableTlsReachability: true,
1692
- };
1686
+ webex.config.meetings.enableReachabilityChecks = {tcp: false, tls: true};
1693
1687
 
1694
1688
  const getClustersResult = {
1695
1689
  clusters: {
@@ -1720,10 +1714,7 @@ describe('gatherReachability', () => {
1720
1714
  });
1721
1715
 
1722
1716
  it('does not do TLS reachability if it is disabled in config', async () => {
1723
- webex.config.meetings.experimental = {
1724
- enableTcpReachability: true,
1725
- enableTlsReachability: false,
1726
- };
1717
+ webex.config.meetings.enableReachabilityChecks = {tcp: true, tls: false};
1727
1718
 
1728
1719
  const getClustersResult = {
1729
1720
  clusters: {
@@ -1755,10 +1746,7 @@ describe('gatherReachability', () => {
1755
1746
  });
1756
1747
 
1757
1748
  it('does not do TCP or TLS reachability if it is disabled in config', async () => {
1758
- webex.config.meetings.experimental = {
1759
- enableTcpReachability: false,
1760
- enableTlsReachability: false,
1761
- };
1749
+ webex.config.meetings.enableReachabilityChecks = {tcp: false, tls: false};
1762
1750
 
1763
1751
  const getClustersResult = {
1764
1752
  clusters: {
@@ -1789,12 +1777,40 @@ describe('gatherReachability', () => {
1789
1777
  }, undefined);
1790
1778
  });
1791
1779
 
1792
- it('retry of getClusters is succesfull', async () => {
1793
- webex.config.meetings.experimental = {
1794
- enableTcpReachability: true,
1795
- enableTlsReachability: false,
1780
+ it('does UDP, TCP and TLS reachability by default (enableReachabilityChecks=true)', async () => {
1781
+ webex.config.meetings.enableReachabilityChecks = true;
1782
+
1783
+ const getClustersResult = {
1784
+ clusters: {
1785
+ 'cluster name': {
1786
+ udp: ['testUDP1', 'testUDP2'],
1787
+ tcp: ['testTCP1', 'testTCP2'],
1788
+ xtls: ['testXTLS1', 'testXTLS2'],
1789
+ isVideoMesh: false,
1790
+ },
1791
+ },
1792
+ joinCookie: {id: 'id'},
1796
1793
  };
1797
1794
 
1795
+ const reachability = new Reachability(webex);
1796
+
1797
+ reachability.reachabilityRequest.getClusters = sinon.stub().returns(getClustersResult);
1798
+
1799
+ const promise = reachability.gatherReachability('test');
1800
+ await simulateTimeout();
1801
+ await promise;
1802
+
1803
+ assert.calledOnceWithExactly(clusterReachabilityCtorStub, 'cluster name', {
1804
+ isVideoMesh: false,
1805
+ udp: ['testUDP1', 'testUDP2'],
1806
+ tcp: ['testTCP1', 'testTCP2'],
1807
+ xtls: ['testXTLS1', 'testXTLS2'],
1808
+ }, undefined);
1809
+ });
1810
+
1811
+ it('retry of getClusters is succesfull', async () => {
1812
+ webex.config.meetings.enableReachabilityChecks = {tcp: true, tls: false};
1813
+
1798
1814
  const getClustersResult = {
1799
1815
  clusters: {
1800
1816
  'cluster name': {
@@ -1866,10 +1882,7 @@ describe('gatherReachability', () => {
1866
1882
  };
1867
1883
 
1868
1884
  beforeEach(() => {
1869
- webex.config.meetings.experimental = {
1870
- enableTcpReachability: true,
1871
- enableTlsReachability: true,
1872
- };
1885
+ webex.config.meetings.enableReachabilityChecks = true;
1873
1886
 
1874
1887
  receivedEvents = {
1875
1888
  done: 0,
@@ -2133,7 +2146,7 @@ describe('gatherReachability', () => {
2133
2146
  receivedEvents[event] = receivedEvents[event] + 1 || 1;
2134
2147
  });
2135
2148
  };
2136
-
2149
+
2137
2150
  it('works as expected', async () => {
2138
2151
  setListener('reachability:stopped');
2139
2152
  setListener('reachability:done');
@@ -2948,4 +2961,4 @@ describe('isSubnetReachable', () => {
2948
2961
  it(`returns false if the subnet is unreachable`, () => {
2949
2962
  assert(!reachability.isSubnetReachable('11'));
2950
2963
  });
2951
- });
2964
+ });
@@ -3,9 +3,40 @@ import {assert} from '@webex/test-helper-chai';
3
3
  import {
4
4
  convertStunUrlToTurn,
5
5
  convertStunUrlToTurnTls,
6
+ isReachabilityEnabled,
7
+ resolveReachabilityProtocols,
6
8
  } from '@webex/plugin-meetings/src/reachability/util';
7
9
 
8
10
  describe('plugin-meetings/src/reachability/util', () => {
11
+ describe('#resolveReachabilityProtocols()', () => {
12
+ [
13
+ {title: 'undefined defaults to all enabled', config: undefined, expected: {udp: true, tcp: true, tls: true}},
14
+ {title: 'true enables all protocols', config: true, expected: {udp: true, tcp: true, tls: true}},
15
+ {title: 'false disables all protocols', config: false, expected: {udp: false, tcp: false, tls: false}},
16
+ {title: 'empty object keeps udp on and defaults tcp/tls to enabled', config: {}, expected: {udp: true, tcp: true, tls: true}},
17
+ {title: 'object can disable tcp', config: {tcp: false}, expected: {udp: true, tcp: false, tls: true}},
18
+ {title: 'object can disable tls', config: {tls: false}, expected: {udp: true, tcp: true, tls: false}},
19
+ {title: 'object can disable both tcp and tls but udp stays on', config: {tcp: false, tls: false}, expected: {udp: true, tcp: false, tls: false}},
20
+ ].forEach(({title, config, expected}) => {
21
+ it(`resolves: ${title}`, () => {
22
+ assert.deepEqual(resolveReachabilityProtocols(config as any), expected);
23
+ });
24
+ });
25
+ });
26
+
27
+ describe('#isReachabilityEnabled()', () => {
28
+ [
29
+ {title: 'undefined', config: undefined, expected: true},
30
+ {title: 'true', config: true, expected: true},
31
+ {title: 'false', config: false, expected: false},
32
+ {title: 'object disabling tcp and tls (udp still on)', config: {tcp: false, tls: false}, expected: true},
33
+ ].forEach(({title, config, expected}) => {
34
+ it(`returns ${expected} for ${title}`, () => {
35
+ assert.equal(isReachabilityEnabled(config as any), expected);
36
+ });
37
+ });
38
+ });
39
+
9
40
  describe('#convertStunUrlToTurn()', () => {
10
41
  [
11
42
  {
@@ -35,6 +35,7 @@ describe('plugin-meetings', () => {
35
35
  beforeEach(() => {
36
36
  request = {
37
37
  request: sinon.stub().returns(Promise.resolve()),
38
+ locusDeltaRequest: sinon.stub().returns(Promise.resolve()),
38
39
  };
39
40
 
40
41
  controller = new RecordingController(request);
@@ -69,13 +70,13 @@ describe('plugin-meetings', () => {
69
70
 
70
71
  const result = controller.startRecording();
71
72
 
72
- assert.calledWith(request.request, {
73
+ assert.calledWith(request.locusDeltaRequest, {
73
74
  uri: `${locusUrl}/controls`,
74
75
  body: {record: {recording: true, paused: false}},
75
76
  method: HTTP_VERBS.PATCH,
76
77
  });
77
78
 
78
- assert.deepEqual(result, request.request.firstCall.returnValue);
79
+ assert.deepEqual(result, request.locusDeltaRequest.firstCall.returnValue);
79
80
  });
80
81
  });
81
82
 
@@ -103,13 +104,13 @@ describe('plugin-meetings', () => {
103
104
 
104
105
  const result = controller.stopRecording();
105
106
 
106
- assert.calledWith(request.request, {
107
+ assert.calledWith(request.locusDeltaRequest, {
107
108
  uri: `${locusUrl}/controls`,
108
109
  body: {record: {recording: false, paused: false}},
109
110
  method: HTTP_VERBS.PATCH,
110
111
  });
111
112
 
112
- assert.deepEqual(result, request.request.firstCall.returnValue);
113
+ assert.deepEqual(result, request.locusDeltaRequest.firstCall.returnValue);
113
114
  });
114
115
  });
115
116
 
@@ -139,13 +140,13 @@ describe('plugin-meetings', () => {
139
140
 
140
141
  const result = controller.pauseRecording();
141
142
 
142
- assert.calledWith(request.request, {
143
+ assert.calledWith(request.locusDeltaRequest, {
143
144
  uri: `${locusUrl}/controls`,
144
145
  body: {record: {recording: true, paused: true}},
145
146
  method: HTTP_VERBS.PATCH,
146
147
  });
147
148
 
148
- assert.deepEqual(result, request.request.firstCall.returnValue);
149
+ assert.deepEqual(result, request.locusDeltaRequest.firstCall.returnValue);
149
150
  });
150
151
  });
151
152
 
@@ -176,13 +177,13 @@ describe('plugin-meetings', () => {
176
177
 
177
178
  const result = controller.resumeRecording();
178
179
 
179
- assert.calledWith(request.request, {
180
+ assert.calledWith(request.locusDeltaRequest, {
180
181
  uri: `${locusUrl}/controls`,
181
182
  body: {record: {recording: true, paused: false}},
182
183
  method: HTTP_VERBS.PATCH,
183
184
  });
184
185
 
185
- assert.deepEqual(result, request.request.firstCall.returnValue);
186
+ assert.deepEqual(result, request.locusDeltaRequest.firstCall.returnValue);
186
187
  });
187
188
  });
188
189
  });