49 lines
No EOL
1.5 KiB
TypeScript
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)
|
|
})
|
|
}) |