-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.test.js
30 lines (26 loc) · 963 Bytes
/
App.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import React from 'react';
import renderer from 'react-test-renderer';
import App from './App';
import {
degreesToRadians,
orthodromicDistance
} from './src/helpers';
it('renders without crashing', () => {
const rendered = renderer.create(<App />).toJSON();
expect(rendered).toBeTruthy();
});
it('converts grades to rads', () => {
const grade = 45;
const expectedResult = '0.7853981634';
expect(degreesToRadians(grade).toFixed(10)).toEqual(expectedResult);
});
it('calculates the distance between two points', () => {
const dublin = { latitude: 53.350140, longitude: -6.266155 };
const madrid = { latitude: 40.416775, longitude: -3.703790 };
const expectedResult = '1453';
// Allowing small error
const acceptance = 0.02;
const distance = orthodromicDistance(dublin, madrid);
expect(distance).toBeGreaterThanOrEqual(expectedResult * (1 - acceptance));
expect(distance).toBeLessThanOrEqual(expectedResult * (1 + acceptance));
});