Fix summary generation when empty strings are present.
Also corrects step ordering when steps have equal durations.
This commit is contained in:
committed by
Patrick Niklaus
parent
aab1aad8f4
commit
f251f93a11
@@ -71,6 +71,7 @@ module.exports = function () {
|
||||
r.status = res.statusCode === 200 ? 'x' : null;
|
||||
if (r.status) {
|
||||
r.route = this.wayList(r.json.routes[0]);
|
||||
r.summary = r.json.routes[0].legs.map(l => l.summary).join(',');
|
||||
|
||||
if (r.route.split(',')[0] === util.format('w%d', i)) {
|
||||
r.time = r.json.routes[0].duration;
|
||||
|
||||
@@ -127,6 +127,12 @@ module.exports = function () {
|
||||
}
|
||||
};
|
||||
|
||||
this.summary = (instructions) => {
|
||||
if (instructions) {
|
||||
return instructions.legs.map(l => l.summary).join(',');
|
||||
}
|
||||
}
|
||||
|
||||
this.wayList = (instructions) => {
|
||||
return this.extractInstructionList(instructions, s => s.name);
|
||||
};
|
||||
|
||||
@@ -31,7 +31,7 @@ module.exports = function () {
|
||||
var afterRequest = (err, res, body) => {
|
||||
if (err) return cb(err);
|
||||
if (body && body.length) {
|
||||
var instructions, bearings, turns, modes, times, distances;
|
||||
var instructions, bearings, turns, modes, times, distances, summary;
|
||||
|
||||
var json = JSON.parse(body);
|
||||
|
||||
@@ -44,6 +44,7 @@ module.exports = function () {
|
||||
modes = this.modeList(json.routes[0]);
|
||||
times = this.timeList(json.routes[0]);
|
||||
distances = this.distanceList(json.routes[0]);
|
||||
summary = this.summary(json.routes[0]);
|
||||
}
|
||||
|
||||
if (headers.has('status')) {
|
||||
@@ -66,6 +67,10 @@ module.exports = function () {
|
||||
if (headers.has('route')) {
|
||||
got.route = (instructions || '').trim();
|
||||
|
||||
if (headers.has('summary')) {
|
||||
got.summary = (summary || '').trim();
|
||||
}
|
||||
|
||||
if (headers.has('alternative')) {
|
||||
// TODO examine more than first alternative?
|
||||
got.alternative ='';
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
@routing @basic @testbot
|
||||
Feature: Basic Routing
|
||||
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
|
||||
@smallest
|
||||
Scenario: Checking
|
||||
Given the node map
|
||||
| a | b | | c | d | e |
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
| bc |
|
||||
| cd |
|
||||
| de |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | summary |
|
||||
| a | e | ab,bc,cd,de,de | ab, bc |
|
||||
| e | a | de,cd,bc,ab,ab | de, bc |
|
||||
| a | b | ab,ab | ab |
|
||||
| b | d | bc,cd,cd | bc, cd |
|
||||
|
||||
@smallest
|
||||
Scenario: Check handling empty values
|
||||
Given the node map
|
||||
| a | b | | c | d | e | f |
|
||||
|
||||
And the ways
|
||||
| nodes | name |
|
||||
| ab | ab |
|
||||
| bc | bc |
|
||||
| cd | cd |
|
||||
| de | de |
|
||||
| ef | |
|
||||
|
||||
When I route I should get
|
||||
| f | a | ,de,cd,bc,ab,ab | de, bc |
|
||||
|
||||
@smallest @todo
|
||||
Scenario: Summaries when routing on a simple network
|
||||
Given the node map
|
||||
| a | b |
|
||||
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
|
||||
When I route I should get
|
||||
| from | to | route | summary |
|
||||
| a | b | ab,ab | ab |
|
||||
| b | a | ab,ab | ab |
|
||||
Reference in New Issue
Block a user