UNPKG

react-native-google-matrix

Version:

A simple react-native wrapper for Google's Distance Matrix API

164 lines (139 loc) 5.54 kB
var assert = require('chai').assert, distance = require('../'); var fetch = require('isomorphic-fetch'); describe('GoogleDistance', function() { describe('#get()', function() { it('should return proper location data', function(done) { var options = { origin: 'San Francisco, CA', destination: 'San Diego, CA' }; distance.get(options, function(err, data) { if (err) return done(err); var expectedData = { index: null, origin: 'San Francisco, CA, USA', destination: 'San Diego, CA, USA', mode: 'driving', units: 'metric', language: 'en', avoid: null, sensor: false }; assert.isDefined(data.distance, 'Distance data is missing'); assert.typeOf(data.distance, 'string', 'Distance data should be a string'); assert.isDefined(data.distanceValue, 'Distance value is missing'); assert.typeOf(data.distanceValue, 'number', 'Distance value should be a number'); assert.isDefined(data.duration, 'Duration data is missing'); assert.typeOf(data.duration, 'string', 'Duration data should be a string'); assert.isDefined(data.durationValue, 'Duration data is missing'); assert.typeOf(data.durationValue, 'number', 'Duration value should be a number'); for (var key in expectedData) { assert.strictEqual(data[key], expectedData[key], key + ':'); } done(); }); }); /** it('should return proper location data given multiple origins/destinations', function(done) { var options = { origins: ['San Francisco, CA','San Diego, CA'], destinations: ['San Diego, CA','Seattle, WA'] }; distance.get(options, function(err, data) { if (err) return done(err); var expectedData = [{ index: null, origin: 'San Francisco, CA, USA', destination: 'San Diego, CA, USA', mode: 'driving', units: 'metric', language: 'en', avoid: null, sensor: false }, { index: null, origin: 'San Francisco, CA, USA', destination: 'Seattle, WA, USA', mode: 'driving', units: 'metric', language: 'en', avoid: null, sensor: false }, { index: null, origin: 'San Diego, CA, USA', destination: 'San Diego, CA, USA', mode: 'driving', units: 'metric', language: 'en', avoid: null, sensor: false }, { index: null, origin: 'San Diego, CA, USA', destination: 'Seattle, WA, USA', mode: 'driving', units: 'metric', language: 'en', avoid: null, sensor: false }]; assert.strictEqual(data.length, expectedData.length); for (var i = 0; i < expectedData.length; i++) { assert.isDefined(data[i].distance, 'Distance data is missing'); assert.typeOf(data[i].distance, 'string', 'Distance data should be a string'); assert.isDefined(data[i].distanceValue, 'Distance value is missing'); assert.typeOf(data[i].distanceValue, 'number', 'Distance value should be a number'); assert.isDefined(data[i].duration, 'Duration data is missing'); assert.typeOf(data[i].duration, 'string', 'Duration data should be a string'); assert.isDefined(data[i].durationValue, 'Duration data is missing'); assert.typeOf(data[i].durationValue, 'number', 'Duration value should be a number'); var expected = expectedData[i]; var actual = data[i]; for (var key in expected) { assert.strictEqual(actual[key], expected[key], key + ':'); } } done(); }); }); */ it('should return proper result when given only one origin/destination in batch mode', function(done) { var options = { origins: ['San Francisco, CA'], destinations: ['San Diego, CA'] }; distance.get(options, function(err, data) { if (err) return done(err); var expectedData = [{ index: null, origin: 'San Francisco, CA, USA', destination: 'San Diego, CA, USA', mode: 'driving', units: 'metric', language: 'en', avoid: null, sensor: false }]; assert.strictEqual(data.length, expectedData.length); for (var i = 0; i < expectedData.length; i++) { assert.isDefined(data[i].distance, 'Distance data is missing'); assert.typeOf(data[i].distance, 'string', 'Distance data should be a string'); assert.isDefined(data[i].distanceValue, 'Distance value is missing'); assert.typeOf(data[i].distanceValue, 'number', 'Distance value should be a number'); assert.isDefined(data[i].duration, 'Duration data is missing'); assert.typeOf(data[i].duration, 'string', 'Duration data should be a string'); assert.isDefined(data[i].durationValue, 'Duration data is missing'); assert.typeOf(data[i].durationValue, 'number', 'Duration value should be a number'); var expected = expectedData[i]; var actual = data[i]; for (var key in expected) { assert.strictEqual(actual[key], expected[key], key + ':'); } } done(); }); }); }); });