import './utils/jsdomInit.js';
const React = require('react');
const { PropTypes, Component } = React;
const expect = require('expect');
const TestUtils = require('react-addons-test-utils');
const GoogleMap = require('../../src/index');
describe('Components', () => {
it('Should work', () => {
const mapMarkerClassName = 'mapMarkerClassName';
class MapMarker extends Component {
render() {
return (
Marker
);
}
}
class MapHolder extends Component { // eslint-disable-line react/no-multi-comp
static propTypes = {
center: PropTypes.array,
zoom: PropTypes.number,
greatPlaceCoords: PropTypes.any,
};
static defaultProps = {
center: [59.938043, 30.337157],
zoom: 9,
};
constructor(props) {
super(props);
}
render() {
return (
);
}
}
const mapHolder = TestUtils.renderIntoDocument(
);
const marker = TestUtils.findRenderedDOMComponentWithClass(mapHolder, 'mapMarkerClassName');
expect(marker.parentNode.style.left).toEqual('0.250129066669615px');
expect(marker.parentNode.style.top).toEqual('-12.62811732746195px');
});
it('Should accept center prop as lat lng object', () => {
const mapMarkerClassName = 'mapMarkerClassName';
class MapMarker extends Component { // eslint-disable-line react/no-multi-comp
render() {
return (
Marker
);
}
}
class MapHolder extends Component { // eslint-disable-line react/no-multi-comp
static propTypes = {
center: PropTypes.any,
zoom: PropTypes.number,
greatPlaceCoords: PropTypes.any,
};
static defaultProps = {
center: {lat: 59.938043, lng: 30.337157},
zoom: 9,
};
constructor(props) {
super(props);
}
render() {
return (
);
}
}
const mapHolder = TestUtils.renderIntoDocument(
);
const marker = TestUtils.findRenderedDOMComponentWithClass(mapHolder, 'mapMarkerClassName');
expect(marker.parentNode.style.left).toEqual('0.250129066669615px');
expect(marker.parentNode.style.top).toEqual('-12.62811732746195px');
});
it('Should accept defaultCenter and defaultZoom props', () => {
const mapMarkerClassName = 'mapMarkerClassName';
class MapMarker extends Component { // eslint-disable-line react/no-multi-comp
render() {
return (
Marker
);
}
}
class MapHolder extends Component { // eslint-disable-line react/no-multi-comp
static propTypes = {
center: PropTypes.any,
zoom: PropTypes.number,
greatPlaceCoords: PropTypes.any,
};
static defaultProps = {
center: {lat: 59.938043, lng: 30.337157},
zoom: 9,
};
constructor(props) {
super(props);
}
render() {
return (
);
}
}
const mapHolder = TestUtils.renderIntoDocument(
);
const marker = TestUtils.findRenderedDOMComponentWithClass(mapHolder, 'mapMarkerClassName');
expect(marker.parentNode.style.left).toEqual('0.250129066669615px');
expect(marker.parentNode.style.top).toEqual('-12.62811732746195px');
});
it('Should call custom loader', () => {
const API_KEY = 'API_KEY';
const spy = expect.createSpy(() => {});
const asyncSpy = async (a) => spy(a);
TestUtils.renderIntoDocument(
);
expect(spy.calls.length).toEqual(1);
expect(spy.calls[0].arguments[0]).toEqual({
key: API_KEY,
});
});
});