diff --git a/parse/line.js b/parse/line.js index b9eb5e52..6df7c6a5 100644 --- a/parse/line.js +++ b/parse/line.js @@ -3,7 +3,6 @@ // todo: what is p.number vs p.line? // todo: what is p.icoX? // todo: what is p.oprX? -// todo: is passing in profile necessary? const parseLine = (profile, p) => { if (!p) return null // todo: handle this upstream const res = {type: 'line', name: p.line || p.name} @@ -14,6 +13,8 @@ const parseLine = (profile, p) => { res.productName = p.prodCtx.catOutS } + // todo: parse mode, remove from profiles + return res } diff --git a/test/db.js b/test/db.js index 63bbd389..9841817d 100644 --- a/test/db.js +++ b/test/db.js @@ -13,10 +13,27 @@ const { assertValidLocation, assertValidLine, assertValidStopover, - isJungfernheide, assertIsJungfernheide, when, isValidWhen } = require('./util.js') +const isJungfernheide = (s) => { + return s.type === 'station' && + (s.id === '008011167' || s.id === '8011167') && + s.name === 'Berlin Jungfernheide' && + s.coordinates && + isRoughlyEqual(s.coordinates.latitude, 52.530408, .0005) && + isRoughlyEqual(s.coordinates.longitude, 13.299424, .0005) +} + +const assertIsJungfernheide = (t, s) => { + t.equal(s.type, 'station') + t.ok(s.id === '008011167' || s.id === '8011167', 'id should be 8011167') + t.equal(s.name, 'Berlin Jungfernheide') + t.ok(s.coordinates) + t.ok(isRoughlyEqual(s.coordinates.latitude, 52.530408, .0005)) + t.ok(isRoughlyEqual(s.coordinates.longitude, 13.299424, .0005)) +} + const test = tapePromise(tape) const client = createClient(dbProfile) @@ -163,7 +180,7 @@ test('locations named Jungfernheide', async (t) => { t.ok(locations.length <= 10) for (let location of locations) assertValidLocation(t, location) - t.ok(locations.find(isJungfernheide)) + t.ok(locations.some(isJungfernheide)) t.end() }) diff --git a/test/util.js b/test/util.js index 6a7a7621..e5d590fe 100644 --- a/test/util.js +++ b/test/util.js @@ -41,10 +41,10 @@ const assertValidLocation = (t, l) => { else if (l.type === 'address') assertValidAddress(t, l) else t.fail('invalid type ' + l.type) - t.equal(typeof s.name, 'string') - t.ok(s.coordinates) - t.equal(typeof s.coordinates.latitude, 'number') - t.equal(typeof s.coordinates.longitude, 'number') + t.equal(typeof l.name, 'string') + t.ok(l.coordinates) + t.equal(typeof l.coordinates.latitude, 'number') + t.equal(typeof l.coordinates.longitude, 'number') } const isValidMode = (m) => { @@ -57,7 +57,7 @@ const isValidMode = (m) => { const assertValidLine = (t, l) => { t.equal(l.type, 'line') t.equal(typeof l.name, 'string') - t.ok(isValidMode(l.mode)) + t.ok(isValidMode(l.mode), 'invalid mode ' + l.mode) t.equal(typeof l.product, 'string') } @@ -75,33 +75,6 @@ const assertValidStopover = (t, s) => { assertValidStation(t, s.station) } -const isJungfernheide = (s) => { - return s.type === 'station' && - s.id === '8011167' && - s.name === 'Berlin Jungfernheide' && - s.coordinates && - isRoughlyEqual(s.coordinates.latitude, 52.530408, .0005) && - isRoughlyEqual(s.coordinates.longitude, 13.299424, .0005) -} - -const assertIsJungfernheide = (t, s) => { - t.equal(s.type, 'station') - t.equal(s.id, '8011167') - t.equal(s.name, 'Berlin Jungfernheide') - t.ok(s.coordinates) - t.ok(isRoughlyEqual(s.coordinates.latitude, 52.530408, .0005)) - t.ok(isRoughlyEqual(s.coordinates.longitude, 13.299424, .0005)) -} - -const assertIsMünchenHbf = (s) => { - t.equal(s.type, 'station') - t.equal(s.id, '8000261') - t.equal(s.name, 'München Hbf') - t.ok(s.coordinates) - t.equal(s.coordinates.latitude, 48.140229) - t.equal(s.coordinates.longitude, 11.558339) -} - const minute = 60 * 1000 const hour = 60 * minute const day = 24 * hour @@ -125,7 +98,5 @@ module.exports = { assertValidLine, isValidDateTime, assertValidStopover, - isJungfernheide, assertIsJungfernheide, - assertIsMünchenHbf, when, isValidWhen }