@@ -39,9 +39,9 @@ describe("Accessibility", () => {
39
39
cy . mount (
40
40
< div >
41
41
< Avatar interactive disabled initials = "JD" id = "diabled-avatar" onClick = { increment } >
42
- < Tag slot = "badge" >
43
- < Icon slot = "icon" name = "accelerated" > </ Icon >
44
- </ Tag >
42
+ < Tag slot = "badge" >
43
+ < Icon slot = "icon" name = "accelerated" > </ Icon >
44
+ </ Tag >
45
45
</ Avatar >
46
46
< input value = "0" id = "click-event" />
47
47
</ div >
@@ -306,3 +306,198 @@ describe("Fallback Logic", () => {
306
306
. should ( "have.class" , "ui5-avatar-fallback-icon-hidden" ) ;
307
307
} ) ;
308
308
} ) ;
309
+
310
+ describe ( "Avatar Rendering and Interaction" , ( ) => {
311
+ it ( "tests rendering of image" , ( ) => {
312
+ cy . mount (
313
+ < Avatar >
314
+ < img src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==" alt = "Woman image" />
315
+ </ Avatar >
316
+ ) ;
317
+
318
+ cy . get ( "[ui5-avatar]" )
319
+ . shadow ( )
320
+ . find ( ".ui5-avatar-root slot:not([name])" )
321
+ . should ( "exist" ) ;
322
+
323
+ cy . get ( "[ui5-avatar]" )
324
+ . shadow ( )
325
+ . find ( "ui5-avatar-icon" )
326
+ . should ( "not.exist" ) ;
327
+ } ) ;
328
+
329
+ it ( "tests rendering of icon" , ( ) => {
330
+ cy . mount (
331
+ < Avatar icon = "filter" > </ Avatar >
332
+ ) ;
333
+
334
+ cy . get ( "[ui5-avatar]" )
335
+ . shadow ( )
336
+ . find ( ".ui5-avatar-icon" )
337
+ . should ( "exist" ) ;
338
+
339
+ cy . get ( "[ui5-avatar]" )
340
+ . shadow ( )
341
+ . find ( "slot:not([name])" )
342
+ . should ( "not.exist" ) ;
343
+ } ) ;
344
+
345
+ it ( "tests rendering of image, when all set" , ( ) => {
346
+ cy . mount (
347
+ < Avatar icon = "filter" initials = "SF" >
348
+ < img src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==" alt = "Woman image" />
349
+ </ Avatar >
350
+ ) ;
351
+
352
+ cy . get ( "[ui5-avatar]" )
353
+ . shadow ( )
354
+ . find ( ".ui5-avatar-root slot:not([name])" )
355
+ . should ( "exist" ) ;
356
+
357
+ cy . get ( "[ui5-avatar]" )
358
+ . shadow ( )
359
+ . find ( ".ui5-avatar-icon" )
360
+ . should ( "not.exist" ) ;
361
+
362
+ cy . get ( "[ui5-avatar]" )
363
+ . shadow ( )
364
+ . find ( ".ui5-avatar-initials" )
365
+ . should ( "not.exist" ) ;
366
+ } ) ;
367
+
368
+ it ( "tests rendering of initials" , ( ) => {
369
+ cy . mount (
370
+ < Avatar initials = "SF" shape = "Square" size = "M" > </ Avatar >
371
+ ) ;
372
+
373
+ cy . get ( "[ui5-avatar]" )
374
+ . shadow ( )
375
+ . find ( ".ui5-avatar-initials" )
376
+ . should ( "exist" ) ;
377
+ } ) ;
378
+
379
+ it ( "tests rendering of accented characters" , ( ) => {
380
+ cy . mount (
381
+ < Avatar initials = "IOU" colorScheme = "Accent1" > </ Avatar >
382
+ ) ;
383
+
384
+ cy . get ( "[ui5-avatar]" )
385
+ . shadow ( )
386
+ . find ( ".ui5-avatar-initials" )
387
+ . should ( "exist" ) ;
388
+ } ) ;
389
+
390
+ it ( "tests rendering of default fallback icon when initials are overflowing" , ( ) => {
391
+ cy . mount (
392
+ < Avatar initials = "WWW" shape = "Square" size = "M" > </ Avatar >
393
+ ) ;
394
+
395
+ cy . get ( "[ui5-avatar]" )
396
+ . shadow ( )
397
+ . find ( ".ui5-avatar-icon" )
398
+ . should ( "exist" )
399
+ . should ( "have.attr" , "name" , "employee" ) ;
400
+ } ) ;
401
+
402
+ it ( "tests rendering of custom fallback icon when initials are overflowing" , ( ) => {
403
+ cy . mount (
404
+ < Avatar fallbackIcon = "alert" initials = "WWW" shape = "Circle" size = "L" > </ Avatar >
405
+ ) ;
406
+
407
+ cy . get ( "[ui5-avatar]" )
408
+ . shadow ( )
409
+ . find ( ".ui5-avatar-icon-fallback" )
410
+ . should ( "exist" )
411
+ . should ( "have.attr" , "name" , "alert" ) ;
412
+ } ) ;
413
+
414
+ it ( "Tests noConflict 'ui5-click' event for interactive avatars" , ( ) => {
415
+ cy . mount (
416
+ < Avatar interactive initials = "XS" size = "XS" > </ Avatar >
417
+ ) ;
418
+
419
+ cy . get ( "[ui5-avatar]" )
420
+ . as ( "avatar" )
421
+ . then ( ( $avatar ) => {
422
+ $avatar [ 0 ] . addEventListener ( "ui5-click" , cy . stub ( ) . as ( "clickStub" ) ) ;
423
+ } ) ;
424
+
425
+ cy . get ( "@avatar" )
426
+ . shadow ( )
427
+ . find ( ".ui5-avatar-root" )
428
+ . realClick ( ) ;
429
+
430
+ cy . get ( "@clickStub" )
431
+ . should ( "have.been.calledOnce" ) ;
432
+
433
+ cy . get ( "@avatar" )
434
+ . shadow ( )
435
+ . find ( ".ui5-avatar-root" )
436
+ . realPress ( "Enter" ) ;
437
+
438
+ cy . get ( "@clickStub" )
439
+ . should ( "have.been.calledTwice" ) ;
440
+
441
+ cy . get ( "@avatar" )
442
+ . shadow ( )
443
+ . find ( ".ui5-avatar-root" )
444
+ . realPress ( "Space" ) ;
445
+
446
+ cy . get ( "@clickStub" )
447
+ . should ( "have.been.calledThrice" ) ;
448
+ } ) ;
449
+
450
+ it ( "Tests noConflict 'ui5-click' event for non interactive avatars" , ( ) => {
451
+ cy . mount (
452
+ < Avatar initials = "S" size = "S" > </ Avatar >
453
+ ) ;
454
+
455
+ cy . get ( "[ui5-avatar]" )
456
+ . as ( "avatar" )
457
+ . then ( ( $avatar ) => {
458
+ $avatar [ 0 ] . addEventListener ( "ui5-click" , cy . stub ( ) . as ( "clickStub" ) ) ;
459
+ } ) ;
460
+
461
+ cy . get ( "@avatar" )
462
+ . shadow ( )
463
+ . find ( ".ui5-avatar-root" )
464
+ . realClick ( ) ;
465
+
466
+ cy . get ( "@clickStub" )
467
+ . should ( "have.been.calledOnce" ) ;
468
+
469
+ cy . get ( "@avatar" )
470
+ . shadow ( )
471
+ . find ( ".ui5-avatar-root" )
472
+ . realPress ( "Enter" ) ;
473
+
474
+ cy . get ( "@clickStub" )
475
+ . should ( "have.been.calledOnce" ) ;
476
+
477
+ cy . get ( "@avatar" )
478
+ . shadow ( )
479
+ . find ( ".ui5-avatar-root" )
480
+ . realPress ( "Space" ) ;
481
+
482
+ cy . get ( "@clickStub" )
483
+ . should ( "have.been.calledOnce" ) ;
484
+ } ) ;
485
+
486
+ it ( "Tests native 'click' event thrown" , ( ) => {
487
+ cy . mount (
488
+ < Avatar interactive initials = "L" size = "L" > </ Avatar >
489
+ ) ;
490
+
491
+ cy . get ( "[ui5-avatar]" )
492
+ . as ( "avatar" )
493
+ . then ( ( $avatar ) => {
494
+ $avatar [ 0 ] . addEventListener ( "ui5-click" , cy . stub ( ) . as ( "clickStub" ) ) ;
495
+ } ) ;
496
+
497
+ cy . get ( "@avatar" )
498
+ . realClick ( ) ;
499
+
500
+ cy . get ( "@clickStub" )
501
+ . should ( "have.been.calledOnce" ) ;
502
+ } ) ;
503
+ } ) ;
0 commit comments