@@ -3612,20 +3612,41 @@ describe('ReactFresh', () => {
36123612 const useStore = ( ) => { } ;
36133613 expect ( ReactFreshRuntime . isLikelyComponentType ( useStore ) ) . toBe ( false ) ;
36143614 expect ( ReactFreshRuntime . isLikelyComponentType ( useTheme ) ) . toBe ( false ) ;
3615+ const rogueProxy = new Proxy (
3616+ { } ,
3617+ {
3618+ get ( target , property ) {
3619+ throw new Error ( ) ;
3620+ } ,
3621+ } ,
3622+ ) ;
3623+ expect ( ReactFreshRuntime . isLikelyComponentType ( rogueProxy ) ) . toBe ( false ) ;
36153624
36163625 // These seem like function components.
36173626 const Button = ( ) => { } ;
36183627 expect ( ReactFreshRuntime . isLikelyComponentType ( Button ) ) . toBe ( true ) ;
36193628 expect ( ReactFreshRuntime . isLikelyComponentType ( Widget ) ) . toBe ( true ) ;
3629+ const ProxyButton = new Proxy ( Button , {
3630+ get ( target , property ) {
3631+ return target [ property ] ;
3632+ } ,
3633+ } ) ;
3634+ expect ( ReactFreshRuntime . isLikelyComponentType ( ProxyButton ) ) . toBe ( true ) ;
36203635 const anon = ( ( ) => ( ) => { } ) ( ) ;
36213636 anon . displayName = 'Foo' ;
36223637 expect ( ReactFreshRuntime . isLikelyComponentType ( anon ) ) . toBe ( true ) ;
36233638
36243639 // These seem like class components.
36253640 class Btn extends React . Component { }
36263641 class PureBtn extends React . PureComponent { }
3642+ const ProxyBtn = new Proxy ( Btn , {
3643+ get ( target , property ) {
3644+ return target [ property ] ;
3645+ } ,
3646+ } ) ;
36273647 expect ( ReactFreshRuntime . isLikelyComponentType ( Btn ) ) . toBe ( true ) ;
36283648 expect ( ReactFreshRuntime . isLikelyComponentType ( PureBtn ) ) . toBe ( true ) ;
3649+ expect ( ReactFreshRuntime . isLikelyComponentType ( ProxyBtn ) ) . toBe ( true ) ;
36293650 expect (
36303651 ReactFreshRuntime . isLikelyComponentType (
36313652 createReactClass ( { render ( ) { } } ) ,
0 commit comments