11import React from 'react' ;
22import { act } from 'react-dom/test-utils' ;
3- import { mount as emount } from 'enzyme' ;
43import { mount } from './wrapper' ;
54
6- import Segmented , { SegmentedValue } from '../src' ;
5+ import Segmented from '../src' ;
6+ import type { SegmentedValue } from '../src' ;
77
88jest . mock ( 'rc-motion/lib/util/motion' , ( ) => {
99 return {
@@ -27,13 +27,38 @@ describe('rc-segmented', () => {
2727 /> ,
2828 ) ;
2929
30+ expect ( wrapper . render ( ) ) . toMatchSnapshot ( ) ;
31+
3032 expect (
3133 wrapper
3234 . find ( '.rc-segmented-item-input' )
3335 . map ( ( el ) => ( el . getDOMNode ( ) as HTMLInputElement ) . checked ) ,
3436 ) . toEqual ( [ true , false , false ] ) ;
3537 } ) ;
3638
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+
3762 it ( 'render segmented with defaultValue' , ( ) => {
3863 const wrapper = mount (
3964 < Segmented options = { [ 'iOS' , 'Android' , 'Web' ] } defaultValue = "Web" /> ,
@@ -199,23 +224,6 @@ describe('rc-segmented', () => {
199224 ) . toEqual ( [ true , false , false ] ) ;
200225 } ) ;
201226
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-
219227 it ( 'render segmented with className and other html attribues' , ( ) => {
220228 const wrapper = mount (
221229 < Segmented
@@ -361,4 +369,21 @@ describe('rc-segmented', () => {
361369 // thumb should disappear
362370 expect ( wrapper . find ( '.rc-segmented-thumb' ) . length ) . toBe ( 0 ) ;
363371 } ) ;
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+ } ) ;
364389} ) ;
0 commit comments