osrm-backend/test/nodejs/tile.js
Michael Bell db7946d762
Add support for disabling feature datasets (#6666)
This change adds support for disabling datasets, such that specific
files are not loaded into memory when running OSRM. This enables users
to not pay the memory cost for features they do not intend to use.

Initially, there are two options:
- ROUTE_GEOMETRY, for disabling overview, steps, annotations and waypoints.
- ROUTE_STEPS, for disabling steps only.

Attempts to query features for which the datasets are disabled will
lead to a DisabledDatasetException being returned.
2023-08-04 18:43:37 +01:00

43 lines
1.8 KiB
JavaScript

var OSRM = require('../../');
var test = require('tape');
var data_path = require('./constants').data_path;
var tile = require('./constants').test_tile;
test.test('tile check size coarse', function(assert) {
assert.plan(2);
var osrm = new OSRM(data_path);
osrm.tile(tile.at, function(err, result) {
assert.ifError(err);
assert.equal(result.length, tile.size);
});
});
test.test('tile interface pre-conditions', function(assert) {
assert.plan(6);
var osrm = new OSRM(data_path);
assert.throws(function() { osrm.tile(null, function(err, result) {}) }, /must be an array \[x, y, z\]/);
assert.throws(function() { osrm.tile([], function(err, result) {}) }, /must be an array \[x, y, z\]/);
assert.throws(function() { osrm.tile([[]], function(err, result) {}) }, /must be an array \[x, y, z\]/);
assert.throws(function() { osrm.tile(undefined, function(err, result) {}) }, /must be an array \[x, y, z\]/);
assert.throws(function() { osrm.tile(17059, 11948, 15, function(err, result) {}) }, /must be an array \[x, y, z\]/);
assert.throws(function() { osrm.tile([17059, 11948, -15], function(err, result) {}) }, /must be unsigned/);
});
test.test('tile fails to load with geometry disabled', function(assert) {
assert.plan(1);
var osrm = new OSRM({'path': data_path, 'disable_feature_dataset': ['ROUTE_GEOMETRY']});
osrm.tile(tile.at, function(err, result) {
console.log(err)
assert.match(err.message, /DisabledDatasetException/);
});
});
test.test('tile ok with steps disabled', function(assert) {
assert.plan(2);
var osrm = new OSRM({'path': data_path, 'disable_feature_dataset': ['ROUTE_STEPS']});
osrm.tile(tile.at, function(err, result) {
assert.ifError(err);
assert.equal(result.length, tile.size);
});
});