import React from 'react'; import {shallow} from 'enzyme'; import StackedBarChart from 'app/components/stackedBarChart'; describe('StackedBarChart', function() { describe('render()', function() { it('renders with points data', function() { let points = [ {x: 1439766000, y: [10]}, {x: 1439769600, y: [20]}, {x: 1439773200, y: [30]}, ]; let wrapper = shallow(); let columns = wrapper.find('[data-test-id="chart-column"]'); expect(columns).toHaveProperty('length', 3); expect(columns.at(0).text()).toEqual('10'); // check y values expect(columns.at(1).text()).toEqual('20'); expect(columns.at(2).text()).toEqual('30'); }); it('renders with points and markers', function() { let points = [ {x: 1439769600, y: [10]}, {x: 1439773200, y: [20]}, {x: 1439776800, y: [30]}, ]; let markers = [ {x: 1439769600, className: 'first-seen', label: 'first seen'}, // matches first point {x: 1439776800, className: 'last-seen', label: 'last seen'}, // matches last point ]; let wrapper = shallow(); let columns = wrapper.find('[data-test-id="chart-column"]'); expect(columns).toHaveProperty('length', 5); expect(columns.at(0).text()).toEqual('10'); expect(columns.at(1).text()).toEqual('20'); expect(columns.at(2).text()).toEqual('30'); expect(columns.at(3).text()).toEqual('first seen'); expect(columns.at(4).text()).toEqual('last seen'); }); it('renders with points and markers, when first and last seen are same data point', function() { let points = [{x: 1439776800, y: [30]}]; let markers = [ {x: 1439776800, className: 'first-seen', label: 'first seen'}, {x: 1439776800, className: 'last-seen', label: 'last seen'}, ]; let wrapper = shallow(); let columns = wrapper.find('[data-test-id="chart-column"]'); expect(columns).toHaveProperty('length', 3); expect(columns.at(0).text()).toEqual('30'); expect(columns.at(1).text()).toEqual('first seen'); expect(columns.at(2).text()).toEqual('last seen'); }); }); });