1
1
import React from 'react' ;
2
2
import { act } from 'react-dom/test-utils' ;
3
- import { mount as emount } from 'enzyme' ;
4
3
import { mount } from './wrapper' ;
5
4
6
- import Segmented , { SegmentedValue } from '../src' ;
5
+ import Segmented from '../src' ;
6
+ import type { SegmentedValue } from '../src' ;
7
7
8
8
jest . mock ( 'rc-motion/lib/util/motion' , ( ) => {
9
9
return {
@@ -27,13 +27,38 @@ describe('rc-segmented', () => {
27
27
/> ,
28
28
) ;
29
29
30
+ expect ( wrapper . render ( ) ) . toMatchSnapshot ( ) ;
31
+
30
32
expect (
31
33
wrapper
32
34
. find ( '.rc-segmented-item-input' )
33
35
. map ( ( el ) => ( el . getDOMNode ( ) as HTMLInputElement ) . checked ) ,
34
36
) . toEqual ( [ true , false , false ] ) ;
35
37
} ) ;
36
38
39
+ it ( 'render' , ( ) => {
40
+ const wrapper = mount (
41
+ < Segmented
42
+ options = { [
43
+ { label : 'iOS' , value : 'iOS' } ,
44
+ { label : < div id = "android" > Android</ div > , value : 'Android' } ,
45
+ { label : < h2 > Web</ h2 > , value : 'Web' } ,
46
+ ] }
47
+ /> ,
48
+ ) ;
49
+
50
+ expect ( wrapper . render ( ) ) . toMatchSnapshot ( ) ;
51
+
52
+ expect (
53
+ wrapper
54
+ . find ( '.rc-segmented-item-input' )
55
+ . map ( ( el ) => ( el . getDOMNode ( ) as HTMLInputElement ) . checked ) ,
56
+ ) . toEqual ( [ true , false , false ] ) ;
57
+
58
+ expect ( wrapper . find ( '#android' ) . at ( 0 ) . text ( ) ) . toContain ( 'Android' ) ;
59
+ expect ( wrapper . find ( 'h2' ) . at ( 0 ) . text ( ) ) . toContain ( 'Web' ) ;
60
+ } ) ;
61
+
37
62
it ( 'render segmented with defaultValue' , ( ) => {
38
63
const wrapper = mount (
39
64
< Segmented options = { [ 'iOS' , 'Android' , 'Web' ] } defaultValue = "Web" /> ,
@@ -199,23 +224,6 @@ describe('rc-segmented', () => {
199
224
) . toEqual ( [ true , false , false ] ) ;
200
225
} ) ;
201
226
202
- it ( 'render segmented with options null/undefined' , ( ) => {
203
- const handleValueChange = jest . fn ( ) ;
204
- const wrapper = mount (
205
- < Segmented
206
- options = { [ null , undefined , '' ] as any }
207
- disabled
208
- onChange = { ( e ) => handleValueChange ( e . target . value ) }
209
- /> ,
210
- ) ;
211
- expect ( wrapper . render ( ) ) . toMatchSnapshot ( ) ;
212
- expect (
213
- wrapper
214
- . find ( '.rc-segmented-item-label' )
215
- . map ( ( n ) => n . getDOMNode ( ) . textContent ) ,
216
- ) . toEqual ( [ '' , '' , '' ] ) ;
217
- } ) ;
218
-
219
227
it ( 'render segmented with className and other html attribues' , ( ) => {
220
228
const wrapper = mount (
221
229
< Segmented
@@ -361,4 +369,21 @@ describe('rc-segmented', () => {
361
369
// thumb should disappear
362
370
expect ( wrapper . find ( '.rc-segmented-thumb' ) . length ) . toBe ( 0 ) ;
363
371
} ) ;
372
+
373
+ it ( 'render segmented with options null/undefined' , ( ) => {
374
+ const handleValueChange = jest . fn ( ) ;
375
+ const wrapper = mount (
376
+ < Segmented
377
+ options = { [ null , undefined , '' ] as any }
378
+ disabled
379
+ onChange = { ( e ) => handleValueChange ( e . target . value ) }
380
+ /> ,
381
+ ) ;
382
+ expect ( wrapper . render ( ) ) . toMatchSnapshot ( ) ;
383
+ expect (
384
+ wrapper
385
+ . find ( '.rc-segmented-item-label' )
386
+ . map ( ( n ) => n . getDOMNode ( ) . textContent ) ,
387
+ ) . toEqual ( [ '' , '' , '' ] ) ;
388
+ } ) ;
364
389
} ) ;
0 commit comments