import React from 'react';
import { mount } from 'enzyme';
import sinon from 'sinon';
import { stepsClasses } from '@douyinfe/semi-foundation/steps/constants';
import Steps from '../index';
import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants';
const Step = Steps.Step;
describe('Steps', () => {
it('current works', () => {
const element = (
Step.1
Step.1
Step.1
);
const wrapper = mount(element);
expect(
wrapper
.find('Step')
.at(0)
.props().status
).toEqual('process');
});
it('parent status works', () => {
const wait = (
Step.1
Step.1
Step.1
);
const waitWrapper = mount(wait);
expect(
waitWrapper.props().status
).toEqual('wait');
waitWrapper.unmount();
const error = (
Step.1
Step.1
Step.1
);
const errorWrapper = mount(error);
expect(
errorWrapper.props().status
).toEqual('error');
errorWrapper.unmount();
const finish = (
Step.1
Step.1
Step.1
);
const finishWrapper = mount(finish);
expect(
finishWrapper.props().status
).toEqual('finish');
finishWrapper.unmount();
const process = (
Step.1
Step.1
Step.1
);
const processWrapper = mount(process);
expect(
processWrapper.props().status
).toEqual('process');
processWrapper.unmount();
const warning = (
Step.1
Step.1
Step.1
);
const warningWrapper = mount(warning);
expect(
warningWrapper.props().status
).toEqual('warning');
warningWrapper.unmount();
});
it('child status works', () => {
const wait = (
Step.1
Step.1
Step.1
);
const waitWrapper = mount(wait);
expect(
waitWrapper
.find('Step')
.at(0)
.props().status
).toEqual('wait');
waitWrapper.unmount();
const error = (
Step.1
Step.1
Step.1
);
const errorWrapper = mount(error);
expect(
errorWrapper
.find('Step')
.at(0)
.props().status
).toEqual('error');
errorWrapper.unmount();
const finish = (
Step.1
Step.1
Step.1
);
const finishWrapper = mount(finish);
expect(
finishWrapper
.find('Step')
.at(0)
.props().status
).toEqual('finish');
finishWrapper.unmount();
const process = (
Step.1
Step.1
Step.1
);
const processWrapper = mount(process);
expect(
processWrapper
.find('Step')
.at(0)
.props().status
).toEqual('process');
processWrapper.unmount();
const warning = (
Step.1
Step.1
Step.1
);
const warningWrapper = mount(warning);
expect(
warningWrapper
.find('Step')
.at(0)
.props().status
).toEqual('warning');
warningWrapper.unmount();
});
it('initial works', () => {
const element = (
Step.1
Step.1
Step.1
);
const wrapper = mount(element);
expect(
wrapper
.find('Step')
.at(0)
.props().status
).toEqual('warning');
});
it('FillStep onClick works', () => {
const spyOnClick = sinon.fake();
const element = (
Step.1
Step.1
Step.1
);
const wrapper = mount(element);
const fiestStepContainer = wrapper.find('Step').at(0).find(`.${stepsClasses.ITEM}`);
fiestStepContainer.simulate('click');
expect(spyOnClick.calledOnce).toEqual(true);
});
it('BasicStep onClick works', () => {
const spyOnClick = sinon.fake();
const element = (
Step.1
Step.1
Step.1
);
const wrapper = mount(element);
const fiestStepContainer = wrapper.find('Step').at(0).find(`.${stepsClasses.ITEM}`);
fiestStepContainer.simulate('click');
expect(spyOnClick.calledOnce).toEqual(true);
});
it('NavStep onClick works', () => {
const spyOnClick = sinon.fake();
const element = (
Step.1
Step.1
Step.1
);
const wrapper = mount(element);
const fiestStepContainer = wrapper.find('Step').at(0).find(`.${stepsClasses.ITEM}`);
fiestStepContainer.simulate('click');
expect(spyOnClick.calledOnce).toEqual(true);
});
it('Steps onChange works', () => {
const spyOnChange = sinon.fake();
const element = (
Step.1
Step.1
Step.1
);
const wrapper = mount(element);
const fiestStepContainer = wrapper.find('Step').at(1).find(`.${stepsClasses.ITEM}`);
fiestStepContainer.simulate('click');
expect(spyOnChange.calledOnce).toEqual(false);
const fiestStepContainer2 = wrapper.find('Step').at(0).find(`.${stepsClasses.ITEM}`);
fiestStepContainer2.simulate('click');
expect(spyOnChange.calledOnce).toEqual(true);
});
it('Steps type', () => {
const nav = (
);
const navWrapper = mount(nav);
expect(navWrapper.exists(`.${BASE_CLASS_PREFIX}-steps-nav`)).toEqual(true);
navWrapper.unmount();
const basic = (
);
const basicWrapper = mount(basic);
expect(basicWrapper.exists(`.${BASE_CLASS_PREFIX}-steps-basic`)).toEqual(true);
basicWrapper.unmount();
const fill = (
);
const fillWrapper = mount(fill);
expect(fillWrapper.exists(`.${BASE_CLASS_PREFIX}-steps`)).toEqual(true);
fillWrapper.unmount();
});
it('Steps with custom className & style', () => {
const wrapper = mount(
);
expect(wrapper.exists('.test')).toEqual(true);
expect(wrapper.find(`.${BASE_CLASS_PREFIX}-steps.test`)).toHaveStyle('color', 'red');
});
it('Step with custom className & style', () => {
const wrapper = mount(
);
const firstStep = wrapper.find('Step').at(0);
expect(firstStep.exists('.test')).toEqual(true);
expect(firstStep).toHaveStyle('color', 'blue');
});
it('Steps with size', () => {
const wrapper = mount(
);
expect(wrapper.exists(`.${BASE_CLASS_PREFIX}-steps-small`)).toEqual(true);
});
it('Steps with hasLine', () => {
const hasLineWrapper = mount(
);
expect(hasLineWrapper.exists(`.${BASE_CLASS_PREFIX}-steps-hasline`)).toEqual(true);
hasLineWrapper.unmount();
const noLineWrapper = mount(
);
expect(noLineWrapper.exists(`.${BASE_CLASS_PREFIX}-steps-hasline`)).toEqual(false);
noLineWrapper.unmount();
});
it('Steps with direction', () => {
const verticalWrapper = mount(
);
expect(verticalWrapper.exists(`.${BASE_CLASS_PREFIX}-steps-vertical`)).toEqual(true);
verticalWrapper.unmount();
const horizontalWrapper = mount(
);
expect(horizontalWrapper.exists(`.${BASE_CLASS_PREFIX}-steps-horizontal`)).toEqual(true);
horizontalWrapper.unmount();
});
});