UNPKG

@iwpnd/valhalla-ts

Version:

A nodejs client and helper utilities for valhalla routing engine

321 lines 14.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const valhalla_1 = require("./valhalla"); describe('integration', () => { const valhalla = new valhalla_1.Valhalla(); describe('route', () => { it('should request a route with maneuvers', async () => { const start = { lat: 42.530607, lon: 1.570593 }; const end = { lat: 42.534826, lon: 1.579133 }; const costing = 'bicycle'; const request = { locations: [start, end], costing, directions_type: 'maneuvers', directions_options: { units: 'kilometers', }, }; const response = await valhalla.route(request); expect(response).toEqual({ status_message: 'Found route between points', status: 0, units: 'kilometers', language: 'en-US', legs: [ { maneuvers: expect.arrayContaining([ { begin_shape_index: expect.any(Number), cost: expect.any(Number), end_shape_index: expect.any(Number), instruction: expect.any(String), length: expect.any(Number), street_names: expect.any((Array)), time: expect.any(Number), travel_mode: costing, travel_type: expect.any(String), type: expect.any(Number), }, ]), summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, shape: expect.any(String), }, ], summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, locations: [ { ...start, type: 'break', original_index: 0 }, { ...end, type: 'break', original_index: 1 }, ], }); }); it.each([ 'bicycle', 'pedestrian', 'auto', 'truck', 'bus', ])('should request a route for %s', async (costing) => { const start = { lat: 42.530607, lon: 1.570593 }; const end = { lat: 42.534826, lon: 1.579133 }; const request = { locations: [start, end], costing, directions_type: 'none', directions_options: { units: 'kilometers', }, }; const response = await valhalla.route(request); expect(response).toEqual({ locations: [ { ...start, type: 'break', original_index: 0 }, { ...end, type: 'break', original_index: 1 }, ], status_message: 'Found route between points', status: 0, units: 'kilometers', language: 'en-US', legs: [ { summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, shape: expect.any(String), }, ], summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, }); }); }); describe('optimizedRoute', () => { it('should request an optmized route with maneuvers', async () => { const start = { lat: 42.530607, lon: 1.570593 }; const stop = { lat: 42.534943, lon: 1.572731 }; const end = { lat: 42.534826, lon: 1.579133 }; const costing = 'bicycle'; const request = { locations: [start, stop, end], costing, directions_type: 'maneuvers', directions_options: { units: 'kilometers', }, }; const response = await valhalla.route(request); expect(response.legs).toHaveLength(2); expect(response).toEqual({ status_message: 'Found route between points', status: 0, units: 'kilometers', language: 'en-US', legs: [ { maneuvers: expect.arrayContaining([ { begin_shape_index: expect.any(Number), cost: expect.any(Number), end_shape_index: expect.any(Number), instruction: expect.any(String), length: expect.any(Number), street_names: expect.any((Array)), time: expect.any(Number), travel_mode: costing, travel_type: expect.any(String), type: expect.any(Number), }, ]), summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, shape: expect.any(String), }, { maneuvers: expect.arrayContaining([ { begin_shape_index: expect.any(Number), cost: expect.any(Number), end_shape_index: expect.any(Number), instruction: expect.any(String), length: expect.any(Number), street_names: expect.any((Array)), time: expect.any(Number), travel_mode: costing, travel_type: expect.any(String), type: expect.any(Number), }, ]), summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, shape: expect.any(String), }, ], summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, locations: [ { ...start, type: 'break', original_index: 0 }, { ...stop, type: 'break', original_index: 1 }, { ...end, type: 'break', original_index: 2 }, ], }); }); it.each([ 'bicycle', 'pedestrian', 'auto', 'truck', 'bus', ])('should request a route for %s', async (costing) => { const start = { lat: 42.530607, lon: 1.570593 }; const stop = { lat: 42.534943, lon: 1.572731 }; const end = { lat: 42.534826, lon: 1.579133 }; const request = { locations: [start, stop, end], costing, directions_type: 'none', directions_options: { units: 'kilometers', }, }; const response = await valhalla.route(request); expect(response.legs).toHaveLength(2); expect(response).toEqual({ locations: [ { ...start, type: 'break', original_index: 0 }, { ...stop, type: 'break', original_index: 1 }, { ...end, type: 'break', original_index: 2 }, ], status_message: 'Found route between points', status: 0, units: 'kilometers', language: 'en-US', legs: [ { summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, shape: expect.any(String), }, { summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, shape: expect.any(String), }, ], summary: { has_time_restrictions: expect.any(Boolean), has_toll: expect.any(Boolean), has_highway: expect.any(Boolean), has_ferry: expect.any(Boolean), min_lat: expect.any(Number), min_lon: expect.any(Number), max_lat: expect.any(Number), max_lon: expect.any(Number), time: expect.any(Number), length: expect.any(Number), cost: expect.any(Number), }, }); }); }); }); //# sourceMappingURL=integration.test.js.map