@webex/internal-plugin-avatar 2.59.2 → 2.59.3-next.1

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.
@@ -1,1574 +1,1574 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- import {assert} from '@webex/test-helper-chai';
6
- import Avatar from '@webex/internal-plugin-avatar';
7
- import User from '@webex/internal-plugin-user';
8
- import MockWebex from '@webex/test-helper-mock-webex';
9
- import sinon from 'sinon';
10
-
11
- describe('plugin-avatar', () => {
12
- let avatar;
13
- let webex;
14
-
15
- beforeEach(() => {
16
- webex = new MockWebex({
17
- children: {
18
- avatar: Avatar,
19
- user: User,
20
- },
21
- });
22
- avatar = webex.internal.avatar;
23
- avatar.config.batcherWait = 1500;
24
- avatar.config.batcherMaxCalls = 100;
25
- avatar.config.batcherMaxWait = 100;
26
- avatar.config.defaultMaxAge = 60 * 60;
27
- avatar.config.defaultAvatarSize = 80;
28
- avatar.config.cacheControl = 3600;
29
- avatar.config.sizes = [40, 50, 80, 110, 135, 192, 640, 1600];
30
- });
31
-
32
- describe('#retrieveAvatarUrl()', () => {
33
- it('requires a user identifying object', () =>
34
- Promise.all([
35
- assert.isRejected(avatar.retrieveAvatarUrl(), "'user' is a required parameter"),
36
- ]));
37
-
38
- describe('when retrieving a single item', () => {
39
- it('retrieves an avatar url', () => {
40
- webex.request = sinon.stub().returns(
41
- Promise.resolve({
42
- body: {
43
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
44
- 40: {
45
- size: 40,
46
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
47
- cacheControl: 'public max-age=3600',
48
- },
49
- 50: {
50
- size: 50,
51
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
52
- cacheControl: 'public max-age=3600',
53
- },
54
- 80: {
55
- size: 80,
56
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
57
- cacheControl: 'public max-age=3600',
58
- },
59
- 110: {
60
- size: 110,
61
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
62
- cacheControl: 'public max-age=3600',
63
- },
64
- 135: {
65
- size: 135,
66
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
67
- cacheControl: 'public max-age=3600',
68
- },
69
- 192: {
70
- size: 192,
71
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
72
- cacheControl: 'public max-age=3600',
73
- },
74
- 640: {
75
- size: 640,
76
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
77
- cacheControl: 'public max-age=3600',
78
- },
79
- 1600: {
80
- size: 1600,
81
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
82
- cacheControl: 'public max-age=3600',
83
- },
84
- },
85
- },
86
- statusCode: 200,
87
- options: {
88
- body: [
89
- {
90
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
91
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
92
- },
93
- ],
94
- },
95
- })
96
- );
97
-
98
- return avatar
99
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
100
- .then((result) =>
101
- assert.deepEqual(result, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80')
102
- );
103
- });
104
-
105
- it('fails to retrieve an avatar url', async () => {
106
- avatar._fetchAvatarUrl = jest
107
- .fn()
108
- // eslint-disable-next-line prefer-promise-reject-errors
109
- .mockReturnValue(Promise.reject('fails to retrieve an avatar url'));
110
-
111
- return avatar
112
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
113
- .catch((err) => expect(err).toBe('fails to retrieve an avatar url'));
114
- });
115
-
116
- it('retrieves an avatar url for a non-default size', () => {
117
- webex.request = sinon.stub().returns(
118
- Promise.resolve({
119
- body: {
120
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
121
- 40: {
122
- size: 40,
123
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
124
- cacheControl: 'public max-age=3600',
125
- },
126
- 50: {
127
- size: 50,
128
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
129
- cacheControl: 'public max-age=3600',
130
- },
131
- 80: {
132
- size: 80,
133
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
134
- cacheControl: 'public max-age=3600',
135
- },
136
- 110: {
137
- size: 110,
138
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
139
- cacheControl: 'public max-age=3600',
140
- },
141
- 135: {
142
- size: 135,
143
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
144
- cacheControl: 'public max-age=3600',
145
- },
146
- 192: {
147
- size: 192,
148
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
149
- cacheControl: 'public max-age=3600',
150
- },
151
- 640: {
152
- size: 640,
153
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
154
- cacheControl: 'public max-age=3600',
155
- },
156
- 1600: {
157
- size: 1600,
158
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
159
- cacheControl: 'public max-age=3600',
160
- },
161
- },
162
- },
163
- statusCode: 200,
164
- options: {
165
- body: [
166
- {
167
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
168
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
169
- },
170
- ],
171
- },
172
- })
173
- );
174
-
175
- return avatar
176
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 110})
177
- .then((result) =>
178
- assert.deepEqual(result, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110')
179
- );
180
- });
181
-
182
- it('retrieves an avatar url for a non-standard size', () => {
183
- webex.request = sinon.stub().returns(
184
- Promise.resolve({
185
- body: {
186
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
187
- 35: {
188
- size: 40,
189
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
190
- cacheControl: 'public max-age=3600',
191
- },
192
- 40: {
193
- size: 40,
194
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
195
- cacheControl: 'public max-age=3600',
196
- },
197
- 50: {
198
- size: 50,
199
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
200
- cacheControl: 'public max-age=3600',
201
- },
202
- 80: {
203
- size: 80,
204
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
205
- cacheControl: 'public max-age=3600',
206
- },
207
- 110: {
208
- size: 110,
209
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
210
- cacheControl: 'public max-age=3600',
211
- },
212
- 135: {
213
- size: 135,
214
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
215
- cacheControl: 'public max-age=3600',
216
- },
217
- 192: {
218
- size: 192,
219
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
220
- cacheControl: 'public max-age=3600',
221
- },
222
- 640: {
223
- size: 640,
224
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
225
- cacheControl: 'public max-age=3600',
226
- },
227
- 1600: {
228
- size: 1600,
229
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
230
- cacheControl: 'public max-age=3600',
231
- },
232
- },
233
- },
234
- statusCode: 200,
235
- options: {
236
- body: [
237
- {
238
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
239
- sizes: [35, 40, 50, 80, 110, 135, 192, 640, 1600],
240
- },
241
- ],
242
- },
243
- })
244
- );
245
-
246
- return avatar
247
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 35})
248
- .then((result) =>
249
- assert.deepEqual(result, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40')
250
- );
251
- });
252
-
253
- describe('when options.hideDefaultAvatar is true', () => {
254
- it('returns null if it is a default avatar and options.hideDefaultAvatar is true', () => {
255
- webex.request = sinon.stub().returns(
256
- Promise.resolve({
257
- body: {
258
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
259
- 40: {
260
- size: 40,
261
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
262
- cacheControl: 'public max-age=3600',
263
- defaultAvatar: true,
264
- },
265
- 50: {
266
- size: 50,
267
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
268
- cacheControl: 'public max-age=3600',
269
- defaultAvatar: true,
270
- },
271
- 80: {
272
- size: 80,
273
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
274
- cacheControl: 'public max-age=3600',
275
- defaultAvatar: true,
276
- },
277
- 110: {
278
- size: 110,
279
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
280
- cacheControl: 'public max-age=3600',
281
- defaultAvatar: true,
282
- },
283
- 135: {
284
- size: 135,
285
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
286
- cacheControl: 'public max-age=3600',
287
- defaultAvatar: true,
288
- },
289
- 192: {
290
- size: 192,
291
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
292
- cacheControl: 'public max-age=3600',
293
- defaultAvatar: true,
294
- },
295
- 640: {
296
- size: 640,
297
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
298
- cacheControl: 'public max-age=3600',
299
- defaultAvatar: true,
300
- },
301
- 1600: {
302
- size: 1600,
303
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
304
- cacheControl: 'public max-age=3600',
305
- defaultAvatar: true,
306
- },
307
- },
308
- },
309
- statusCode: 200,
310
- options: {
311
- body: [
312
- {
313
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
314
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
315
- },
316
- ],
317
- },
318
- })
319
- );
320
- const deferred = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {
321
- hideDefaultAvatar: true,
322
- });
323
-
324
- return deferred.then((res) => assert.isNotOk(res));
325
- });
326
-
327
- it('retrieves avatar url if it is not a default avatar and options.hideDefaultAvatar is true', () => {
328
- webex.request = sinon.stub().returns(
329
- Promise.resolve({
330
- body: {
331
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
332
- 40: {
333
- size: 40,
334
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
335
- cacheControl: 'public max-age=3600',
336
- },
337
- 50: {
338
- size: 50,
339
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
340
- cacheControl: 'public max-age=3600',
341
- },
342
- 80: {
343
- size: 80,
344
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
345
- cacheControl: 'public max-age=3600',
346
- },
347
- 110: {
348
- size: 110,
349
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
350
- cacheControl: 'public max-age=3600',
351
- },
352
- 135: {
353
- size: 135,
354
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
355
- cacheControl: 'public max-age=3600',
356
- },
357
- 192: {
358
- size: 192,
359
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
360
- cacheControl: 'public max-age=3600',
361
- },
362
- 640: {
363
- size: 640,
364
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
365
- cacheControl: 'public max-age=3600',
366
- },
367
- 1600: {
368
- size: 1600,
369
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
370
- cacheControl: 'public max-age=3600',
371
- },
372
- },
373
- },
374
- statusCode: 200,
375
- options: {
376
- body: [
377
- {
378
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
379
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
380
- },
381
- ],
382
- },
383
- })
384
- );
385
- const deferred = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {
386
- hideDefaultAvatar: true,
387
- });
388
-
389
- return deferred.then((res) =>
390
- assert.deepEqual(res, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80')
391
- );
392
- });
393
- });
394
- });
395
-
396
- describe('when retrieving multiple items', () => {
397
- it('retrieves a group of avatar urls', () => {
398
- webex.request = sinon.stub().returns(
399
- Promise.resolve({
400
- body: {
401
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
402
- 40: {
403
- size: 40,
404
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
405
- cacheControl: 'public max-age=3600',
406
- },
407
- 50: {
408
- size: 50,
409
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
410
- cacheControl: 'public max-age=3600',
411
- },
412
- 80: {
413
- size: 80,
414
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
415
- cacheControl: 'public max-age=3600',
416
- },
417
- 110: {
418
- size: 110,
419
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
420
- cacheControl: 'public max-age=3600',
421
- },
422
- 135: {
423
- size: 135,
424
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
425
- cacheControl: 'public max-age=3600',
426
- },
427
- 192: {
428
- size: 192,
429
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
430
- cacheControl: 'public max-age=3600',
431
- },
432
- 640: {
433
- size: 640,
434
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
435
- cacheControl: 'public max-age=3600',
436
- },
437
- 1600: {
438
- size: 1600,
439
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
440
- cacheControl: 'public max-age=3600',
441
- },
442
- },
443
- '88888888-4444-4444-4444-aaaaaaaaaaa1': {
444
- 40: {
445
- size: 40,
446
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
447
- cacheControl: 'public max-age=3600',
448
- },
449
- 50: {
450
- size: 50,
451
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
452
- cacheControl: 'public max-age=3600',
453
- },
454
- 80: {
455
- size: 80,
456
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
457
- cacheControl: 'public max-age=3600',
458
- },
459
- 110: {
460
- size: 110,
461
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
462
- cacheControl: 'public max-age=3600',
463
- },
464
- 135: {
465
- size: 135,
466
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
467
- cacheControl: 'public max-age=3600',
468
- },
469
- 192: {
470
- size: 192,
471
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
472
- cacheControl: 'public max-age=3600',
473
- },
474
- 640: {
475
- size: 640,
476
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
477
- cacheControl: 'public max-age=3600',
478
- },
479
- 1600: {
480
- size: 1600,
481
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
482
- cacheControl: 'public max-age=3600',
483
- },
484
- },
485
- },
486
- statusCode: 200,
487
- options: {
488
- body: [
489
- {
490
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
491
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
492
- },
493
- {
494
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
495
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
496
- },
497
- ],
498
- },
499
- })
500
- );
501
-
502
- return Promise.all([
503
- avatar
504
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
505
- .then((result) =>
506
- assert.deepEqual(
507
- result,
508
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
509
- )
510
- ),
511
- avatar
512
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
513
- .then((result) =>
514
- assert.deepEqual(
515
- result,
516
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
517
- )
518
- ),
519
- ]).then(() => {
520
- assert.callCount(webex.request, 1);
521
- });
522
- });
523
-
524
- it('rejects each requested avatar if the api call fails', () => {
525
- // eslint-disable-next-line prefer-promise-reject-errors
526
- avatar._fetchAvatarUrl = jest.fn().mockReturnValue(Promise.reject('api call failed'));
527
-
528
- const a0 = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0');
529
- const a1 = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1');
530
-
531
- return Promise.all([
532
- a1.catch((err) => expect(err).toBe('api call failed')),
533
- a0.catch((err) => expect(err).toBe('api call failed')),
534
- ]).then(() => {
535
- expect(avatar._fetchAvatarUrl).toHaveBeenCalledTimes(2);
536
- });
537
- });
538
-
539
- it.skip('rejects each avatar missing from the response', () => {
540
- webex.request = sinon.stub().returns(Promise.resolve({
541
- body: {
542
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
543
- 40: {
544
- size: 40,
545
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
546
- cacheControl: 'public max-age=3600'
547
- },
548
- },
549
- statusCode: 200,
550
- options: {
551
- body: [
552
- {
553
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
554
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
555
- },
556
- {
557
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
558
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
559
- },
560
- ],
561
- },
562
- }})
563
- );
564
-
565
- return Promise.all([
566
- avatar
567
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
568
- .then((result) =>
569
- assert.deepEqual(
570
- result,
571
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
572
- )
573
- ),
574
- assert.isRejected(
575
- avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1'),
576
- /Failed to retrieve avatar/
577
- ),
578
- ]).then(() => {
579
- assert.callCount(webex.request, 1);
580
- });
581
- });
582
-
583
- it('retrieves avatar urls for homogenous, non-default sizes', () => {
584
- webex.request = sinon.stub().returns(
585
- Promise.resolve({
586
- body: {
587
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
588
- 40: {
589
- size: 40,
590
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
591
- cacheControl: 'public max-age=3600',
592
- },
593
- 50: {
594
- size: 50,
595
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
596
- cacheControl: 'public max-age=3600',
597
- },
598
- 80: {
599
- size: 80,
600
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
601
- cacheControl: 'public max-age=3600',
602
- },
603
- 110: {
604
- size: 110,
605
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
606
- cacheControl: 'public max-age=3600',
607
- },
608
- 135: {
609
- size: 135,
610
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
611
- cacheControl: 'public max-age=3600',
612
- },
613
- 192: {
614
- size: 192,
615
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
616
- cacheControl: 'public max-age=3600',
617
- },
618
- 640: {
619
- size: 640,
620
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
621
- cacheControl: 'public max-age=3600',
622
- },
623
- 1600: {
624
- size: 1600,
625
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
626
- cacheControl: 'public max-age=3600',
627
- },
628
- },
629
- '88888888-4444-4444-4444-aaaaaaaaaaa1': {
630
- 40: {
631
- size: 40,
632
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
633
- cacheControl: 'public max-age=3600',
634
- },
635
- 50: {
636
- size: 50,
637
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
638
- cacheControl: 'public max-age=3600',
639
- },
640
- 80: {
641
- size: 80,
642
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
643
- cacheControl: 'public max-age=3600',
644
- },
645
- 110: {
646
- size: 110,
647
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
648
- cacheControl: 'public max-age=3600',
649
- },
650
- 135: {
651
- size: 135,
652
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
653
- cacheControl: 'public max-age=3600',
654
- },
655
- 192: {
656
- size: 192,
657
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
658
- cacheControl: 'public max-age=3600',
659
- },
660
- 640: {
661
- size: 640,
662
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
663
- cacheControl: 'public max-age=3600',
664
- },
665
- 1600: {
666
- size: 1600,
667
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
668
- cacheControl: 'public max-age=3600',
669
- },
670
- },
671
- },
672
- statusCode: 200,
673
- options: {
674
- body: [
675
- {
676
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
677
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
678
- },
679
- {
680
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
681
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
682
- },
683
- ],
684
- },
685
- })
686
- );
687
-
688
- return Promise.all([
689
- avatar
690
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 40})
691
- .then((result) =>
692
- assert.deepEqual(
693
- result,
694
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40'
695
- )
696
- ),
697
- avatar
698
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 40})
699
- .then((result) =>
700
- assert.deepEqual(
701
- result,
702
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40'
703
- )
704
- ),
705
- ]).then(() => {
706
- assert.callCount(webex.request, 1);
707
- });
708
- });
709
-
710
- it('retrieves avatar urls for heterogneous, non-default sizes', () => {
711
- webex.request = sinon.stub().returns(
712
- Promise.resolve({
713
- body: {
714
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
715
- 40: {
716
- size: 40,
717
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
718
- cacheControl: 'public max-age=3600',
719
- },
720
- 50: {
721
- size: 50,
722
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
723
- cacheControl: 'public max-age=3600',
724
- },
725
- 80: {
726
- size: 80,
727
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
728
- cacheControl: 'public max-age=3600',
729
- },
730
- 110: {
731
- size: 110,
732
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
733
- cacheControl: 'public max-age=3600',
734
- },
735
- 135: {
736
- size: 135,
737
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
738
- cacheControl: 'public max-age=3600',
739
- },
740
- 192: {
741
- size: 192,
742
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
743
- cacheControl: 'public max-age=3600',
744
- },
745
- 640: {
746
- size: 640,
747
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
748
- cacheControl: 'public max-age=3600',
749
- },
750
- 1600: {
751
- size: 1600,
752
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
753
- cacheControl: 'public max-age=3600',
754
- },
755
- },
756
- '88888888-4444-4444-4444-aaaaaaaaaaa1': {
757
- 40: {
758
- size: 40,
759
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
760
- cacheControl: 'public max-age=3600',
761
- },
762
- 50: {
763
- size: 50,
764
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
765
- cacheControl: 'public max-age=3600',
766
- },
767
- 80: {
768
- size: 80,
769
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
770
- cacheControl: 'public max-age=3600',
771
- },
772
- 110: {
773
- size: 110,
774
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
775
- cacheControl: 'public max-age=3600',
776
- },
777
- 135: {
778
- size: 135,
779
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
780
- cacheControl: 'public max-age=3600',
781
- },
782
- 192: {
783
- size: 192,
784
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
785
- cacheControl: 'public max-age=3600',
786
- },
787
- 640: {
788
- size: 640,
789
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
790
- cacheControl: 'public max-age=3600',
791
- },
792
- 1600: {
793
- size: 1600,
794
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
795
- cacheControl: 'public max-age=3600',
796
- },
797
- },
798
- },
799
- statusCode: 200,
800
- options: {
801
- body: [
802
- {
803
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
804
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
805
- },
806
- {
807
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
808
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
809
- },
810
- ],
811
- },
812
- })
813
- );
814
-
815
- return Promise.all([
816
- avatar
817
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 40})
818
- .then((result) =>
819
- assert.deepEqual(
820
- result,
821
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40'
822
- )
823
- ),
824
- avatar
825
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 110})
826
- .then((result) =>
827
- assert.deepEqual(
828
- result,
829
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110'
830
- )
831
- ),
832
- ]).then(() => {
833
- assert.callCount(webex.request, 1);
834
- });
835
- });
836
-
837
- it('retrieves avatar urls for multiple sizes for the same user', () => {
838
- webex.request = sinon.stub().returns(
839
- Promise.resolve({
840
- body: {
841
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
842
- 40: {
843
- size: 40,
844
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
845
- cacheControl: 'public max-age=3600',
846
- },
847
- 50: {
848
- size: 50,
849
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
850
- cacheControl: 'public max-age=3600',
851
- },
852
- 80: {
853
- size: 80,
854
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
855
- cacheControl: 'public max-age=3600',
856
- },
857
- 110: {
858
- size: 110,
859
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
860
- cacheControl: 'public max-age=3600',
861
- },
862
- 135: {
863
- size: 135,
864
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
865
- cacheControl: 'public max-age=3600',
866
- },
867
- 192: {
868
- size: 192,
869
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
870
- cacheControl: 'public max-age=3600',
871
- },
872
- 640: {
873
- size: 640,
874
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
875
- cacheControl: 'public max-age=3600',
876
- },
877
- 1600: {
878
- size: 1600,
879
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
880
- cacheControl: 'public max-age=3600',
881
- },
882
- },
883
- '88888888-4444-4444-4444-aaaaaaaaaaa1': {
884
- 40: {
885
- size: 40,
886
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
887
- cacheControl: 'public max-age=3600',
888
- },
889
- 50: {
890
- size: 50,
891
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
892
- cacheControl: 'public max-age=3600',
893
- },
894
- 80: {
895
- size: 80,
896
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
897
- cacheControl: 'public max-age=3600',
898
- },
899
- 110: {
900
- size: 110,
901
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
902
- cacheControl: 'public max-age=3600',
903
- },
904
- 135: {
905
- size: 135,
906
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
907
- cacheControl: 'public max-age=3600',
908
- },
909
- 192: {
910
- size: 192,
911
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
912
- cacheControl: 'public max-age=3600',
913
- },
914
- 640: {
915
- size: 640,
916
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
917
- cacheControl: 'public max-age=3600',
918
- },
919
- 1600: {
920
- size: 1600,
921
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
922
- cacheControl: 'public max-age=3600',
923
- },
924
- },
925
- },
926
- statusCode: 200,
927
- options: {
928
- body: [
929
- {
930
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
931
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
932
- },
933
- {
934
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
935
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
936
- },
937
- ],
938
- },
939
- })
940
- );
941
-
942
- return Promise.all([
943
- avatar
944
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 40})
945
- .then((result) =>
946
- assert.deepEqual(
947
- result,
948
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40'
949
- )
950
- ),
951
- avatar
952
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 40})
953
- .then((result) =>
954
- assert.deepEqual(
955
- result,
956
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40'
957
- )
958
- ),
959
- avatar
960
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 110})
961
- .then((result) =>
962
- assert.deepEqual(
963
- result,
964
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110'
965
- )
966
- ),
967
- ]).then(() => {
968
- assert.callCount(webex.request, 1);
969
- });
970
- });
971
-
972
- it('retrieves avatar urls for homogenous, non-standard sizes', () => {
973
- webex.request = sinon.stub().returns(
974
- Promise.resolve({
975
- body: {
976
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
977
- 40: {
978
- size: 40,
979
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
980
- cacheControl: 'public max-age=3600',
981
- },
982
- 50: {
983
- size: 50,
984
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
985
- cacheControl: 'public max-age=3600',
986
- },
987
- 80: {
988
- size: 80,
989
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
990
- cacheControl: 'public max-age=3600',
991
- },
992
- 100: {
993
- size: 110,
994
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
995
- cacheControl: 'public max-age=3600',
996
- },
997
- 110: {
998
- size: 110,
999
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
1000
- cacheControl: 'public max-age=3600',
1001
- },
1002
- 135: {
1003
- size: 135,
1004
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
1005
- cacheControl: 'public max-age=3600',
1006
- },
1007
- 192: {
1008
- size: 192,
1009
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
1010
- cacheControl: 'public max-age=3600',
1011
- },
1012
- 640: {
1013
- size: 640,
1014
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
1015
- cacheControl: 'public max-age=3600',
1016
- },
1017
- 1600: {
1018
- size: 1600,
1019
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
1020
- cacheControl: 'public max-age=3600',
1021
- },
1022
- },
1023
- '88888888-4444-4444-4444-aaaaaaaaaaa1': {
1024
- 40: {
1025
- size: 40,
1026
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
1027
- cacheControl: 'public max-age=3600',
1028
- },
1029
- 50: {
1030
- size: 50,
1031
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
1032
- cacheControl: 'public max-age=3600',
1033
- },
1034
- 80: {
1035
- size: 80,
1036
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
1037
- cacheControl: 'public max-age=3600',
1038
- },
1039
- 100: {
1040
- size: 110,
1041
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
1042
- cacheControl: 'public max-age=3600',
1043
- },
1044
- 110: {
1045
- size: 110,
1046
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
1047
- cacheControl: 'public max-age=3600',
1048
- },
1049
- 135: {
1050
- size: 135,
1051
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
1052
- cacheControl: 'public max-age=3600',
1053
- },
1054
- 192: {
1055
- size: 192,
1056
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
1057
- cacheControl: 'public max-age=3600',
1058
- },
1059
- 640: {
1060
- size: 640,
1061
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
1062
- cacheControl: 'public max-age=3600',
1063
- },
1064
- 1600: {
1065
- size: 1600,
1066
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
1067
- cacheControl: 'public max-age=3600',
1068
- },
1069
- },
1070
- },
1071
- statusCode: 200,
1072
- options: {
1073
- body: [
1074
- {
1075
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
1076
- sizes: [40, 50, 80, 100, 110, 135, 192, 640, 1600],
1077
- },
1078
- {
1079
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
1080
- sizes: [40, 50, 80, 100, 110, 135, 192, 640, 1600],
1081
- },
1082
- ],
1083
- },
1084
- })
1085
- );
1086
-
1087
- return Promise.all([
1088
- avatar
1089
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 100})
1090
- .then((result) =>
1091
- assert.deepEqual(
1092
- result,
1093
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110'
1094
- )
1095
- ),
1096
- avatar
1097
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 100})
1098
- .then((result) =>
1099
- assert.deepEqual(
1100
- result,
1101
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110'
1102
- )
1103
- ),
1104
- ]).then(() => {
1105
- assert.callCount(webex.request, 1);
1106
- });
1107
- });
1108
-
1109
- it('retrieves a group of avatar urls (with duplicate requests)', () => {
1110
- webex.request = sinon.stub().returns(
1111
- Promise.resolve({
1112
- body: {
1113
- '88888888-4444-4444-4444-aaaaaaaaaaa0': {
1114
- 40: {
1115
- size: 40,
1116
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
1117
- cacheControl: 'public max-age=3600',
1118
- },
1119
- 50: {
1120
- size: 50,
1121
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
1122
- cacheControl: 'public max-age=3600',
1123
- },
1124
- 80: {
1125
- size: 80,
1126
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
1127
- cacheControl: 'public max-age=3600',
1128
- },
1129
- 110: {
1130
- size: 110,
1131
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
1132
- cacheControl: 'public max-age=3600',
1133
- },
1134
- 135: {
1135
- size: 135,
1136
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
1137
- cacheControl: 'public max-age=3600',
1138
- },
1139
- 192: {
1140
- size: 192,
1141
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
1142
- cacheControl: 'public max-age=3600',
1143
- },
1144
- 640: {
1145
- size: 640,
1146
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
1147
- cacheControl: 'public max-age=3600',
1148
- },
1149
- 1600: {
1150
- size: 1600,
1151
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
1152
- cacheControl: 'public max-age=3600',
1153
- },
1154
- },
1155
- '88888888-4444-4444-4444-aaaaaaaaaaa1': {
1156
- 40: {
1157
- size: 40,
1158
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
1159
- cacheControl: 'public max-age=3600',
1160
- },
1161
- 50: {
1162
- size: 50,
1163
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
1164
- cacheControl: 'public max-age=3600',
1165
- },
1166
- 80: {
1167
- size: 80,
1168
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
1169
- cacheControl: 'public max-age=3600',
1170
- },
1171
- 110: {
1172
- size: 110,
1173
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
1174
- cacheControl: 'public max-age=3600',
1175
- },
1176
- 135: {
1177
- size: 135,
1178
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
1179
- cacheControl: 'public max-age=3600',
1180
- },
1181
- 192: {
1182
- size: 192,
1183
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
1184
- cacheControl: 'public max-age=3600',
1185
- },
1186
- 640: {
1187
- size: 640,
1188
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
1189
- cacheControl: 'public max-age=3600',
1190
- },
1191
- 1600: {
1192
- size: 1600,
1193
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
1194
- cacheControl: 'public max-age=3600',
1195
- },
1196
- },
1197
- '88888888-4444-4444-4444-aaaaaaaaaaa2': {
1198
- 40: {
1199
- size: 40,
1200
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~40',
1201
- cacheControl: 'public max-age=3600',
1202
- },
1203
- 50: {
1204
- size: 50,
1205
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~50',
1206
- cacheControl: 'public max-age=3600',
1207
- },
1208
- 80: {
1209
- size: 80,
1210
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80',
1211
- cacheControl: 'public max-age=3600',
1212
- },
1213
- 110: {
1214
- size: 110,
1215
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~110',
1216
- cacheControl: 'public max-age=3600',
1217
- },
1218
- 135: {
1219
- size: 135,
1220
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~135',
1221
- cacheControl: 'public max-age=3600',
1222
- },
1223
- 192: {
1224
- size: 192,
1225
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~192',
1226
- cacheControl: 'public max-age=3600',
1227
- },
1228
- 640: {
1229
- size: 640,
1230
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~640',
1231
- cacheControl: 'public max-age=3600',
1232
- },
1233
- 1600: {
1234
- size: 1600,
1235
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~1600',
1236
- cacheControl: 'public max-age=3600',
1237
- },
1238
- },
1239
- '88888888-4444-4444-4444-aaaaaaaaaaa3': {
1240
- 40: {
1241
- size: 40,
1242
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~40',
1243
- cacheControl: 'public max-age=3600',
1244
- },
1245
- 50: {
1246
- size: 50,
1247
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~50',
1248
- cacheControl: 'public max-age=3600',
1249
- },
1250
- 80: {
1251
- size: 80,
1252
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~80',
1253
- cacheControl: 'public max-age=3600',
1254
- },
1255
- 110: {
1256
- size: 110,
1257
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~110',
1258
- cacheControl: 'public max-age=3600',
1259
- },
1260
- 135: {
1261
- size: 135,
1262
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~135',
1263
- cacheControl: 'public max-age=3600',
1264
- },
1265
- 192: {
1266
- size: 192,
1267
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~192',
1268
- cacheControl: 'public max-age=3600',
1269
- },
1270
- 640: {
1271
- size: 640,
1272
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~640',
1273
- cacheControl: 'public max-age=3600',
1274
- },
1275
- 1600: {
1276
- size: 1600,
1277
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~1600',
1278
- cacheControl: 'public max-age=3600',
1279
- },
1280
- },
1281
- '88888888-4444-4444-4444-aaaaaaaaaaa4': {
1282
- 40: {
1283
- size: 40,
1284
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~40',
1285
- cacheControl: 'public max-age=3600',
1286
- },
1287
- 50: {
1288
- size: 50,
1289
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~50',
1290
- cacheControl: 'public max-age=3600',
1291
- },
1292
- 80: {
1293
- size: 80,
1294
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80',
1295
- cacheControl: 'public max-age=3600',
1296
- },
1297
- 110: {
1298
- size: 110,
1299
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~110',
1300
- cacheControl: 'public max-age=3600',
1301
- },
1302
- 135: {
1303
- size: 135,
1304
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~135',
1305
- cacheControl: 'public max-age=3600',
1306
- },
1307
- 192: {
1308
- size: 192,
1309
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~192',
1310
- cacheControl: 'public max-age=3600',
1311
- },
1312
- 640: {
1313
- size: 640,
1314
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~640',
1315
- cacheControl: 'public max-age=3600',
1316
- },
1317
- 1600: {
1318
- size: 1600,
1319
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~1600',
1320
- cacheControl: 'public max-age=3600',
1321
- },
1322
- },
1323
- '88888888-4444-4444-4444-aaaaaaaaaaa5': {
1324
- 40: {
1325
- size: 40,
1326
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~40',
1327
- cacheControl: 'public max-age=3600',
1328
- },
1329
- 50: {
1330
- size: 50,
1331
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~50',
1332
- cacheControl: 'public max-age=3600',
1333
- },
1334
- 80: {
1335
- size: 80,
1336
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~80',
1337
- cacheControl: 'public max-age=3600',
1338
- },
1339
- 110: {
1340
- size: 110,
1341
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~110',
1342
- cacheControl: 'public max-age=3600',
1343
- },
1344
- 135: {
1345
- size: 135,
1346
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~135',
1347
- cacheControl: 'public max-age=3600',
1348
- },
1349
- 192: {
1350
- size: 192,
1351
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~192',
1352
- cacheControl: 'public max-age=3600',
1353
- },
1354
- 640: {
1355
- size: 640,
1356
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~640',
1357
- cacheControl: 'public max-age=3600',
1358
- },
1359
- 1600: {
1360
- size: 1600,
1361
- url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~1600',
1362
- cacheControl: 'public max-age=3600',
1363
- },
1364
- },
1365
- },
1366
- statusCode: 200,
1367
- options: {
1368
- body: [
1369
- {
1370
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
1371
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1372
- },
1373
- {
1374
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
1375
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1376
- },
1377
- {
1378
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa2',
1379
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1380
- },
1381
- {
1382
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa3',
1383
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1384
- },
1385
- {
1386
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa4',
1387
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1388
- },
1389
- {
1390
- uuid: '88888888-4444-4444-4444-aaaaaaaaaaa5',
1391
- sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1392
- },
1393
- ],
1394
- },
1395
- })
1396
- );
1397
-
1398
- return Promise.all([
1399
- avatar
1400
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1401
- .then((result) =>
1402
- assert.deepEqual(
1403
- result,
1404
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1405
- )
1406
- ),
1407
- avatar
1408
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1409
- .then((result) =>
1410
- assert.deepEqual(
1411
- result,
1412
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1413
- )
1414
- ),
1415
- avatar
1416
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1417
- .then((result) =>
1418
- assert.deepEqual(
1419
- result,
1420
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1421
- )
1422
- ),
1423
- avatar
1424
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa3')
1425
- .then((result) =>
1426
- assert.deepEqual(
1427
- result,
1428
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~80'
1429
- )
1430
- ),
1431
- avatar
1432
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1433
- .then((result) =>
1434
- assert.deepEqual(
1435
- result,
1436
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1437
- )
1438
- ),
1439
-
1440
- avatar
1441
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1442
- .then((result) =>
1443
- assert.deepEqual(
1444
- result,
1445
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1446
- )
1447
- ),
1448
- avatar
1449
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1450
- .then((result) =>
1451
- assert.deepEqual(
1452
- result,
1453
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1454
- )
1455
- ),
1456
- avatar
1457
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1458
- .then((result) =>
1459
- assert.deepEqual(
1460
- result,
1461
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1462
- )
1463
- ),
1464
- avatar
1465
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1466
- .then((result) =>
1467
- assert.deepEqual(
1468
- result,
1469
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1470
- )
1471
- ),
1472
- avatar
1473
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1474
- .then((result) =>
1475
- assert.deepEqual(
1476
- result,
1477
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1478
- )
1479
- ),
1480
- avatar
1481
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1482
- .then((result) =>
1483
- assert.deepEqual(
1484
- result,
1485
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1486
- )
1487
- ),
1488
- avatar
1489
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1490
- .then((result) =>
1491
- assert.deepEqual(
1492
- result,
1493
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1494
- )
1495
- ),
1496
- avatar
1497
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1498
- .then((result) =>
1499
- assert.deepEqual(
1500
- result,
1501
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1502
- )
1503
- ),
1504
- avatar
1505
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1506
- .then((result) =>
1507
- assert.deepEqual(
1508
- result,
1509
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1510
- )
1511
- ),
1512
- avatar
1513
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1514
- .then((result) =>
1515
- assert.deepEqual(
1516
- result,
1517
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1518
- )
1519
- ),
1520
- avatar
1521
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa3')
1522
- .then((result) =>
1523
- assert.deepEqual(
1524
- result,
1525
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~80'
1526
- )
1527
- ),
1528
- avatar
1529
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1530
- .then((result) =>
1531
- assert.deepEqual(
1532
- result,
1533
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1534
- )
1535
- ),
1536
- avatar
1537
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1538
- .then((result) =>
1539
- assert.deepEqual(
1540
- result,
1541
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1542
- )
1543
- ),
1544
- avatar
1545
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1546
- .then((result) =>
1547
- assert.deepEqual(
1548
- result,
1549
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1550
- )
1551
- ),
1552
- avatar
1553
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1554
- .then((result) =>
1555
- assert.deepEqual(
1556
- result,
1557
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1558
- )
1559
- ),
1560
- avatar
1561
- .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa5')
1562
- .then((result) =>
1563
- assert.deepEqual(
1564
- result,
1565
- 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~80'
1566
- )
1567
- ),
1568
- ]).then(() => {
1569
- assert.callCount(webex.request, 1);
1570
- });
1571
- });
1572
- });
1573
- });
1574
- });
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import {assert} from '@webex/test-helper-chai';
6
+ import Avatar from '@webex/internal-plugin-avatar';
7
+ import User from '@webex/internal-plugin-user';
8
+ import MockWebex from '@webex/test-helper-mock-webex';
9
+ import sinon from 'sinon';
10
+
11
+ describe('plugin-avatar', () => {
12
+ let avatar;
13
+ let webex;
14
+
15
+ beforeEach(() => {
16
+ webex = new MockWebex({
17
+ children: {
18
+ avatar: Avatar,
19
+ user: User,
20
+ },
21
+ });
22
+ avatar = webex.internal.avatar;
23
+ avatar.config.batcherWait = 1500;
24
+ avatar.config.batcherMaxCalls = 100;
25
+ avatar.config.batcherMaxWait = 100;
26
+ avatar.config.defaultMaxAge = 60 * 60;
27
+ avatar.config.defaultAvatarSize = 80;
28
+ avatar.config.cacheControl = 3600;
29
+ avatar.config.sizes = [40, 50, 80, 110, 135, 192, 640, 1600];
30
+ });
31
+
32
+ describe('#retrieveAvatarUrl()', () => {
33
+ it('requires a user identifying object', () =>
34
+ Promise.all([
35
+ assert.isRejected(avatar.retrieveAvatarUrl(), "'user' is a required parameter"),
36
+ ]));
37
+
38
+ describe('when retrieving a single item', () => {
39
+ it('retrieves an avatar url', () => {
40
+ webex.request = sinon.stub().returns(
41
+ Promise.resolve({
42
+ body: {
43
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
44
+ 40: {
45
+ size: 40,
46
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
47
+ cacheControl: 'public max-age=3600',
48
+ },
49
+ 50: {
50
+ size: 50,
51
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
52
+ cacheControl: 'public max-age=3600',
53
+ },
54
+ 80: {
55
+ size: 80,
56
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
57
+ cacheControl: 'public max-age=3600',
58
+ },
59
+ 110: {
60
+ size: 110,
61
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
62
+ cacheControl: 'public max-age=3600',
63
+ },
64
+ 135: {
65
+ size: 135,
66
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
67
+ cacheControl: 'public max-age=3600',
68
+ },
69
+ 192: {
70
+ size: 192,
71
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
72
+ cacheControl: 'public max-age=3600',
73
+ },
74
+ 640: {
75
+ size: 640,
76
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
77
+ cacheControl: 'public max-age=3600',
78
+ },
79
+ 1600: {
80
+ size: 1600,
81
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
82
+ cacheControl: 'public max-age=3600',
83
+ },
84
+ },
85
+ },
86
+ statusCode: 200,
87
+ options: {
88
+ body: [
89
+ {
90
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
91
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
92
+ },
93
+ ],
94
+ },
95
+ })
96
+ );
97
+
98
+ return avatar
99
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
100
+ .then((result) =>
101
+ assert.deepEqual(result, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80')
102
+ );
103
+ });
104
+
105
+ it('fails to retrieve an avatar url', async () => {
106
+ avatar._fetchAvatarUrl = jest
107
+ .fn()
108
+ // eslint-disable-next-line prefer-promise-reject-errors
109
+ .mockReturnValue(Promise.reject('fails to retrieve an avatar url'));
110
+
111
+ return avatar
112
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
113
+ .catch((err) => expect(err).toBe('fails to retrieve an avatar url'));
114
+ });
115
+
116
+ it('retrieves an avatar url for a non-default size', () => {
117
+ webex.request = sinon.stub().returns(
118
+ Promise.resolve({
119
+ body: {
120
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
121
+ 40: {
122
+ size: 40,
123
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
124
+ cacheControl: 'public max-age=3600',
125
+ },
126
+ 50: {
127
+ size: 50,
128
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
129
+ cacheControl: 'public max-age=3600',
130
+ },
131
+ 80: {
132
+ size: 80,
133
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
134
+ cacheControl: 'public max-age=3600',
135
+ },
136
+ 110: {
137
+ size: 110,
138
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
139
+ cacheControl: 'public max-age=3600',
140
+ },
141
+ 135: {
142
+ size: 135,
143
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
144
+ cacheControl: 'public max-age=3600',
145
+ },
146
+ 192: {
147
+ size: 192,
148
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
149
+ cacheControl: 'public max-age=3600',
150
+ },
151
+ 640: {
152
+ size: 640,
153
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
154
+ cacheControl: 'public max-age=3600',
155
+ },
156
+ 1600: {
157
+ size: 1600,
158
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
159
+ cacheControl: 'public max-age=3600',
160
+ },
161
+ },
162
+ },
163
+ statusCode: 200,
164
+ options: {
165
+ body: [
166
+ {
167
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
168
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
169
+ },
170
+ ],
171
+ },
172
+ })
173
+ );
174
+
175
+ return avatar
176
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 110})
177
+ .then((result) =>
178
+ assert.deepEqual(result, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110')
179
+ );
180
+ });
181
+
182
+ it('retrieves an avatar url for a non-standard size', () => {
183
+ webex.request = sinon.stub().returns(
184
+ Promise.resolve({
185
+ body: {
186
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
187
+ 35: {
188
+ size: 40,
189
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
190
+ cacheControl: 'public max-age=3600',
191
+ },
192
+ 40: {
193
+ size: 40,
194
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
195
+ cacheControl: 'public max-age=3600',
196
+ },
197
+ 50: {
198
+ size: 50,
199
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
200
+ cacheControl: 'public max-age=3600',
201
+ },
202
+ 80: {
203
+ size: 80,
204
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
205
+ cacheControl: 'public max-age=3600',
206
+ },
207
+ 110: {
208
+ size: 110,
209
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
210
+ cacheControl: 'public max-age=3600',
211
+ },
212
+ 135: {
213
+ size: 135,
214
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
215
+ cacheControl: 'public max-age=3600',
216
+ },
217
+ 192: {
218
+ size: 192,
219
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
220
+ cacheControl: 'public max-age=3600',
221
+ },
222
+ 640: {
223
+ size: 640,
224
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
225
+ cacheControl: 'public max-age=3600',
226
+ },
227
+ 1600: {
228
+ size: 1600,
229
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
230
+ cacheControl: 'public max-age=3600',
231
+ },
232
+ },
233
+ },
234
+ statusCode: 200,
235
+ options: {
236
+ body: [
237
+ {
238
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
239
+ sizes: [35, 40, 50, 80, 110, 135, 192, 640, 1600],
240
+ },
241
+ ],
242
+ },
243
+ })
244
+ );
245
+
246
+ return avatar
247
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 35})
248
+ .then((result) =>
249
+ assert.deepEqual(result, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40')
250
+ );
251
+ });
252
+
253
+ describe('when options.hideDefaultAvatar is true', () => {
254
+ it('returns null if it is a default avatar and options.hideDefaultAvatar is true', () => {
255
+ webex.request = sinon.stub().returns(
256
+ Promise.resolve({
257
+ body: {
258
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
259
+ 40: {
260
+ size: 40,
261
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
262
+ cacheControl: 'public max-age=3600',
263
+ defaultAvatar: true,
264
+ },
265
+ 50: {
266
+ size: 50,
267
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
268
+ cacheControl: 'public max-age=3600',
269
+ defaultAvatar: true,
270
+ },
271
+ 80: {
272
+ size: 80,
273
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
274
+ cacheControl: 'public max-age=3600',
275
+ defaultAvatar: true,
276
+ },
277
+ 110: {
278
+ size: 110,
279
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
280
+ cacheControl: 'public max-age=3600',
281
+ defaultAvatar: true,
282
+ },
283
+ 135: {
284
+ size: 135,
285
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
286
+ cacheControl: 'public max-age=3600',
287
+ defaultAvatar: true,
288
+ },
289
+ 192: {
290
+ size: 192,
291
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
292
+ cacheControl: 'public max-age=3600',
293
+ defaultAvatar: true,
294
+ },
295
+ 640: {
296
+ size: 640,
297
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
298
+ cacheControl: 'public max-age=3600',
299
+ defaultAvatar: true,
300
+ },
301
+ 1600: {
302
+ size: 1600,
303
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
304
+ cacheControl: 'public max-age=3600',
305
+ defaultAvatar: true,
306
+ },
307
+ },
308
+ },
309
+ statusCode: 200,
310
+ options: {
311
+ body: [
312
+ {
313
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
314
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
315
+ },
316
+ ],
317
+ },
318
+ })
319
+ );
320
+ const deferred = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {
321
+ hideDefaultAvatar: true,
322
+ });
323
+
324
+ return deferred.then((res) => assert.isNotOk(res));
325
+ });
326
+
327
+ it('retrieves avatar url if it is not a default avatar and options.hideDefaultAvatar is true', () => {
328
+ webex.request = sinon.stub().returns(
329
+ Promise.resolve({
330
+ body: {
331
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
332
+ 40: {
333
+ size: 40,
334
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
335
+ cacheControl: 'public max-age=3600',
336
+ },
337
+ 50: {
338
+ size: 50,
339
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
340
+ cacheControl: 'public max-age=3600',
341
+ },
342
+ 80: {
343
+ size: 80,
344
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
345
+ cacheControl: 'public max-age=3600',
346
+ },
347
+ 110: {
348
+ size: 110,
349
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
350
+ cacheControl: 'public max-age=3600',
351
+ },
352
+ 135: {
353
+ size: 135,
354
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
355
+ cacheControl: 'public max-age=3600',
356
+ },
357
+ 192: {
358
+ size: 192,
359
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
360
+ cacheControl: 'public max-age=3600',
361
+ },
362
+ 640: {
363
+ size: 640,
364
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
365
+ cacheControl: 'public max-age=3600',
366
+ },
367
+ 1600: {
368
+ size: 1600,
369
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
370
+ cacheControl: 'public max-age=3600',
371
+ },
372
+ },
373
+ },
374
+ statusCode: 200,
375
+ options: {
376
+ body: [
377
+ {
378
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
379
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
380
+ },
381
+ ],
382
+ },
383
+ })
384
+ );
385
+ const deferred = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {
386
+ hideDefaultAvatar: true,
387
+ });
388
+
389
+ return deferred.then((res) =>
390
+ assert.deepEqual(res, 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80')
391
+ );
392
+ });
393
+ });
394
+ });
395
+
396
+ describe('when retrieving multiple items', () => {
397
+ it('retrieves a group of avatar urls', () => {
398
+ webex.request = sinon.stub().returns(
399
+ Promise.resolve({
400
+ body: {
401
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
402
+ 40: {
403
+ size: 40,
404
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
405
+ cacheControl: 'public max-age=3600',
406
+ },
407
+ 50: {
408
+ size: 50,
409
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
410
+ cacheControl: 'public max-age=3600',
411
+ },
412
+ 80: {
413
+ size: 80,
414
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
415
+ cacheControl: 'public max-age=3600',
416
+ },
417
+ 110: {
418
+ size: 110,
419
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
420
+ cacheControl: 'public max-age=3600',
421
+ },
422
+ 135: {
423
+ size: 135,
424
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
425
+ cacheControl: 'public max-age=3600',
426
+ },
427
+ 192: {
428
+ size: 192,
429
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
430
+ cacheControl: 'public max-age=3600',
431
+ },
432
+ 640: {
433
+ size: 640,
434
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
435
+ cacheControl: 'public max-age=3600',
436
+ },
437
+ 1600: {
438
+ size: 1600,
439
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
440
+ cacheControl: 'public max-age=3600',
441
+ },
442
+ },
443
+ '88888888-4444-4444-4444-aaaaaaaaaaa1': {
444
+ 40: {
445
+ size: 40,
446
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
447
+ cacheControl: 'public max-age=3600',
448
+ },
449
+ 50: {
450
+ size: 50,
451
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
452
+ cacheControl: 'public max-age=3600',
453
+ },
454
+ 80: {
455
+ size: 80,
456
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
457
+ cacheControl: 'public max-age=3600',
458
+ },
459
+ 110: {
460
+ size: 110,
461
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
462
+ cacheControl: 'public max-age=3600',
463
+ },
464
+ 135: {
465
+ size: 135,
466
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
467
+ cacheControl: 'public max-age=3600',
468
+ },
469
+ 192: {
470
+ size: 192,
471
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
472
+ cacheControl: 'public max-age=3600',
473
+ },
474
+ 640: {
475
+ size: 640,
476
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
477
+ cacheControl: 'public max-age=3600',
478
+ },
479
+ 1600: {
480
+ size: 1600,
481
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
482
+ cacheControl: 'public max-age=3600',
483
+ },
484
+ },
485
+ },
486
+ statusCode: 200,
487
+ options: {
488
+ body: [
489
+ {
490
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
491
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
492
+ },
493
+ {
494
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
495
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
496
+ },
497
+ ],
498
+ },
499
+ })
500
+ );
501
+
502
+ return Promise.all([
503
+ avatar
504
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
505
+ .then((result) =>
506
+ assert.deepEqual(
507
+ result,
508
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
509
+ )
510
+ ),
511
+ avatar
512
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
513
+ .then((result) =>
514
+ assert.deepEqual(
515
+ result,
516
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
517
+ )
518
+ ),
519
+ ]).then(() => {
520
+ assert.callCount(webex.request, 1);
521
+ });
522
+ });
523
+
524
+ it('rejects each requested avatar if the api call fails', () => {
525
+ // eslint-disable-next-line prefer-promise-reject-errors
526
+ avatar._fetchAvatarUrl = jest.fn().mockReturnValue(Promise.reject('api call failed'));
527
+
528
+ const a0 = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0');
529
+ const a1 = avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1');
530
+
531
+ return Promise.all([
532
+ a1.catch((err) => expect(err).toBe('api call failed')),
533
+ a0.catch((err) => expect(err).toBe('api call failed')),
534
+ ]).then(() => {
535
+ expect(avatar._fetchAvatarUrl).toHaveBeenCalledTimes(2);
536
+ });
537
+ });
538
+
539
+ it.skip('rejects each avatar missing from the response', () => {
540
+ webex.request = sinon.stub().returns(Promise.resolve({
541
+ body: {
542
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
543
+ 40: {
544
+ size: 40,
545
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
546
+ cacheControl: 'public max-age=3600'
547
+ },
548
+ },
549
+ statusCode: 200,
550
+ options: {
551
+ body: [
552
+ {
553
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
554
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
555
+ },
556
+ {
557
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
558
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
559
+ },
560
+ ],
561
+ },
562
+ }})
563
+ );
564
+
565
+ return Promise.all([
566
+ avatar
567
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
568
+ .then((result) =>
569
+ assert.deepEqual(
570
+ result,
571
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
572
+ )
573
+ ),
574
+ assert.isRejected(
575
+ avatar.retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1'),
576
+ /Failed to retrieve avatar/
577
+ ),
578
+ ]).then(() => {
579
+ assert.callCount(webex.request, 1);
580
+ });
581
+ });
582
+
583
+ it('retrieves avatar urls for homogenous, non-default sizes', () => {
584
+ webex.request = sinon.stub().returns(
585
+ Promise.resolve({
586
+ body: {
587
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
588
+ 40: {
589
+ size: 40,
590
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
591
+ cacheControl: 'public max-age=3600',
592
+ },
593
+ 50: {
594
+ size: 50,
595
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
596
+ cacheControl: 'public max-age=3600',
597
+ },
598
+ 80: {
599
+ size: 80,
600
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
601
+ cacheControl: 'public max-age=3600',
602
+ },
603
+ 110: {
604
+ size: 110,
605
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
606
+ cacheControl: 'public max-age=3600',
607
+ },
608
+ 135: {
609
+ size: 135,
610
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
611
+ cacheControl: 'public max-age=3600',
612
+ },
613
+ 192: {
614
+ size: 192,
615
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
616
+ cacheControl: 'public max-age=3600',
617
+ },
618
+ 640: {
619
+ size: 640,
620
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
621
+ cacheControl: 'public max-age=3600',
622
+ },
623
+ 1600: {
624
+ size: 1600,
625
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
626
+ cacheControl: 'public max-age=3600',
627
+ },
628
+ },
629
+ '88888888-4444-4444-4444-aaaaaaaaaaa1': {
630
+ 40: {
631
+ size: 40,
632
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
633
+ cacheControl: 'public max-age=3600',
634
+ },
635
+ 50: {
636
+ size: 50,
637
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
638
+ cacheControl: 'public max-age=3600',
639
+ },
640
+ 80: {
641
+ size: 80,
642
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
643
+ cacheControl: 'public max-age=3600',
644
+ },
645
+ 110: {
646
+ size: 110,
647
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
648
+ cacheControl: 'public max-age=3600',
649
+ },
650
+ 135: {
651
+ size: 135,
652
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
653
+ cacheControl: 'public max-age=3600',
654
+ },
655
+ 192: {
656
+ size: 192,
657
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
658
+ cacheControl: 'public max-age=3600',
659
+ },
660
+ 640: {
661
+ size: 640,
662
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
663
+ cacheControl: 'public max-age=3600',
664
+ },
665
+ 1600: {
666
+ size: 1600,
667
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
668
+ cacheControl: 'public max-age=3600',
669
+ },
670
+ },
671
+ },
672
+ statusCode: 200,
673
+ options: {
674
+ body: [
675
+ {
676
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
677
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
678
+ },
679
+ {
680
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
681
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
682
+ },
683
+ ],
684
+ },
685
+ })
686
+ );
687
+
688
+ return Promise.all([
689
+ avatar
690
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 40})
691
+ .then((result) =>
692
+ assert.deepEqual(
693
+ result,
694
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40'
695
+ )
696
+ ),
697
+ avatar
698
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 40})
699
+ .then((result) =>
700
+ assert.deepEqual(
701
+ result,
702
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40'
703
+ )
704
+ ),
705
+ ]).then(() => {
706
+ assert.callCount(webex.request, 1);
707
+ });
708
+ });
709
+
710
+ it('retrieves avatar urls for heterogneous, non-default sizes', () => {
711
+ webex.request = sinon.stub().returns(
712
+ Promise.resolve({
713
+ body: {
714
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
715
+ 40: {
716
+ size: 40,
717
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
718
+ cacheControl: 'public max-age=3600',
719
+ },
720
+ 50: {
721
+ size: 50,
722
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
723
+ cacheControl: 'public max-age=3600',
724
+ },
725
+ 80: {
726
+ size: 80,
727
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
728
+ cacheControl: 'public max-age=3600',
729
+ },
730
+ 110: {
731
+ size: 110,
732
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
733
+ cacheControl: 'public max-age=3600',
734
+ },
735
+ 135: {
736
+ size: 135,
737
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
738
+ cacheControl: 'public max-age=3600',
739
+ },
740
+ 192: {
741
+ size: 192,
742
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
743
+ cacheControl: 'public max-age=3600',
744
+ },
745
+ 640: {
746
+ size: 640,
747
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
748
+ cacheControl: 'public max-age=3600',
749
+ },
750
+ 1600: {
751
+ size: 1600,
752
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
753
+ cacheControl: 'public max-age=3600',
754
+ },
755
+ },
756
+ '88888888-4444-4444-4444-aaaaaaaaaaa1': {
757
+ 40: {
758
+ size: 40,
759
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
760
+ cacheControl: 'public max-age=3600',
761
+ },
762
+ 50: {
763
+ size: 50,
764
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
765
+ cacheControl: 'public max-age=3600',
766
+ },
767
+ 80: {
768
+ size: 80,
769
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
770
+ cacheControl: 'public max-age=3600',
771
+ },
772
+ 110: {
773
+ size: 110,
774
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
775
+ cacheControl: 'public max-age=3600',
776
+ },
777
+ 135: {
778
+ size: 135,
779
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
780
+ cacheControl: 'public max-age=3600',
781
+ },
782
+ 192: {
783
+ size: 192,
784
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
785
+ cacheControl: 'public max-age=3600',
786
+ },
787
+ 640: {
788
+ size: 640,
789
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
790
+ cacheControl: 'public max-age=3600',
791
+ },
792
+ 1600: {
793
+ size: 1600,
794
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
795
+ cacheControl: 'public max-age=3600',
796
+ },
797
+ },
798
+ },
799
+ statusCode: 200,
800
+ options: {
801
+ body: [
802
+ {
803
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
804
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
805
+ },
806
+ {
807
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
808
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
809
+ },
810
+ ],
811
+ },
812
+ })
813
+ );
814
+
815
+ return Promise.all([
816
+ avatar
817
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 40})
818
+ .then((result) =>
819
+ assert.deepEqual(
820
+ result,
821
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40'
822
+ )
823
+ ),
824
+ avatar
825
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 110})
826
+ .then((result) =>
827
+ assert.deepEqual(
828
+ result,
829
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110'
830
+ )
831
+ ),
832
+ ]).then(() => {
833
+ assert.callCount(webex.request, 1);
834
+ });
835
+ });
836
+
837
+ it('retrieves avatar urls for multiple sizes for the same user', () => {
838
+ webex.request = sinon.stub().returns(
839
+ Promise.resolve({
840
+ body: {
841
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
842
+ 40: {
843
+ size: 40,
844
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
845
+ cacheControl: 'public max-age=3600',
846
+ },
847
+ 50: {
848
+ size: 50,
849
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
850
+ cacheControl: 'public max-age=3600',
851
+ },
852
+ 80: {
853
+ size: 80,
854
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
855
+ cacheControl: 'public max-age=3600',
856
+ },
857
+ 110: {
858
+ size: 110,
859
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
860
+ cacheControl: 'public max-age=3600',
861
+ },
862
+ 135: {
863
+ size: 135,
864
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
865
+ cacheControl: 'public max-age=3600',
866
+ },
867
+ 192: {
868
+ size: 192,
869
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
870
+ cacheControl: 'public max-age=3600',
871
+ },
872
+ 640: {
873
+ size: 640,
874
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
875
+ cacheControl: 'public max-age=3600',
876
+ },
877
+ 1600: {
878
+ size: 1600,
879
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
880
+ cacheControl: 'public max-age=3600',
881
+ },
882
+ },
883
+ '88888888-4444-4444-4444-aaaaaaaaaaa1': {
884
+ 40: {
885
+ size: 40,
886
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
887
+ cacheControl: 'public max-age=3600',
888
+ },
889
+ 50: {
890
+ size: 50,
891
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
892
+ cacheControl: 'public max-age=3600',
893
+ },
894
+ 80: {
895
+ size: 80,
896
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
897
+ cacheControl: 'public max-age=3600',
898
+ },
899
+ 110: {
900
+ size: 110,
901
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
902
+ cacheControl: 'public max-age=3600',
903
+ },
904
+ 135: {
905
+ size: 135,
906
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
907
+ cacheControl: 'public max-age=3600',
908
+ },
909
+ 192: {
910
+ size: 192,
911
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
912
+ cacheControl: 'public max-age=3600',
913
+ },
914
+ 640: {
915
+ size: 640,
916
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
917
+ cacheControl: 'public max-age=3600',
918
+ },
919
+ 1600: {
920
+ size: 1600,
921
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
922
+ cacheControl: 'public max-age=3600',
923
+ },
924
+ },
925
+ },
926
+ statusCode: 200,
927
+ options: {
928
+ body: [
929
+ {
930
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
931
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
932
+ },
933
+ {
934
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
935
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
936
+ },
937
+ ],
938
+ },
939
+ })
940
+ );
941
+
942
+ return Promise.all([
943
+ avatar
944
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 40})
945
+ .then((result) =>
946
+ assert.deepEqual(
947
+ result,
948
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40'
949
+ )
950
+ ),
951
+ avatar
952
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 40})
953
+ .then((result) =>
954
+ assert.deepEqual(
955
+ result,
956
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40'
957
+ )
958
+ ),
959
+ avatar
960
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 110})
961
+ .then((result) =>
962
+ assert.deepEqual(
963
+ result,
964
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110'
965
+ )
966
+ ),
967
+ ]).then(() => {
968
+ assert.callCount(webex.request, 1);
969
+ });
970
+ });
971
+
972
+ it('retrieves avatar urls for homogenous, non-standard sizes', () => {
973
+ webex.request = sinon.stub().returns(
974
+ Promise.resolve({
975
+ body: {
976
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
977
+ 40: {
978
+ size: 40,
979
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
980
+ cacheControl: 'public max-age=3600',
981
+ },
982
+ 50: {
983
+ size: 50,
984
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
985
+ cacheControl: 'public max-age=3600',
986
+ },
987
+ 80: {
988
+ size: 80,
989
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
990
+ cacheControl: 'public max-age=3600',
991
+ },
992
+ 100: {
993
+ size: 110,
994
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
995
+ cacheControl: 'public max-age=3600',
996
+ },
997
+ 110: {
998
+ size: 110,
999
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
1000
+ cacheControl: 'public max-age=3600',
1001
+ },
1002
+ 135: {
1003
+ size: 135,
1004
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
1005
+ cacheControl: 'public max-age=3600',
1006
+ },
1007
+ 192: {
1008
+ size: 192,
1009
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
1010
+ cacheControl: 'public max-age=3600',
1011
+ },
1012
+ 640: {
1013
+ size: 640,
1014
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
1015
+ cacheControl: 'public max-age=3600',
1016
+ },
1017
+ 1600: {
1018
+ size: 1600,
1019
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
1020
+ cacheControl: 'public max-age=3600',
1021
+ },
1022
+ },
1023
+ '88888888-4444-4444-4444-aaaaaaaaaaa1': {
1024
+ 40: {
1025
+ size: 40,
1026
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
1027
+ cacheControl: 'public max-age=3600',
1028
+ },
1029
+ 50: {
1030
+ size: 50,
1031
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
1032
+ cacheControl: 'public max-age=3600',
1033
+ },
1034
+ 80: {
1035
+ size: 80,
1036
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
1037
+ cacheControl: 'public max-age=3600',
1038
+ },
1039
+ 100: {
1040
+ size: 110,
1041
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
1042
+ cacheControl: 'public max-age=3600',
1043
+ },
1044
+ 110: {
1045
+ size: 110,
1046
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
1047
+ cacheControl: 'public max-age=3600',
1048
+ },
1049
+ 135: {
1050
+ size: 135,
1051
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
1052
+ cacheControl: 'public max-age=3600',
1053
+ },
1054
+ 192: {
1055
+ size: 192,
1056
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
1057
+ cacheControl: 'public max-age=3600',
1058
+ },
1059
+ 640: {
1060
+ size: 640,
1061
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
1062
+ cacheControl: 'public max-age=3600',
1063
+ },
1064
+ 1600: {
1065
+ size: 1600,
1066
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
1067
+ cacheControl: 'public max-age=3600',
1068
+ },
1069
+ },
1070
+ },
1071
+ statusCode: 200,
1072
+ options: {
1073
+ body: [
1074
+ {
1075
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
1076
+ sizes: [40, 50, 80, 100, 110, 135, 192, 640, 1600],
1077
+ },
1078
+ {
1079
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
1080
+ sizes: [40, 50, 80, 100, 110, 135, 192, 640, 1600],
1081
+ },
1082
+ ],
1083
+ },
1084
+ })
1085
+ );
1086
+
1087
+ return Promise.all([
1088
+ avatar
1089
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0', {size: 100})
1090
+ .then((result) =>
1091
+ assert.deepEqual(
1092
+ result,
1093
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110'
1094
+ )
1095
+ ),
1096
+ avatar
1097
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1', {size: 100})
1098
+ .then((result) =>
1099
+ assert.deepEqual(
1100
+ result,
1101
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110'
1102
+ )
1103
+ ),
1104
+ ]).then(() => {
1105
+ assert.callCount(webex.request, 1);
1106
+ });
1107
+ });
1108
+
1109
+ it('retrieves a group of avatar urls (with duplicate requests)', () => {
1110
+ webex.request = sinon.stub().returns(
1111
+ Promise.resolve({
1112
+ body: {
1113
+ '88888888-4444-4444-4444-aaaaaaaaaaa0': {
1114
+ 40: {
1115
+ size: 40,
1116
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~40',
1117
+ cacheControl: 'public max-age=3600',
1118
+ },
1119
+ 50: {
1120
+ size: 50,
1121
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~50',
1122
+ cacheControl: 'public max-age=3600',
1123
+ },
1124
+ 80: {
1125
+ size: 80,
1126
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80',
1127
+ cacheControl: 'public max-age=3600',
1128
+ },
1129
+ 110: {
1130
+ size: 110,
1131
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~110',
1132
+ cacheControl: 'public max-age=3600',
1133
+ },
1134
+ 135: {
1135
+ size: 135,
1136
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~135',
1137
+ cacheControl: 'public max-age=3600',
1138
+ },
1139
+ 192: {
1140
+ size: 192,
1141
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~192',
1142
+ cacheControl: 'public max-age=3600',
1143
+ },
1144
+ 640: {
1145
+ size: 640,
1146
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~640',
1147
+ cacheControl: 'public max-age=3600',
1148
+ },
1149
+ 1600: {
1150
+ size: 1600,
1151
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~1600',
1152
+ cacheControl: 'public max-age=3600',
1153
+ },
1154
+ },
1155
+ '88888888-4444-4444-4444-aaaaaaaaaaa1': {
1156
+ 40: {
1157
+ size: 40,
1158
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~40',
1159
+ cacheControl: 'public max-age=3600',
1160
+ },
1161
+ 50: {
1162
+ size: 50,
1163
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~50',
1164
+ cacheControl: 'public max-age=3600',
1165
+ },
1166
+ 80: {
1167
+ size: 80,
1168
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80',
1169
+ cacheControl: 'public max-age=3600',
1170
+ },
1171
+ 110: {
1172
+ size: 110,
1173
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~110',
1174
+ cacheControl: 'public max-age=3600',
1175
+ },
1176
+ 135: {
1177
+ size: 135,
1178
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~135',
1179
+ cacheControl: 'public max-age=3600',
1180
+ },
1181
+ 192: {
1182
+ size: 192,
1183
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~192',
1184
+ cacheControl: 'public max-age=3600',
1185
+ },
1186
+ 640: {
1187
+ size: 640,
1188
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~640',
1189
+ cacheControl: 'public max-age=3600',
1190
+ },
1191
+ 1600: {
1192
+ size: 1600,
1193
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~1600',
1194
+ cacheControl: 'public max-age=3600',
1195
+ },
1196
+ },
1197
+ '88888888-4444-4444-4444-aaaaaaaaaaa2': {
1198
+ 40: {
1199
+ size: 40,
1200
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~40',
1201
+ cacheControl: 'public max-age=3600',
1202
+ },
1203
+ 50: {
1204
+ size: 50,
1205
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~50',
1206
+ cacheControl: 'public max-age=3600',
1207
+ },
1208
+ 80: {
1209
+ size: 80,
1210
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80',
1211
+ cacheControl: 'public max-age=3600',
1212
+ },
1213
+ 110: {
1214
+ size: 110,
1215
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~110',
1216
+ cacheControl: 'public max-age=3600',
1217
+ },
1218
+ 135: {
1219
+ size: 135,
1220
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~135',
1221
+ cacheControl: 'public max-age=3600',
1222
+ },
1223
+ 192: {
1224
+ size: 192,
1225
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~192',
1226
+ cacheControl: 'public max-age=3600',
1227
+ },
1228
+ 640: {
1229
+ size: 640,
1230
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~640',
1231
+ cacheControl: 'public max-age=3600',
1232
+ },
1233
+ 1600: {
1234
+ size: 1600,
1235
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~1600',
1236
+ cacheControl: 'public max-age=3600',
1237
+ },
1238
+ },
1239
+ '88888888-4444-4444-4444-aaaaaaaaaaa3': {
1240
+ 40: {
1241
+ size: 40,
1242
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~40',
1243
+ cacheControl: 'public max-age=3600',
1244
+ },
1245
+ 50: {
1246
+ size: 50,
1247
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~50',
1248
+ cacheControl: 'public max-age=3600',
1249
+ },
1250
+ 80: {
1251
+ size: 80,
1252
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~80',
1253
+ cacheControl: 'public max-age=3600',
1254
+ },
1255
+ 110: {
1256
+ size: 110,
1257
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~110',
1258
+ cacheControl: 'public max-age=3600',
1259
+ },
1260
+ 135: {
1261
+ size: 135,
1262
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~135',
1263
+ cacheControl: 'public max-age=3600',
1264
+ },
1265
+ 192: {
1266
+ size: 192,
1267
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~192',
1268
+ cacheControl: 'public max-age=3600',
1269
+ },
1270
+ 640: {
1271
+ size: 640,
1272
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~640',
1273
+ cacheControl: 'public max-age=3600',
1274
+ },
1275
+ 1600: {
1276
+ size: 1600,
1277
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~1600',
1278
+ cacheControl: 'public max-age=3600',
1279
+ },
1280
+ },
1281
+ '88888888-4444-4444-4444-aaaaaaaaaaa4': {
1282
+ 40: {
1283
+ size: 40,
1284
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~40',
1285
+ cacheControl: 'public max-age=3600',
1286
+ },
1287
+ 50: {
1288
+ size: 50,
1289
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~50',
1290
+ cacheControl: 'public max-age=3600',
1291
+ },
1292
+ 80: {
1293
+ size: 80,
1294
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80',
1295
+ cacheControl: 'public max-age=3600',
1296
+ },
1297
+ 110: {
1298
+ size: 110,
1299
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~110',
1300
+ cacheControl: 'public max-age=3600',
1301
+ },
1302
+ 135: {
1303
+ size: 135,
1304
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~135',
1305
+ cacheControl: 'public max-age=3600',
1306
+ },
1307
+ 192: {
1308
+ size: 192,
1309
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~192',
1310
+ cacheControl: 'public max-age=3600',
1311
+ },
1312
+ 640: {
1313
+ size: 640,
1314
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~640',
1315
+ cacheControl: 'public max-age=3600',
1316
+ },
1317
+ 1600: {
1318
+ size: 1600,
1319
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~1600',
1320
+ cacheControl: 'public max-age=3600',
1321
+ },
1322
+ },
1323
+ '88888888-4444-4444-4444-aaaaaaaaaaa5': {
1324
+ 40: {
1325
+ size: 40,
1326
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~40',
1327
+ cacheControl: 'public max-age=3600',
1328
+ },
1329
+ 50: {
1330
+ size: 50,
1331
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~50',
1332
+ cacheControl: 'public max-age=3600',
1333
+ },
1334
+ 80: {
1335
+ size: 80,
1336
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~80',
1337
+ cacheControl: 'public max-age=3600',
1338
+ },
1339
+ 110: {
1340
+ size: 110,
1341
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~110',
1342
+ cacheControl: 'public max-age=3600',
1343
+ },
1344
+ 135: {
1345
+ size: 135,
1346
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~135',
1347
+ cacheControl: 'public max-age=3600',
1348
+ },
1349
+ 192: {
1350
+ size: 192,
1351
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~192',
1352
+ cacheControl: 'public max-age=3600',
1353
+ },
1354
+ 640: {
1355
+ size: 640,
1356
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~640',
1357
+ cacheControl: 'public max-age=3600',
1358
+ },
1359
+ 1600: {
1360
+ size: 1600,
1361
+ url: 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~1600',
1362
+ cacheControl: 'public max-age=3600',
1363
+ },
1364
+ },
1365
+ },
1366
+ statusCode: 200,
1367
+ options: {
1368
+ body: [
1369
+ {
1370
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa0',
1371
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1372
+ },
1373
+ {
1374
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa1',
1375
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1376
+ },
1377
+ {
1378
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa2',
1379
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1380
+ },
1381
+ {
1382
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa3',
1383
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1384
+ },
1385
+ {
1386
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa4',
1387
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1388
+ },
1389
+ {
1390
+ uuid: '88888888-4444-4444-4444-aaaaaaaaaaa5',
1391
+ sizes: [40, 50, 80, 110, 135, 192, 640, 1600],
1392
+ },
1393
+ ],
1394
+ },
1395
+ })
1396
+ );
1397
+
1398
+ return Promise.all([
1399
+ avatar
1400
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1401
+ .then((result) =>
1402
+ assert.deepEqual(
1403
+ result,
1404
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1405
+ )
1406
+ ),
1407
+ avatar
1408
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1409
+ .then((result) =>
1410
+ assert.deepEqual(
1411
+ result,
1412
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1413
+ )
1414
+ ),
1415
+ avatar
1416
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1417
+ .then((result) =>
1418
+ assert.deepEqual(
1419
+ result,
1420
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1421
+ )
1422
+ ),
1423
+ avatar
1424
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa3')
1425
+ .then((result) =>
1426
+ assert.deepEqual(
1427
+ result,
1428
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~80'
1429
+ )
1430
+ ),
1431
+ avatar
1432
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1433
+ .then((result) =>
1434
+ assert.deepEqual(
1435
+ result,
1436
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1437
+ )
1438
+ ),
1439
+
1440
+ avatar
1441
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1442
+ .then((result) =>
1443
+ assert.deepEqual(
1444
+ result,
1445
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1446
+ )
1447
+ ),
1448
+ avatar
1449
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1450
+ .then((result) =>
1451
+ assert.deepEqual(
1452
+ result,
1453
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1454
+ )
1455
+ ),
1456
+ avatar
1457
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1458
+ .then((result) =>
1459
+ assert.deepEqual(
1460
+ result,
1461
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1462
+ )
1463
+ ),
1464
+ avatar
1465
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1466
+ .then((result) =>
1467
+ assert.deepEqual(
1468
+ result,
1469
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1470
+ )
1471
+ ),
1472
+ avatar
1473
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1474
+ .then((result) =>
1475
+ assert.deepEqual(
1476
+ result,
1477
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1478
+ )
1479
+ ),
1480
+ avatar
1481
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1482
+ .then((result) =>
1483
+ assert.deepEqual(
1484
+ result,
1485
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1486
+ )
1487
+ ),
1488
+ avatar
1489
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1490
+ .then((result) =>
1491
+ assert.deepEqual(
1492
+ result,
1493
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1494
+ )
1495
+ ),
1496
+ avatar
1497
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1498
+ .then((result) =>
1499
+ assert.deepEqual(
1500
+ result,
1501
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1502
+ )
1503
+ ),
1504
+ avatar
1505
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1506
+ .then((result) =>
1507
+ assert.deepEqual(
1508
+ result,
1509
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1510
+ )
1511
+ ),
1512
+ avatar
1513
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa2')
1514
+ .then((result) =>
1515
+ assert.deepEqual(
1516
+ result,
1517
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa2~80'
1518
+ )
1519
+ ),
1520
+ avatar
1521
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa3')
1522
+ .then((result) =>
1523
+ assert.deepEqual(
1524
+ result,
1525
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa3~80'
1526
+ )
1527
+ ),
1528
+ avatar
1529
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa1')
1530
+ .then((result) =>
1531
+ assert.deepEqual(
1532
+ result,
1533
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa1~80'
1534
+ )
1535
+ ),
1536
+ avatar
1537
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1538
+ .then((result) =>
1539
+ assert.deepEqual(
1540
+ result,
1541
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1542
+ )
1543
+ ),
1544
+ avatar
1545
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa4')
1546
+ .then((result) =>
1547
+ assert.deepEqual(
1548
+ result,
1549
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa4~80'
1550
+ )
1551
+ ),
1552
+ avatar
1553
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa0')
1554
+ .then((result) =>
1555
+ assert.deepEqual(
1556
+ result,
1557
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa0~80'
1558
+ )
1559
+ ),
1560
+ avatar
1561
+ .retrieveAvatarUrl('88888888-4444-4444-4444-aaaaaaaaaaa5')
1562
+ .then((result) =>
1563
+ assert.deepEqual(
1564
+ result,
1565
+ 'https://example.com/88888888-4444-4444-4444-aaaaaaaaaaa5~80'
1566
+ )
1567
+ ),
1568
+ ]).then(() => {
1569
+ assert.callCount(webex.request, 1);
1570
+ });
1571
+ });
1572
+ });
1573
+ });
1574
+ });