import * as React from 'react';
import ZoomControl from '../zoom-control';
import { mountWithMap, getMapMock } from '../jest/util';
describe('ZoomControl', () => {
const zoomIn = '#zoomIn';
const zoomOut = '#zoomOut';
it('should render the component', () => {
const wrapper = mountWithMap(, getMapMock());
expect(wrapper).toBeDefined();
});
describe('hovering over buttons', () => {
it('should highlight buttons on mouseover', () => {
const wrapper = mountWithMap(, getMapMock());
const getButtonStyle = (tag: string) => {
const style = wrapper.find(tag).props().style;
return style!;
};
expect(getButtonStyle(zoomIn).opacity).toBe(0.95);
expect(getButtonStyle(zoomOut).opacity).toBe(0.95);
wrapper.find(zoomIn).simulate('mouseover');
expect(getButtonStyle(zoomIn).opacity).toBe(1);
expect(getButtonStyle(zoomOut).opacity).toBe(0.95);
wrapper.find(zoomOut).simulate('mouseover');
expect(getButtonStyle(zoomIn).opacity).toBe(0.95);
expect(getButtonStyle(zoomOut).opacity).toBe(1);
wrapper.find(zoomIn).simulate('mouseover');
expect(getButtonStyle(zoomIn).opacity).toBe(1);
expect(getButtonStyle(zoomOut).opacity).toBe(0.95);
});
it('should remove highlight from plus button on mouseout', () => {
const wrapper = mountWithMap(, getMapMock());
const getButtonStyle = (tag: string) => {
const style = wrapper.find(tag).props().style;
return style!;
};
expect(getButtonStyle(zoomIn).opacity).toBe(0.95);
wrapper.find(zoomIn).simulate('mouseover');
expect(getButtonStyle(zoomIn).opacity).toBe(1);
wrapper.find(zoomOut).simulate('mouseout');
expect(getButtonStyle(zoomIn).opacity).toBe(0.95);
});
it('should remove highlight from minus button on mouseout', () => {
const wrapper = mountWithMap(, getMapMock());
const getButtonStyle = (tag: string) => {
const style = wrapper.find(tag).props().style;
return style!;
};
expect(getButtonStyle(zoomOut).opacity).toBe(0.95);
wrapper.find(zoomOut).simulate('mouseover');
expect(getButtonStyle(zoomOut).opacity).toBe(1);
wrapper.find(zoomOut).simulate('mouseout');
expect(getButtonStyle(zoomOut).opacity).toBe(0.95);
});
});
});