11import React from 'react' ;
2- import { act } from 'react-dom/test-utils' ;
32
43import Avatar from '../Avatar' ;
54
6- function MockAvatarImage ( ) {
7- return < div className = "avatar-image" /> ;
8- }
9-
10- jest . mock ( '../AvatarImage' , ( ) => MockAvatarImage ) ;
11-
125const testDataURI = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' ;
136
147describe ( 'components/avatar/Avatar' , ( ) => {
@@ -29,7 +22,7 @@ describe('components/avatar/Avatar', () => {
2922
3023 test ( 'should render an AvatarImage when avatarUrl is passed in' , ( ) => {
3124 const wrapper = shallow ( < Avatar avatarUrl = { testDataURI } /> ) ;
32- const avatarImage = wrapper . find ( MockAvatarImage ) ;
25+ const avatarImage = wrapper . find ( 'AvatarImage' ) ;
3326 expect ( avatarImage . length ) . toEqual ( 1 ) ;
3427 expect ( avatarImage . prop ( 'url' ) ) . toEqual ( testDataURI ) ;
3528 } ) ;
@@ -58,9 +51,10 @@ describe('components/avatar/Avatar', () => {
5851
5952 test ( 'should fall back to AvatarInitials when there is an error in AvatarImage' , ( ) => {
6053 const wrapper = shallow ( < Avatar avatarUrl = "http://foo.bar/baz123_invalid" id = "1" name = "hello world" /> ) ;
61- const avatarImage = wrapper . find ( MockAvatarImage ) ;
62- avatarImage . prop ( 'onError' ) ( ) ;
6354
55+ wrapper . instance ( ) . onImageError ( ) ;
56+ expect ( wrapper . state ( 'hasImageErrored' ) ) . toEqual ( true ) ;
57+ wrapper . update ( ) ;
6458 const avatarInitials = wrapper . find ( 'AvatarInitials' ) ;
6559 expect ( avatarInitials . length ) . toEqual ( 1 ) ;
6660 } ) ;
@@ -72,27 +66,18 @@ describe('components/avatar/Avatar', () => {
7266 avatarUrl : 'http://foo.bar/baz123_invalid' ,
7367 } ;
7468
75- let wrapper ;
76- act ( ( ) => {
77- wrapper = mount ( < Avatar { ...props } /> ) ;
78- } ) ;
79- expect ( wrapper . find ( MockAvatarImage ) . length ) . toEqual ( 1 ) ;
69+ const wrapper = shallow ( < Avatar { ...props } /> ) ;
8070
81- act ( ( ) => {
82- const avatarImage = wrapper . find ( MockAvatarImage ) ;
83- avatarImage . prop ( 'onError' ) ( ) ;
84- } ) ;
85- wrapper . update ( ) ;
86- expect ( wrapper . find ( MockAvatarImage ) . length ) . toEqual ( 0 ) ;
87- expect ( wrapper . find ( 'AvatarInitials' ) . length ) . toEqual ( 1 ) ;
88-
89- act ( ( ) => {
90- wrapper . setProps ( {
91- ...props ,
92- avatarUrl : 'http://foo.bar/baz123_invalid_new' ,
93- } ) ;
71+ wrapper . instance ( ) . onImageError ( ) ;
72+ expect ( wrapper . state ( 'hasImageErrored' ) ) . toEqual ( true ) ;
73+
74+ wrapper . setProps ( {
75+ ...props ,
76+ avatarUrl : 'http://foo.bar/baz123_invalid_new' ,
9477 } ) ;
9578 wrapper . update ( ) ;
96- expect ( wrapper . find ( MockAvatarImage ) . length ) . toEqual ( 1 ) ;
79+
80+ expect ( wrapper . state ( 'hasImageErrored' ) ) . toEqual ( false ) ;
81+ expect ( wrapper . find ( 'AvatarImage' ) . length ) . toEqual ( 1 ) ;
9782 } ) ;
9883} ) ;
0 commit comments