react-conventions
Version:
An open source set of React components that implement Ambassador's Design and UX patterns.
56 lines (44 loc) • 2.59 kB
JavaScript
import React from 'react';
import { shallow } from 'enzyme';
import ProgressBar from '../src/components/ProgressBar/ProgressBar';
import ProgressBarLabel from '../src/components/ProgressBar/ProgressBarLabel';
describe('ProgressBar', () => {
let wrapper;
let processed_actions=10;
let total_actions=100;
it('should shallow render itself with proper tags, have default className and appropriate progress bar style', () => {
const label = 'Commission export';
wrapper = shallow(<ProgressBar value={processed_actions} denominator={total_actions} label={label} />);
expect(wrapper.find('div')).to.have.length(3);
expect(wrapper.first().hasClass('progress-bar')).to.equal(true);
expect(wrapper.first().hasClass('danger')).to.equal(true);
expect(wrapper.childAt(1).hasClass('outer')).to.equal(true);
expect(wrapper.childAt(1).childAt(0).hasClass('inner')).to.equal(true);
expect(wrapper.childAt(1).childAt(0).props().className).to.equal('inner');
expect(wrapper.childAt(1).childAt(0).props().style.left).to.equal('-90%');
expect(wrapper.find(ProgressBarLabel)).to.have.length(1);
expect(wrapper.childAt(0).type()).to.equal(ProgressBarLabel);
expect(wrapper.childAt(0).props().text).to.equal(label);
expect(wrapper.childAt(0).props().showPercentage).to.equal(false);
expect(wrapper.childAt(0).props().percentage).to.equal(10);
processed_actions=100;
total_actions=100;
wrapper = shallow(<ProgressBar value={processed_actions} denominator={total_actions} label={label} />);
expect(wrapper.find('div')).to.have.length(3);
expect(wrapper.first().hasClass('progress-bar')).to.equal(true);
expect(wrapper.first().hasClass('danger')).to.equal(true);
expect(wrapper.childAt(1).hasClass('outer')).to.equal(true);
expect(wrapper.childAt(1).childAt(0).hasClass('inner')).to.equal(true);
expect(wrapper.childAt(1).childAt(0).props().className).to.equal('inner');
expect(wrapper.childAt(1).childAt(0).props().style.left).to.equal('0%');
expect(wrapper.find(ProgressBarLabel)).to.have.length(1);
expect(wrapper.childAt(0).type()).to.equal(ProgressBarLabel);
expect(wrapper.childAt(0).props().text).to.equal(label);
expect(wrapper.childAt(0).props().showPercentage).to.equal(false);
expect(wrapper.childAt(0).props().percentage).to.equal(100);
});
it('should not display ProgressBarLabel component', () => {
wrapper = shallow(<ProgressBar value={processed_actions} denominator={total_actions} />);
expect(wrapper.find(ProgressBarLabel)).to.have.length(0);
});
});