@@ -39,17 +39,19 @@ describe('ReactIs', () => {
39
39
}
40
40
41
41
const FunctionComponent = ( ) => React . createElement ( 'div' ) ;
42
-
43
42
const ForwardRefComponent = React . forwardRef ( ( props , ref ) =>
44
43
React . createElement ( Component , { forwardedRef : ref , ...props } ) ,
45
44
) ;
46
-
45
+ const LazyComponent = React . lazy ( ( ) => Component ) ;
46
+ const MemoComponent = React . memo ( Component ) ;
47
47
const Context = React . createContext ( false ) ;
48
48
49
49
expect ( ReactIs . isValidElementType ( 'div' ) ) . toEqual ( true ) ;
50
50
expect ( ReactIs . isValidElementType ( Component ) ) . toEqual ( true ) ;
51
51
expect ( ReactIs . isValidElementType ( FunctionComponent ) ) . toEqual ( true ) ;
52
52
expect ( ReactIs . isValidElementType ( ForwardRefComponent ) ) . toEqual ( true ) ;
53
+ expect ( ReactIs . isValidElementType ( LazyComponent ) ) . toEqual ( true ) ;
54
+ expect ( ReactIs . isValidElementType ( MemoComponent ) ) . toEqual ( true ) ;
53
55
expect ( ReactIs . isValidElementType ( Context . Provider ) ) . toEqual ( true ) ;
54
56
expect ( ReactIs . isValidElementType ( Context . Consumer ) ) . toEqual ( true ) ;
55
57
expect ( ReactIs . isValidElementType ( React . createFactory ( 'div' ) ) ) . toEqual (
@@ -60,6 +62,7 @@ describe('ReactIs', () => {
60
62
true ,
61
63
) ;
62
64
expect ( ReactIs . isValidElementType ( React . StrictMode ) ) . toEqual ( true ) ;
65
+ expect ( ReactIs . isValidElementType ( React . Suspense ) ) . toEqual ( true ) ;
63
66
64
67
expect ( ReactIs . isValidElementType ( true ) ) . toEqual ( false ) ;
65
68
expect ( ReactIs . isValidElementType ( 123 ) ) . toEqual ( false ) ;
@@ -116,6 +119,7 @@ describe('ReactIs', () => {
116
119
expect ( ReactIs . isElement ( < React . Fragment /> ) ) . toBe ( true ) ;
117
120
expect ( ReactIs . isElement ( < React . unstable_ConcurrentMode /> ) ) . toBe ( true ) ;
118
121
expect ( ReactIs . isElement ( < React . StrictMode /> ) ) . toBe ( true ) ;
122
+ expect ( ReactIs . isElement ( < React . Suspense /> ) ) . toBe ( true ) ;
119
123
} ) ;
120
124
121
125
it ( 'should identify ref forwarding component' , ( ) => {
@@ -152,6 +156,14 @@ describe('ReactIs', () => {
152
156
expect ( ReactIs . isMemo ( Component ) ) . toBe ( false ) ;
153
157
} ) ;
154
158
159
+ it ( 'should identify lazy' , ( ) => {
160
+ const Component = ( ) => React . createElement ( 'div' ) ;
161
+ const lazyComponent = React . lazy ( ( ) => Component ) ;
162
+ expect ( ReactIs . typeOf ( lazyComponent ) ) . toBe ( ReactIs . Lazy ) ;
163
+ expect ( ReactIs . isLazy ( lazyComponent ) ) . toBe ( true ) ;
164
+ expect ( ReactIs . isLazy ( Component ) ) . toBe ( false ) ;
165
+ } ) ;
166
+
155
167
it ( 'should identify strict mode' , ( ) => {
156
168
expect ( ReactIs . typeOf ( < React . StrictMode /> ) ) . toBe ( ReactIs . StrictMode ) ;
157
169
expect ( ReactIs . isStrictMode ( < React . StrictMode /> ) ) . toBe ( true ) ;
@@ -160,6 +172,14 @@ describe('ReactIs', () => {
160
172
expect ( ReactIs . isStrictMode ( < div /> ) ) . toBe ( false ) ;
161
173
} ) ;
162
174
175
+ it ( 'should identify suspense' , ( ) => {
176
+ expect ( ReactIs . typeOf ( < React . Suspense /> ) ) . toBe ( ReactIs . Suspense ) ;
177
+ expect ( ReactIs . isSuspense ( < React . Suspense /> ) ) . toBe ( true ) ;
178
+ expect ( ReactIs . isSuspense ( { type : ReactIs . Suspense } ) ) . toBe ( false ) ;
179
+ expect ( ReactIs . isSuspense ( 'React.Suspense' ) ) . toBe ( false ) ;
180
+ expect ( ReactIs . isSuspense ( < div /> ) ) . toBe ( false ) ;
181
+ } ) ;
182
+
163
183
it ( 'should identify profile root' , ( ) => {
164
184
expect (
165
185
ReactIs . typeOf ( < React . unstable_Profiler id = "foo" onRender = { jest . fn ( ) } /> ) ,
0 commit comments