@webex/plugin-meetings 3.0.0-beta.115 → 3.0.0-beta.117
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.
- package/dist/breakouts/breakout.js +23 -6
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/index.js +178 -139
- package/dist/breakouts/index.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +15 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/meeting/index.js +73 -103
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +3 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +1 -1
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +27 -20
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +463 -426
- package/dist/meeting/util.js.map +1 -1
- package/dist/members/index.js +4 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +75 -45
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +308 -317
- package/dist/members/util.js.map +1 -1
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/meeting/index.d.ts +20 -21
- package/dist/types/meeting/locusMediaRequest.d.ts +2 -0
- package/dist/types/meeting/request.d.ts +16 -8
- package/dist/types/meeting/util.d.ts +75 -1
- package/dist/types/members/request.d.ts +56 -11
- package/dist/types/members/util.d.ts +209 -1
- package/package.json +19 -19
- package/src/breakouts/breakout.ts +26 -4
- package/src/breakouts/index.ts +32 -17
- package/src/constants.ts +1 -0
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/meeting/index.ts +20 -42
- package/src/meeting/locusMediaRequest.ts +6 -0
- package/src/meeting/muteState.ts +1 -1
- package/src/meeting/request.ts +26 -17
- package/src/meeting/util.ts +446 -410
- package/src/members/index.ts +7 -1
- package/src/members/request.ts +61 -21
- package/src/members/util.ts +316 -326
- package/test/unit/spec/breakouts/breakout.ts +26 -7
- package/test/unit/spec/breakouts/index.ts +48 -3
- package/test/unit/spec/meeting/index.js +53 -33
- package/test/unit/spec/meeting/locusMediaRequest.ts +25 -3
- package/test/unit/spec/meeting/muteState.js +5 -2
- package/test/unit/spec/meeting/request.js +215 -42
- package/test/unit/spec/meeting/utils.js +151 -7
- package/test/unit/spec/members/index.js +22 -1
- package/test/unit/spec/members/request.js +167 -35
|
@@ -8,6 +8,7 @@ import Meetings from '@webex/plugin-meetings';
|
|
|
8
8
|
import MembersRequest from '@webex/plugin-meetings/src/members/request';
|
|
9
9
|
import membersUtil from '@webex/plugin-meetings/src/members/util';
|
|
10
10
|
import ParameterError from '@webex/plugin-meetings/src/common/errors/parameter';
|
|
11
|
+
import { merge } from 'lodash';
|
|
11
12
|
|
|
12
13
|
const {assert} = chai;
|
|
13
14
|
|
|
@@ -18,6 +19,10 @@ describe('plugin-meetings', () => {
|
|
|
18
19
|
let membersRequest;
|
|
19
20
|
let url1;
|
|
20
21
|
let sandbox;
|
|
22
|
+
const sequence = {some: 'sequenceData'};
|
|
23
|
+
const requestResponse = {some: 'data'};
|
|
24
|
+
let locusDeltaRequestSpy;
|
|
25
|
+
const correlationId = '12345';
|
|
21
26
|
|
|
22
27
|
beforeEach(() => {
|
|
23
28
|
const webex = new MockWebex({
|
|
@@ -28,21 +33,43 @@ describe('plugin-meetings', () => {
|
|
|
28
33
|
|
|
29
34
|
sandbox = sinon.createSandbox();
|
|
30
35
|
|
|
36
|
+
sinon.stub(uuid, 'v4').returns(correlationId);
|
|
37
|
+
|
|
31
38
|
url1 = `https://example.com/${uuid.v4()}`;
|
|
32
39
|
|
|
40
|
+
const request = sinon.mock().returns(Promise.resolve(requestResponse));
|
|
41
|
+
|
|
33
42
|
membersRequest = new MembersRequest(
|
|
34
|
-
{
|
|
43
|
+
{
|
|
44
|
+
meeting: {
|
|
45
|
+
request,
|
|
46
|
+
locusInfo: {
|
|
47
|
+
sequence,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
35
51
|
{
|
|
36
52
|
parent: webex,
|
|
37
53
|
}
|
|
38
54
|
);
|
|
39
|
-
|
|
55
|
+
locusDeltaRequestSpy = sinon.spy(membersRequest, 'locusDeltaRequest');
|
|
56
|
+
|
|
57
|
+
membersRequest.request = request;
|
|
40
58
|
});
|
|
41
59
|
|
|
42
60
|
afterEach(() => {
|
|
43
61
|
sandbox.restore();
|
|
62
|
+
uuid.v4.restore();
|
|
44
63
|
});
|
|
45
64
|
|
|
65
|
+
const checkRequest = (expectedParams) => {
|
|
66
|
+
assert.calledOnceWithExactly(locusDeltaRequestSpy, expectedParams);
|
|
67
|
+
assert.calledOnceWithExactly(
|
|
68
|
+
membersRequest.request,
|
|
69
|
+
merge(expectedParams, {body: {sequence}})
|
|
70
|
+
);
|
|
71
|
+
};
|
|
72
|
+
|
|
46
73
|
describe('members request library', () => {
|
|
47
74
|
describe('#sendDialPadKey', () => {
|
|
48
75
|
it('sends a POST to the sendDtmf locus endpoint', async () => {
|
|
@@ -57,12 +84,22 @@ describe('plugin-meetings', () => {
|
|
|
57
84
|
memberId,
|
|
58
85
|
locusUrl,
|
|
59
86
|
});
|
|
60
|
-
const requestParams = membersRequest.request.getCall(0).args[0];
|
|
61
87
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
88
|
+
checkRequest({
|
|
89
|
+
method: 'POST',
|
|
90
|
+
uri: `${locusUrl}/participant/${memberId}/sendDtmf`,
|
|
91
|
+
body: {
|
|
92
|
+
memberId,
|
|
93
|
+
dtmf: {
|
|
94
|
+
direction: 'transmit',
|
|
95
|
+
correlationId,
|
|
96
|
+
tones,
|
|
97
|
+
},
|
|
98
|
+
device: {
|
|
99
|
+
url,
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
66
103
|
});
|
|
67
104
|
});
|
|
68
105
|
|
|
@@ -76,11 +113,91 @@ describe('plugin-meetings', () => {
|
|
|
76
113
|
};
|
|
77
114
|
|
|
78
115
|
await membersRequest.addMembers(options);
|
|
79
|
-
const requestParams = membersRequest.request.getCall(0).args[0];
|
|
80
116
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
117
|
+
checkRequest({
|
|
118
|
+
method: 'PUT',
|
|
119
|
+
uri: url1,
|
|
120
|
+
body: {
|
|
121
|
+
alertIfActive: undefined,
|
|
122
|
+
invitees: [{address: '+18578675309'}]
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
describe('#admitMember', () => {
|
|
129
|
+
it('sends a request to admit members', async () => {
|
|
130
|
+
const options = {
|
|
131
|
+
locusUrl: url1,
|
|
132
|
+
memberIds: ['1', '2'],
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
await membersRequest.admitMember(options)
|
|
136
|
+
|
|
137
|
+
checkRequest({
|
|
138
|
+
method: 'PUT',
|
|
139
|
+
uri: 'https://example.com/12345/controls',
|
|
140
|
+
body: {
|
|
141
|
+
admit: {
|
|
142
|
+
participantIds: options.memberIds
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
describe('#removeMember', () => {
|
|
150
|
+
it('sends a request to remove a member', async () => {
|
|
151
|
+
const options = {
|
|
152
|
+
locusUrl: url1,
|
|
153
|
+
memberId: 'member1',
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
await membersRequest.removeMember(options);
|
|
157
|
+
|
|
158
|
+
checkRequest({
|
|
159
|
+
method: 'PUT',
|
|
160
|
+
uri: 'https://example.com/12345/participant/member1/leave',
|
|
161
|
+
body: {
|
|
162
|
+
reason: undefined
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
describe('#muteMember', () => {
|
|
169
|
+
it('sends a request to mute a member', async () => {
|
|
170
|
+
const options = {
|
|
171
|
+
locusUrl: url1,
|
|
172
|
+
memberId: 'member1',
|
|
173
|
+
muted: true,
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
await membersRequest.muteMember(options);
|
|
177
|
+
|
|
178
|
+
checkRequest({
|
|
179
|
+
method: 'PATCH',
|
|
180
|
+
uri: 'https://example.com/12345/participant/member1/controls',
|
|
181
|
+
body: {audio: {muted: true}},
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
describe('#transferHostToMember', () => {
|
|
187
|
+
it('sends a request to transfer host to a member', async () => {
|
|
188
|
+
const options = {
|
|
189
|
+
locusUrl: url1,
|
|
190
|
+
memberId: 'member1',
|
|
191
|
+
moderator: true,
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
await membersRequest.transferHostToMember(options);
|
|
195
|
+
|
|
196
|
+
checkRequest({
|
|
197
|
+
method: 'PATCH',
|
|
198
|
+
uri: 'https://example.com/12345/participant/member1/controls',
|
|
199
|
+
body: {role: {moderator: true}},
|
|
200
|
+
});
|
|
84
201
|
});
|
|
85
202
|
});
|
|
86
203
|
|
|
@@ -94,12 +211,15 @@ describe('plugin-meetings', () => {
|
|
|
94
211
|
};
|
|
95
212
|
|
|
96
213
|
await membersRequest.cancelPhoneInvite(options);
|
|
97
|
-
const requestParams = membersRequest.request.getCall(0).args[0];
|
|
98
214
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
215
|
+
checkRequest({
|
|
216
|
+
method: 'PUT',
|
|
217
|
+
uri: url1,
|
|
218
|
+
body: {
|
|
219
|
+
invitees: [{address: '+18578675309'}],
|
|
220
|
+
actionType: 'REMOVE',
|
|
221
|
+
},
|
|
222
|
+
});
|
|
103
223
|
});
|
|
104
224
|
});
|
|
105
225
|
|
|
@@ -120,11 +240,16 @@ describe('plugin-meetings', () => {
|
|
|
120
240
|
};
|
|
121
241
|
|
|
122
242
|
await membersRequest.assignRolesMember(options);
|
|
123
|
-
const requestParams = membersRequest.request.getCall(0).args[0];
|
|
124
243
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
244
|
+
checkRequest({
|
|
245
|
+
method: 'PATCH',
|
|
246
|
+
uri: `${locusUrl}/participant/${memberId}/controls`,
|
|
247
|
+
body: {
|
|
248
|
+
role: {
|
|
249
|
+
roles
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
});
|
|
128
253
|
});
|
|
129
254
|
});
|
|
130
255
|
|
|
@@ -140,11 +265,16 @@ describe('plugin-meetings', () => {
|
|
|
140
265
|
};
|
|
141
266
|
|
|
142
267
|
await membersRequest.raiseOrLowerHandMember(options);
|
|
143
|
-
const requestParams = membersRequest.request.getCall(0).args[0];
|
|
144
268
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
269
|
+
checkRequest({
|
|
270
|
+
method: 'PATCH',
|
|
271
|
+
uri: `${locusUrl}/participant/${memberId}/controls`,
|
|
272
|
+
body: {
|
|
273
|
+
hand: {
|
|
274
|
+
raised: true
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
});
|
|
148
278
|
});
|
|
149
279
|
});
|
|
150
280
|
|
|
@@ -183,10 +313,9 @@ describe('plugin-meetings', () => {
|
|
|
183
313
|
locusUrl,
|
|
184
314
|
};
|
|
185
315
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
);
|
|
316
|
+
const result = await membersRequest.lowerAllHandsMember(options);
|
|
317
|
+
|
|
318
|
+
assert.strictEqual(result, requestResponse);
|
|
190
319
|
});
|
|
191
320
|
|
|
192
321
|
it('sends a PATCH to the locus endpoint', async () => {
|
|
@@ -207,9 +336,7 @@ describe('plugin-meetings', () => {
|
|
|
207
336
|
locusUrl: url1,
|
|
208
337
|
});
|
|
209
338
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
assert.deepEqual(requestParams, {
|
|
339
|
+
checkRequest({
|
|
213
340
|
method: 'PATCH',
|
|
214
341
|
uri: `${locusUrl}/controls`,
|
|
215
342
|
body: {
|
|
@@ -232,15 +359,20 @@ describe('plugin-meetings', () => {
|
|
|
232
359
|
const options = {
|
|
233
360
|
memberId,
|
|
234
361
|
requestingParticipantId,
|
|
235
|
-
aliasValue,
|
|
362
|
+
alias: aliasValue,
|
|
236
363
|
locusUrl,
|
|
237
364
|
};
|
|
238
365
|
|
|
239
366
|
await membersRequest.editDisplayNameMember(options);
|
|
240
|
-
const requestParams = membersRequest.request.getCall(0).args[0];
|
|
241
367
|
|
|
242
|
-
|
|
243
|
-
|
|
368
|
+
checkRequest({
|
|
369
|
+
method: 'POST',
|
|
370
|
+
uri: `${locusUrl}/participant/${memberId}/alias`,
|
|
371
|
+
body: {
|
|
372
|
+
aliasValue,
|
|
373
|
+
requestingParticipantId,
|
|
374
|
+
}
|
|
375
|
+
});
|
|
244
376
|
});
|
|
245
377
|
});
|
|
246
378
|
});
|