11/* eslint-env jest */
22import React from 'react' ;
3- import { shallow , mount } from 'enzyme ' ;
3+ import renderer from 'react-test-renderer ' ;
44import Tab from '../Tab' ;
55import TabList from '../TabList' ;
66import TabPanel from '../TabPanel' ;
77import Tabs from '../Tabs' ;
88
9- function hasClassAt ( wrapper , index , className ) {
10- return wrapper . childAt ( index ) . find ( 'li' ) . hasClass ( className ) ;
9+ function expectToMatchSnapshot ( component ) {
10+ expect ( renderer . create ( component ) . toJSON ( ) ) . toMatchSnapshot ( ) ;
1111}
1212
1313describe ( '<TabList />' , ( ) => {
@@ -19,34 +19,24 @@ describe('<TabList />', () => {
1919 } ) ;
2020
2121 it ( 'should have sane defaults' , ( ) => {
22- const wrapper = shallow ( < TabList /> ) ;
23-
24- expect ( wrapper . hasClass ( 'react-tabs__tab-list' ) ) . toBe ( true ) ;
25- expect ( wrapper . prop ( 'role' ) ) . toBe ( 'tablist' ) ;
22+ expectToMatchSnapshot ( < TabList /> ) ;
2623 } ) ;
2724
2825 it ( 'should accept className' , ( ) => {
29- const wrapper = shallow ( < TabList className = "foobar" /> ) ;
30-
31- expect ( wrapper . hasClass ( 'react-tabs__tab-list' ) ) . toBe ( false ) ;
32- expect ( wrapper . hasClass ( 'foobar' ) ) . toBe ( true ) ;
26+ expectToMatchSnapshot ( < TabList className = "foobar" /> ) ;
3327 } ) ;
3428
3529 it ( 'should pass through custom properties' , ( ) => {
36- const wrapper = shallow ( < TabList data-tooltip = "Tooltip contents" /> ) ;
37-
38- expect ( wrapper . prop ( 'data-tooltip' ) ) . toBe ( 'Tooltip contents' ) ;
30+ expectToMatchSnapshot ( < TabList data-tooltip = "Tooltip contents" /> ) ;
3931 } ) ;
4032
4133 it ( 'should not allow overriding all default properties' , ( ) => {
4234 // eslint-disable-next-line jsx-a11y/aria-role
43- const wrapper = shallow ( < TabList role = "micro-tab" /> ) ;
44-
45- expect ( wrapper . prop ( 'role' ) ) . toBe ( 'tablist' ) ;
35+ expectToMatchSnapshot ( < TabList role = "micro-tab" /> ) ;
4636 } ) ;
4737
4838 it ( 'should retain the default classnames for active and disabled tab' , ( ) => {
49- const wrapper = mount (
39+ expectToMatchSnapshot (
5040 < Tabs defaultIndex = { 0 } >
5141 < TabList >
5242 < Tab > Foo</ Tab >
@@ -56,14 +46,10 @@ describe('<TabList />', () => {
5646 < TabPanel > Bar</ TabPanel >
5747 </ Tabs > ,
5848 ) ;
59-
60- const tabsList = wrapper . childAt ( 0 ) ;
61- expect ( hasClassAt ( tabsList , 0 , 'react-tabs__tab--selected' ) ) . toBe ( true ) ;
62- expect ( hasClassAt ( tabsList , 1 , 'react-tabs__tab--disabled' ) ) . toBe ( true ) ;
6349 } ) ;
6450
6551 it ( 'should display the custom classnames for selected and disabled tab specified on tabs' , ( ) => {
66- const wrapper = mount (
52+ expectToMatchSnapshot (
6753 < Tabs defaultIndex = { 0 } selectedTabClassName = "active" disabledTabClassName = "disabled" >
6854 < TabList >
6955 < Tab > Foo</ Tab >
@@ -73,17 +59,10 @@ describe('<TabList />', () => {
7359 < TabPanel > Bar</ TabPanel >
7460 </ Tabs > ,
7561 ) ;
76-
77- const tabsList = wrapper . childAt ( 0 ) ;
78- expect ( hasClassAt ( tabsList , 0 , 'react-tabs__tab--selected' ) ) . toBe ( false ) ;
79- expect ( hasClassAt ( tabsList , 1 , 'react-tabs__tab--disabled' ) ) . toBe ( false ) ;
80-
81- expect ( hasClassAt ( tabsList , 0 , 'active' ) ) . toBe ( true ) ;
82- expect ( hasClassAt ( tabsList , 1 , 'disabled' ) ) . toBe ( true ) ;
8362 } ) ;
8463
8564 it ( 'should display the custom classnames for selected and disabled tab' , ( ) => {
86- const wrapper = mount (
65+ expectToMatchSnapshot (
8766 < Tabs defaultIndex = { 0 } >
8867 < TabList >
8968 < Tab selectedClassName = "active" disabledClassName = "disabled" > Foo</ Tab >
@@ -95,12 +74,5 @@ describe('<TabList />', () => {
9574 < TabPanel > Bar</ TabPanel >
9675 </ Tabs > ,
9776 ) ;
98-
99- const tabsList = wrapper . childAt ( 0 ) ;
100- expect ( hasClassAt ( tabsList , 0 , 'react-tabs__tab--selected' ) ) . toBe ( false ) ;
101- expect ( hasClassAt ( tabsList , 1 , 'react-tabs__tab--disabled' ) ) . toBe ( false ) ;
102-
103- expect ( hasClassAt ( tabsList , 0 , 'active' ) ) . toBe ( true ) ;
104- expect ( hasClassAt ( tabsList , 1 , 'disabled' ) ) . toBe ( true ) ;
10577 } ) ;
10678} ) ;
0 commit comments