'use strict' const lines = require('vbb-lines') const sink = require('stream-sink') const assert = require('assert') const linesAt = require('.') const voltastr = 'de:11000:900007103' const linesAtVoltastr = [ { type: 'line', id: '17525_400', name: 'U8', mode: 'train', product: 'subway' // todo: fix once the VBB GTFS data has been fixed // }, { // type: 'line', // id: '17472_700', // name: 'N8', // mode: 'bus', // product: 'bus' // }, { // type: 'line', // id: '17363_700', // name: '247', // mode: 'bus', // product: 'bus' } ] lines('all') .pipe(sink('object')) .then((lines) => { lines = lines.reduce((all, line) => { all[line.id + ''] = line return all }, {}) for (let station in linesAt) { const linesAtStation = linesAt[station] assert(Array.isArray(linesAtStation), 'entry is not an array') for (let line of linesAtStation) { assert(typeof line.id, 'number', 'line id is not a number') assert(lines[line.id], `line ${line.id} does not exist`) assert(line.name, 'line name does not exist or is empty') assert(line.type, 'line type does not exist or is empty') } } assert.deepStrictEqual(linesAt[voltastr], linesAtVoltastr) }) .catch((err) => { console.error(err) process.exit(1) })