2019-03-11 23:34:05 +08:00
import React from 'react' ;
import { mount } from 'enzyme' ;
import List from '..' ;
describe ( 'List Item Layout' , ( ) => {
2019-03-18 10:46:17 +08:00
const data = [
{
key : 1 ,
href : 'http://ant.design' ,
title : ` ant design ` ,
avatar : 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png' ,
description :
'Ant Design, a design language for background applications, is refined by Ant UED Team.' ,
content :
'We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people create their product prototypes beautifully and efficiently.' ,
extra : 'extra' ,
} ,
] ;
2019-03-11 23:34:05 +08:00
it ( 'horizontal itemLayout List which contains string nodes should not be flex container' , ( ) => {
const wrapper = mount (
< List
dataSource = { data }
renderItem = { item => (
< List . Item key = { item . title } >
I am < span > ant < / s p a n > d e s i g n l i s t i t e m
< / L i s t . I t e m >
) }
2019-03-18 10:46:17 +08:00
/ > ,
2019-03-11 23:34:05 +08:00
) ;
2019-03-18 10:46:17 +08:00
expect (
wrapper
. find ( '.ant-list-item' )
. at ( 0 )
. hasClass ( 'ant-list-item-no-flex' ) ,
) . toBe ( true ) ;
2019-03-11 23:34:05 +08:00
} ) ;
it ( 'horizontal itemLayout List should be flex container defaultly' , ( ) => {
const wrapper = mount (
< List
dataSource = { data }
renderItem = { item => (
< List . Item key = { item . title } >
< List . Item . Meta
title = { < a href = { item . href } > { item . title } < / a > }
description = { item . description }
/ >
< / L i s t . I t e m >
) }
2019-03-18 10:46:17 +08:00
/ > ,
2019-03-11 23:34:05 +08:00
) ;
2019-03-18 10:46:17 +08:00
expect (
wrapper
. find ( '.ant-list-item' )
. at ( 0 )
. hasClass ( 'ant-list-item-no-flex' ) ,
) . toBe ( false ) ;
2019-03-11 23:34:05 +08:00
} ) ;
it ( 'vertical itemLayout List should be flex container when there is extra node' , ( ) => {
const wrapper = mount (
< List
itemLayout = "vertical"
dataSource = { data }
renderItem = { item => (
< List . Item key = { item . title } extra = { item . extra } >
< List . Item . Meta
title = { < a href = { item . href } > { item . title } < / a > }
description = { item . description }
/ >
< / L i s t . I t e m >
) }
2019-03-18 10:46:17 +08:00
/ > ,
2019-03-11 23:34:05 +08:00
) ;
2019-03-18 10:46:17 +08:00
expect (
wrapper
. find ( '.ant-list-item' )
. at ( 0 )
. hasClass ( 'ant-list-item-no-flex' ) ,
) . toBe ( false ) ;
2019-03-11 23:34:05 +08:00
} ) ;
it ( 'vertical itemLayout List should not be flex container when there is not extra node' , ( ) => {
const wrapper = mount (
< List
itemLayout = "vertical"
dataSource = { data }
renderItem = { item => (
< List . Item key = { item . title } >
< List . Item . Meta
title = { < a href = { item . href } > { item . title } < / a > }
description = { item . description }
/ >
< / L i s t . I t e m >
) }
2019-03-18 10:46:17 +08:00
/ > ,
2019-03-11 23:34:05 +08:00
) ;
2019-03-18 10:46:17 +08:00
expect (
wrapper
. find ( '.ant-list-item' )
. at ( 0 )
. hasClass ( 'ant-list-item-no-flex' ) ,
) . toBe ( true ) ;
2019-03-11 23:34:05 +08:00
} ) ;
it ( 'horizontal itemLayout List should accept extra node' , ( ) => {
const wrapper = mount (
< List
dataSource = { data }
renderItem = { item => (
2019-08-02 17:59:42 +08:00
< List . Item
key = { item . title }
actions = { [ < a key = "action" > Action < / a > ] }
extra = { < span > { item . extra } < / s p a n > }
>
2019-03-11 23:34:05 +08:00
< List . Item . Meta
title = { < a href = { item . href } > { item . title } < / a > }
description = { item . description }
/ >
< / L i s t . I t e m >
) }
2019-03-18 10:46:17 +08:00
/ > ,
2019-03-11 23:34:05 +08:00
) ;
expect ( wrapper . render ( ) ) . toMatchSnapshot ( ) ;
} ) ;
} ) ;