tests for includeRelatedStations option

see 1551943
This commit is contained in:
Jannis R 2018-07-10 22:33:52 +02:00
parent a2cd5ba187
commit c0a04fc74f
No known key found for this signature in database
GPG key ID: 0FE83946296A88A5
3 changed files with 67 additions and 0 deletions

View file

@ -23,6 +23,7 @@ const testEarlierLaterJourneys = require('./lib/earlier-later-journeys')
const journeysFailsWithNoProduct = require('./lib/journeys-fails-with-no-product') const journeysFailsWithNoProduct = require('./lib/journeys-fails-with-no-product')
const testDepartures = require('./lib/departures') const testDepartures = require('./lib/departures')
const testDeparturesInDirection = require('./lib/departures-in-direction') const testDeparturesInDirection = require('./lib/departures-in-direction')
const testDeparturesWithoutRelatedStations = require('./lib/departures-without-related-stations')
const testArrivals = require('./lib/arrivals') const testArrivals = require('./lib/arrivals')
const testJourneysWithDetour = require('./lib/journeys-with-detour') const testJourneysWithDetour = require('./lib/journeys-with-detour')
@ -256,6 +257,18 @@ test('departures at Berlin Hbf in direction of Berlin Ostbahnhof', co(function*
t.end() t.end()
})) }))
test('departures without related stations', co(function* (t) {
yield testDeparturesWithoutRelatedStations({
test: t,
fetchDepartures: client.departures,
id: '8089051', // Berlin Yorckstr. (S1)
when,
products: {bus: false},
linesOfRelatedStations: ['S 2', 'S 25', 'S 26', 'U 7']
})
t.end()
}))
test('arrivals at Berlin Schwedter Str.', co(function* (t) { test('arrivals at Berlin Schwedter Str.', co(function* (t) {
const arrivals = yield client.arrivals(blnSchwedterStr, { const arrivals = yield client.arrivals(blnSchwedterStr, {
duration: 5, when duration: 5, when

View file

@ -0,0 +1,41 @@
'use strict'
const co = require('./co')
const testDeparturesWithoutUnrelatedStations = co(function* (cfg) {
const {
test: t,
fetchDepartures,
id,
when
// duration, products
} = cfg
const relatedLines = cfg.linesOfRelatedStations
.map(lName => lName.toLowerCase().trim())
const isUnrelatedLine = (dep) => {
if (!dep.line || !dep.line.name) return false
return relatedLines.includes(dep.line.name.toLowerCase().trim())
}
const depsWith = yield fetchDepartures(id, {
when,
duration: cfg.duration || 20,
products: cfg.products || {}
})
t.ok(depsWith.some(isUnrelatedLine), 'precondition failed: no line at related station found')
const depsWithout = yield fetchDepartures(id, {
includeRelatedStations: false,
when,
duration: cfg.duration || 20,
products: cfg.products || {}
})
const unrelatedDep = depsWithout.find(isUnrelatedLine)
if (unrelatedDep) t.fail('line at related station: ' + unrelatedDep.line.name)
else t.pass('no lines from related stations')
})
module.exports = testDeparturesWithoutUnrelatedStations

View file

@ -27,6 +27,7 @@ const testEarlierLaterJourneys = require('./lib/earlier-later-journeys')
const journeysFailsWithNoProduct = require('./lib/journeys-fails-with-no-product') const journeysFailsWithNoProduct = require('./lib/journeys-fails-with-no-product')
const testDepartures = require('./lib/departures') const testDepartures = require('./lib/departures')
const testDeparturesInDirection = require('./lib/departures-in-direction') const testDeparturesInDirection = require('./lib/departures-in-direction')
const testDeparturesWithoutRelatedStations = require('./lib/departures-without-related-stations')
const testArrivals = require('./lib/arrivals') const testArrivals = require('./lib/arrivals')
const testJourneysWithDetour = require('./lib/journeys-with-detour') const testJourneysWithDetour = require('./lib/journeys-with-detour')
@ -318,6 +319,18 @@ test('departures at 7-digit station', co(function* (t) {
t.end() t.end()
})) }))
test('departures without related stations', co(function* (t) {
yield testDeparturesWithoutRelatedStations({
test: t,
fetchDepartures: client.departures,
id: '900000024101', // Charlottenburg
when,
products: {bus: false, suburban: false, regional: false},
linesOfRelatedStations: ['U7']
})
t.end()
}))
test('arrivals', co(function* (t) { test('arrivals', co(function* (t) {
const arrivals = yield client.arrivals(spichernstr, { const arrivals = yield client.arrivals(spichernstr, {
duration: 5, when duration: 5, when