File tree Expand file tree Collapse file tree 2 files changed +22
-6
lines changed Expand file tree Collapse file tree 2 files changed +22
-6
lines changed Original file line number Diff line number Diff line change @@ -53,7 +53,7 @@ class ParseGeoPoint {
53
53
ParseGeoPoint . _validate ( arg1 . latitude , arg1 . longitude ) ;
54
54
this . _latitude = arg1 . latitude ;
55
55
this . _longitude = arg1 . longitude ;
56
- } else if ( typeof arg1 === 'number' && typeof arg2 === 'number' ) {
56
+ } else if ( arg1 !== undefined && arg2 !== undefined ) {
57
57
ParseGeoPoint . _validate ( arg1 , arg2 ) ;
58
58
this . _latitude = arg1 ;
59
59
this . _longitude = arg2 ;
@@ -163,7 +163,10 @@ class ParseGeoPoint {
163
163
* Throws an exception if the given lat-long is out of bounds.
164
164
*/
165
165
static _validate ( latitude : number , longitude : number ) {
166
- if ( latitude !== latitude || longitude !== longitude ) {
166
+ if (
167
+ isNaN ( latitude ) || isNaN ( longitude ) ||
168
+ typeof latitude !== 'number' || typeof longitude !== 'number'
169
+ ) {
167
170
throw new TypeError (
168
171
'GeoPoint latitude and longitude must be valid numbers'
169
172
) ;
Original file line number Diff line number Diff line change @@ -30,14 +30,27 @@ describe('GeoPoint', () => {
30
30
expect ( point . longitude ) . toBe ( 88 ) ;
31
31
} ) ;
32
32
33
- it ( 'throws when created with NaN values' , ( ) => {
34
- expect ( function ( ) {
35
- new ParseGeoPoint ( NaN , NaN ) ;
36
- } ) . toThrow ( 'GeoPoint latitude and longitude must be valid numbers' ) ;
33
+ it ( 'throws when created with non numbers values' , ( ) => {
34
+ [
35
+ [ NaN , NaN ] ,
36
+ [ false , true ] ,
37
+ [ "29" , "10" ] ,
38
+ [ 29 , "10" ] ,
39
+ [ "29" , 10 ] ,
40
+ [ [ "29" , "10" ] ] ,
41
+ [ { latitude : "29" , longitude : "10" } ] ,
42
+ ] . forEach ( case_test => {
43
+ expect ( function ( ) {
44
+ new ParseGeoPoint ( ...case_test ) ;
45
+ } ) . toThrow ( 'GeoPoint latitude and longitude must be valid numbers' ) ;
46
+ } ) ;
37
47
} ) ;
38
48
39
49
it ( 'can set latitude and longitude' , ( ) => {
40
50
const point = new ParseGeoPoint ( ) ;
51
+ expect ( point . latitude ) . toBe ( 0 ) ;
52
+ expect ( point . longitude ) . toBe ( 0 ) ;
53
+
41
54
point . latitude = 5.5 ;
42
55
expect ( point . latitude ) . toBe ( 5.5 ) ;
43
56
You can’t perform that action at this time.
0 commit comments