'use strict'; var util = require('util'); module.exports = function () { this.When(/^I monitor I should get$/, (table, callback) => { var got = {}; this.reprocessAndLoadData((e) => { if (e) return callback(e); var testRow = (row, ri, cb) => { var afterRequest = (err, res) => { if (err) return cb(err); var rows = res.body.split('\n'); var metrics = {}; rows.forEach((r) => { if (r.includes('{')) { var k = r.split('{')[0], v = r.split('}')[1].split(' ')[1]; metrics[k] = v; } else { var kv = r.split(' '); metrics[kv[0]] = kv[1]; } }); var headers = new Set(table.raw()[0]); if (headers.has('key')) { got.key=row['key']; got.value=metrics[row['key']]; } if (!metrics.hasOwnProperty("osrm_routed_instance_info")) { throw new Error("Have no instance information inside the monitoring!"); } cb(null, got); }; this.requestMonitoring(afterRequest); } this.processRowsAndDiff(table, testRow, callback); }); }); };