houdini/javascripts/src/components/common/wizard/WizardTab.spec.tsx
2018-05-22 13:33:35 -05:00

49 lines
No EOL
1.5 KiB
TypeScript

// License: LGPL-3.0-or-later
import * as React from 'react';
import 'jest';
import WizardTab from './WizardTab'
import { Tab } from 'react-aria-tabpanel';
import {shallowWithIntl} from "../../../lib/tests/helpers";
describe('WizardTab', () => {
function runTest(enabled:boolean, active:boolean, widthPercentage:number){
let tab = {active:active, enabled: enabled, label: "A label", id: "our_id"}
let result = shallowWithIntl(<WizardTab widthPercentage={widthPercentage} tab={tab}/>)
let ourWrapper = result.find(Tab).first()
expect(ourWrapper.prop('id')).toEqual("our_id")
let classes = ourWrapper.prop('className').split(' ')
expect(classes).toContain("wizard-index-label")
if (active){
expect(classes).toContain("is-current")
}
else{
expect(classes).not.toContain("is-current")
}
if (enabled){
expect(classes).toContain("is-accessible")
}
else{
expect(classes).not.toContain("is-accessible")
}
expect(ourWrapper.prop('style').width).toEqual(`${widthPercentage}%`)
expect(ourWrapper.prop('tag')).toEqual('span')
expect(ourWrapper.childAt(0).text()).toEqual('A label')
}
test('inactive, non-current tab displays', () =>{
runTest(false, false, 20)
})
test('active, non-current tab displays', () =>{
runTest(false, true, 33.33333)
})
test('active, current tab displays', () =>{
runTest(true, true, 50)
})
})