import React from 'react'; import {mount} from 'enzyme'; import ChartZoom from 'app/components/charts/chartZoom'; import ConfigStore from 'app/stores/configStore'; describe('ChartZoom', function() { let renderFunc = jest.fn(() => null); let routerContext = TestStubs.routerContext(); let axisLabelFormatter; let tooltipFormatter; const timestamp = 1531094400000; beforeAll(function() { ConfigStore.loadInitialData({ user: {options: {timezone: 'America/Los_Angeles'}}, }); }); beforeEach(function() { renderFunc.mockClear(); }); describe('With Period > 24h', function() { describe('Local timezone', function() { beforeEach(function() { mount( {renderFunc} , routerContext ); axisLabelFormatter = renderFunc.mock.calls[0][0].xAxis.axisLabel.formatter; tooltipFormatter = renderFunc.mock.calls[0][0].tooltip.formatAxisLabel; }); it('formats axis label for first data point', function() { expect(axisLabelFormatter(timestamp, 0)).toEqual('Jul 8, 2018 5:00 PM'); }); it('formats axis label for second data point', function() { expect(axisLabelFormatter(timestamp, 1)).toEqual('Jul 8, 2018 5:00 PM'); }); it('formats tooltip', function() { expect(tooltipFormatter(timestamp, true, false)).toEqual('Jul 8, 2018 5:00 PM'); }); }); describe('UTC', function() { beforeEach(function() { mount( {renderFunc} , routerContext ); axisLabelFormatter = renderFunc.mock.calls[0][0].xAxis.axisLabel.formatter; tooltipFormatter = renderFunc.mock.calls[0][0].tooltip.formatAxisLabel; }); it('formats axis label for first data point', function() { expect(axisLabelFormatter(timestamp, 0)).toEqual('Jul 9, 2018 12:00 AM'); }); it('formats axis label for second data point', function() { expect(axisLabelFormatter(timestamp, 1)).toEqual('Jul 9, 2018 12:00 AM'); }); it('formats tooltip', function() { expect(tooltipFormatter(timestamp, true, true)).toEqual('Jul 9, 2018 12:00 AM'); }); }); }); describe('With Period <= 24h', function() { describe('Local timezone', function() { beforeEach(function() { mount( {renderFunc} , routerContext ); axisLabelFormatter = renderFunc.mock.calls[0][0].xAxis.axisLabel.formatter; tooltipFormatter = renderFunc.mock.calls[0][0].tooltip.formatAxisLabel; }); it('formats axis label for first data point', function() { expect(axisLabelFormatter(timestamp, 0)).toEqual('Jul 8, 2018 5:00 PM'); }); it('formats axis label for second data point', function() { expect(axisLabelFormatter(timestamp, 1)).toEqual('5:00 PM'); }); it('formats tooltip', function() { expect(tooltipFormatter(timestamp, true, false)).toEqual('Jul 8, 2018 5:00 PM'); }); }); describe('UTC', function() { beforeEach(function() { mount( {renderFunc} , routerContext ); axisLabelFormatter = renderFunc.mock.calls[0][0].xAxis.axisLabel.formatter; tooltipFormatter = renderFunc.mock.calls[0][0].tooltip.formatAxisLabel; }); it('formats axis label for first data point', function() { expect(axisLabelFormatter(timestamp, 0)).toEqual('Jul 9, 2018 12:00 AM'); }); it('formats axis label for second data point', function() { expect(axisLabelFormatter(timestamp, 1)).toEqual('12:00 AM'); }); it('formats tooltip', function() { expect(tooltipFormatter(timestamp, true, true)).toEqual('Jul 9, 2018 12:00 AM'); }); }); }); });