|
|
@@ -19,155 +19,170 @@ function getTabs(tabProps, tabPaneProps = defaultTabPane) {
|
|
|
|
|
|
describe('Tabs', () => {
|
|
|
|
|
|
- it('tabs render basicly', () => {
|
|
|
- let props = {};
|
|
|
- const tabs = mount(getTabs(props, defaultTabPane))
|
|
|
- // render in same time
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-content`).children().length).toEqual(2);
|
|
|
- // default active first pane
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleA');
|
|
|
- });
|
|
|
+ // it('tabs render basicly', () => {
|
|
|
+ // let props = {};
|
|
|
+ // const tabs = mount(getTabs(props, defaultTabPane))
|
|
|
+ // // render in same time
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-content`).children().length).toEqual(2);
|
|
|
+ // // default active first pane
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleA');
|
|
|
+ // });
|
|
|
|
|
|
- it('Tabs with custom className & style & contentStyle', () => {
|
|
|
- let props = {
|
|
|
- className: 'test',
|
|
|
- style: {
|
|
|
- color: 'red'
|
|
|
- }
|
|
|
- };
|
|
|
- const tabs = shallow(getTabs(props));
|
|
|
- expect(tabs.exists('.test')).toEqual(true);
|
|
|
- expect(tabs.find('div.test')).toHaveStyle('color', 'red');
|
|
|
- });
|
|
|
+ // it('Tabs with custom className & style & contentStyle', () => {
|
|
|
+ // let props = {
|
|
|
+ // className: 'test',
|
|
|
+ // style: {
|
|
|
+ // color: 'red'
|
|
|
+ // }
|
|
|
+ // };
|
|
|
+ // const tabs = shallow(getTabs(props));
|
|
|
+ // expect(tabs.exists('.test')).toEqual(true);
|
|
|
+ // expect(tabs.find('div.test')).toHaveStyle('color', 'red');
|
|
|
+ // });
|
|
|
|
|
|
- it('Tabs with defaultActiveKey', () => {
|
|
|
- let tabProps = {
|
|
|
- defaultActiveKey: 'itemKeyB'
|
|
|
- };
|
|
|
- const tabs = mount(getTabs(tabProps));
|
|
|
- const activeTabContent = tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text();
|
|
|
- expect(activeTabContent).toEqual('titleB');
|
|
|
- });
|
|
|
-
|
|
|
- it('different type Tabs', () => {
|
|
|
- let lineTabs = mount(getTabs({ type: 'line' }));
|
|
|
- let cardTabs = mount(getTabs({ type: 'card' }));
|
|
|
- let buttonTabs = mount(getTabs({ type: 'button' }));
|
|
|
- expect(lineTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-button`)).toEqual(false);
|
|
|
- expect(lineTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-card`)).toEqual(false);
|
|
|
- expect(cardTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-card`)).toEqual(true);
|
|
|
- expect(buttonTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-button`)).toEqual(true);
|
|
|
- });
|
|
|
+ // it('Tabs with defaultActiveKey', () => {
|
|
|
+ // let tabProps = {
|
|
|
+ // defaultActiveKey: 'itemKeyB'
|
|
|
+ // };
|
|
|
+ // const tabs = mount(getTabs(tabProps));
|
|
|
+ // const activeTabContent = tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text();
|
|
|
+ // expect(activeTabContent).toEqual('titleB');
|
|
|
+ // });
|
|
|
+
|
|
|
+ // it('different type Tabs', () => {
|
|
|
+ // let lineTabs = mount(getTabs({ type: 'line' }));
|
|
|
+ // let cardTabs = mount(getTabs({ type: 'card' }));
|
|
|
+ // let buttonTabs = mount(getTabs({ type: 'button' }));
|
|
|
+ // expect(lineTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-button`)).toEqual(false);
|
|
|
+ // expect(lineTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-card`)).toEqual(false);
|
|
|
+ // expect(cardTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-card`)).toEqual(true);
|
|
|
+ // expect(buttonTabs.exists(`.${BASE_CLASS_PREFIX}-tabs-bar-button`)).toEqual(true);
|
|
|
+ // });
|
|
|
|
|
|
- it('tabList', () => {
|
|
|
- let tabList = [
|
|
|
- {tab:"文档", itemKey:"1"},
|
|
|
- {tab:"快速起步", itemKey:"2"},
|
|
|
- {tab:"帮助", itemKey:"3"}
|
|
|
- ];
|
|
|
- const contentList=[
|
|
|
- (<div>文档</div>),
|
|
|
- (<div>快速起步</div>),
|
|
|
- (<div>帮助</div>)
|
|
|
- ]
|
|
|
- class TabListDemo extends React.Component {
|
|
|
- state = {
|
|
|
- key: '1'
|
|
|
- };
|
|
|
- render() {
|
|
|
- return (
|
|
|
- <Tabs
|
|
|
- tabList={tabList}
|
|
|
- >
|
|
|
- {contentList[this.state.key - 1]}
|
|
|
- </Tabs>
|
|
|
- )
|
|
|
- }
|
|
|
- }
|
|
|
- const tabs = mount(<TabListDemo></TabListDemo>);
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-content`).children().length).toEqual(1);
|
|
|
- })
|
|
|
-
|
|
|
- it('should not toggle whenn clicked disabled pane', () => {
|
|
|
- let spyOnChange = sinon.spy((activeKey) => {
|
|
|
- })
|
|
|
- let tabProps = {
|
|
|
- defaultActiveKey: 'itemKeyA',
|
|
|
- onChange: spyOnChange
|
|
|
- };
|
|
|
- let tabPaneProps = [
|
|
|
- { itemKey: 'itemKeyA', tab: 'titleA' },
|
|
|
- { itemKey: 'itemKeyB', tab: 'titleB', disabled: true },
|
|
|
- ];
|
|
|
- let tabs = mount(getTabs(tabProps, tabPaneProps));
|
|
|
- expect(tabs.exists(`.${BASE_CLASS_PREFIX}-tabs-tab-disabled`)).toEqual(true);
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-disabled`).text()).toEqual('titleB');
|
|
|
-
|
|
|
- tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab`).at(1).simulate('click');
|
|
|
- expect(spyOnChange.calledOnce).toBe(false);
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleA');
|
|
|
- });
|
|
|
+ // it('tabList', () => {
|
|
|
+ // let tabList = [
|
|
|
+ // {tab:"文档", itemKey:"1"},
|
|
|
+ // {tab:"快速起步", itemKey:"2"},
|
|
|
+ // {tab:"帮助", itemKey:"3"}
|
|
|
+ // ];
|
|
|
+ // const contentList=[
|
|
|
+ // (<div>文档</div>),
|
|
|
+ // (<div>快速起步</div>),
|
|
|
+ // (<div>帮助</div>)
|
|
|
+ // ]
|
|
|
+ // class TabListDemo extends React.Component {
|
|
|
+ // state = {
|
|
|
+ // key: '1'
|
|
|
+ // };
|
|
|
+ // render() {
|
|
|
+ // return (
|
|
|
+ // <Tabs
|
|
|
+ // tabList={tabList}
|
|
|
+ // >
|
|
|
+ // {contentList[this.state.key - 1]}
|
|
|
+ // </Tabs>
|
|
|
+ // )
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // const tabs = mount(<TabListDemo></TabListDemo>);
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-content`).children().length).toEqual(1);
|
|
|
+ // })
|
|
|
+
|
|
|
+ // it('should not toggle whenn clicked disabled pane', () => {
|
|
|
+ // let spyOnChange = sinon.spy((activeKey) => {
|
|
|
+ // })
|
|
|
+ // let tabProps = {
|
|
|
+ // defaultActiveKey: 'itemKeyA',
|
|
|
+ // onChange: spyOnChange
|
|
|
+ // };
|
|
|
+ // let tabPaneProps = [
|
|
|
+ // { itemKey: 'itemKeyA', tab: 'titleA' },
|
|
|
+ // { itemKey: 'itemKeyB', tab: 'titleB', disabled: true },
|
|
|
+ // ];
|
|
|
+ // let tabs = mount(getTabs(tabProps, tabPaneProps));
|
|
|
+ // expect(tabs.exists(`.${BASE_CLASS_PREFIX}-tabs-tab-disabled`)).toEqual(true);
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-disabled`).text()).toEqual('titleB');
|
|
|
+
|
|
|
+ // tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab`).at(1).simulate('click');
|
|
|
+ // expect(spyOnChange.calledOnce).toBe(false);
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleA');
|
|
|
+ // });
|
|
|
|
|
|
- it('onTabClick', () => {
|
|
|
- let onTabClick = (key, e) => {
|
|
|
- // debugger
|
|
|
- };
|
|
|
- let spyOnTabClick = sinon.spy(onTabClick);
|
|
|
- let props = {
|
|
|
- onTabClick: spyOnTabClick
|
|
|
- };
|
|
|
- const tabs = mount(getTabs(props));
|
|
|
- tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab`).at(1).simulate('click');
|
|
|
- expect(spyOnTabClick.calledWithMatch("itemKeyB")).toBe(true);
|
|
|
- expect(spyOnTabClick.calledOnce).toBe(true);
|
|
|
- });
|
|
|
+ // it('onTabClick', () => {
|
|
|
+ // let onTabClick = (key, e) => {
|
|
|
+ // // debugger
|
|
|
+ // };
|
|
|
+ // let spyOnTabClick = sinon.spy(onTabClick);
|
|
|
+ // let props = {
|
|
|
+ // onTabClick: spyOnTabClick
|
|
|
+ // };
|
|
|
+ // const tabs = mount(getTabs(props));
|
|
|
+ // tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab`).at(1).simulate('click');
|
|
|
+ // expect(spyOnTabClick.calledWithMatch("itemKeyB")).toBe(true);
|
|
|
+ // expect(spyOnTabClick.calledOnce).toBe(true);
|
|
|
+ // });
|
|
|
|
|
|
- it('onChange', () => {
|
|
|
- let onChange = value => {
|
|
|
- // debugger
|
|
|
- };
|
|
|
- let spyOnChange = sinon.spy(onChange);
|
|
|
- let tabsProps = {
|
|
|
- onChange: spyOnChange
|
|
|
- };
|
|
|
- let paneProps = defaultTabPane;
|
|
|
- const tabs = mount(getTabs(tabsProps, paneProps));
|
|
|
- tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab`).at(1).simulate('click');
|
|
|
- expect(spyOnChange.calledWithMatch("itemKeyB")).toBe(true);
|
|
|
- expect(spyOnChange.calledOnce).toBe(true);
|
|
|
- });
|
|
|
+ // it('onChange', () => {
|
|
|
+ // let onChange = value => {
|
|
|
+ // // debugger
|
|
|
+ // };
|
|
|
+ // let spyOnChange = sinon.spy(onChange);
|
|
|
+ // let tabsProps = {
|
|
|
+ // onChange: spyOnChange
|
|
|
+ // };
|
|
|
+ // let paneProps = defaultTabPane;
|
|
|
+ // const tabs = mount(getTabs(tabsProps, paneProps));
|
|
|
+ // tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab`).at(1).simulate('click');
|
|
|
+ // expect(spyOnChange.calledWithMatch("itemKeyB")).toBe(true);
|
|
|
+ // expect(spyOnChange.calledOnce).toBe(true);
|
|
|
+ // });
|
|
|
|
|
|
- it('should update when activeKey change', () => {
|
|
|
- let tabsProps = {
|
|
|
- activeKey: 'itemKeyA'
|
|
|
- };
|
|
|
- const tabs = mount(getTabs(tabsProps, defaultTabPane));
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleA');
|
|
|
- tabs.setProps({ activeKey: 'itemKeyB' });
|
|
|
- tabs.update()
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleB');
|
|
|
- });
|
|
|
+ // it('should update when activeKey change', () => {
|
|
|
+ // let tabsProps = {
|
|
|
+ // activeKey: 'itemKeyA'
|
|
|
+ // };
|
|
|
+ // const tabs = mount(getTabs(tabsProps, defaultTabPane));
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleA');
|
|
|
+ // tabs.setProps({ activeKey: 'itemKeyB' });
|
|
|
+ // tabs.update()
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleB');
|
|
|
+ // });
|
|
|
|
|
|
- it('contentStyle', () => {
|
|
|
- let tabsProps = {
|
|
|
- contentStyle: {
|
|
|
- color: 'red'
|
|
|
- }
|
|
|
- };
|
|
|
- const tabs = mount(getTabs(tabsProps, defaultTabPane));
|
|
|
- expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-content`)).toHaveStyle('color', 'red');
|
|
|
- });
|
|
|
+ // it('contentStyle', () => {
|
|
|
+ // let tabsProps = {
|
|
|
+ // contentStyle: {
|
|
|
+ // color: 'red'
|
|
|
+ // }
|
|
|
+ // };
|
|
|
+ // const tabs = mount(getTabs(tabsProps, defaultTabPane));
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-content`)).toHaveStyle('color', 'red');
|
|
|
+ // });
|
|
|
|
|
|
- it('tarBarExtraContent', () => {
|
|
|
- let extraContent = (<div className='extra'>Extra</div>);
|
|
|
- let tabsProps = {
|
|
|
- tabBarExtraContent: extraContent
|
|
|
- };
|
|
|
- const tabs = mount(getTabs(tabsProps, defaultTabPane));
|
|
|
- expect(tabs.contains(extraContent)).toEqual(true);
|
|
|
- });
|
|
|
+ // it('tarBarExtraContent', () => {
|
|
|
+ // let extraContent = (<div className='extra'>Extra</div>);
|
|
|
+ // let tabsProps = {
|
|
|
+ // tabBarExtraContent: extraContent
|
|
|
+ // };
|
|
|
+ // const tabs = mount(getTabs(tabsProps, defaultTabPane));
|
|
|
+ // expect(tabs.contains(extraContent)).toEqual(true);
|
|
|
+ // });
|
|
|
|
|
|
// it('renderTabBar', () => {
|
|
|
|
|
|
// });
|
|
|
+ it('closable', () => {
|
|
|
+ let tabsProps = {
|
|
|
+ activeKey: 'itemKeyB',
|
|
|
+ type: 'card',
|
|
|
+ closable: true
|
|
|
+ }
|
|
|
+ let paneProps = defaultTabPane;
|
|
|
+
|
|
|
+ const tabs = mount(getTabs(tabsProps, paneProps));
|
|
|
+ console.log(tabs.props())
|
|
|
+ console.log('target1:', tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).type())
|
|
|
+ console.log('target2:', tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).find('span').find('span').type())
|
|
|
+ // tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab .semi-icon-close`).simulate('click');
|
|
|
+ // expect(tabs.find(`.${BASE_CLASS_PREFIX}-tabs-tab-active`).text()).toEqual('titleA');
|
|
|
+ });
|
|
|
})
|