diff --git a/test/bvg.js b/test/bvg.js index 0366ecb1..7c9f41fb 100644 --- a/test/bvg.js +++ b/test/bvg.js @@ -9,7 +9,6 @@ const tapePromise = require('tape-promise').default const tape = require('tape') const isRoughlyEqual = require('is-roughly-equal') -const co = require('./lib/co') const createClient = require('..') const bvgProfile = require('../p/bvg') const products = require('../p/bvg/products') @@ -66,14 +65,14 @@ const jannowitzbrücke = '900000100004' const hour = 60 * 60 * 1000 -test('journeys – Spichernstr. to Bismarckstr.', co(function* (t) { - const journeys = yield client.journeys(spichernstr, bismarckstr, { +test('journeys – Spichernstr. to Bismarckstr.', async (t) => { + const journeys = await client.journeys(spichernstr, bismarckstr, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -83,10 +82,10 @@ test('journeys – Spichernstr. to Bismarckstr.', co(function* (t) { // todo: find a journey where there ticket info is always available t.end() -})) +}) -test('journeys – only subway', co(function* (t) { - const journeys = yield client.journeys(spichernstr, bismarckstr, { +test('journeys – only subway', async (t) => { + const journeys = await client.journeys(spichernstr, bismarckstr, { results: 20, departure: when, products: { @@ -117,7 +116,7 @@ test('journeys – only subway', co(function* (t) { } t.end() -})) +}) test('journeys – fails with no product', (t) => { journeysFailsWithNoProduct({ @@ -131,8 +130,8 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('earlier/later journeys', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -142,20 +141,19 @@ test('earlier/later journeys', co(function* (t) { }) t.end() -})) +}) -test.skip('journeys – leg cycle & alternatives', co(function* (t) { - yield testLegCycleAlternatives({ +test.skip('journeys – leg cycle & alternatives', async (t) => { + await testLegCycleAlternatives({ test: t, fetchJourneys: client.journeys, fromId: tiergarten, toId: jannowitzbrücke }) t.end() -})) - -test('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +}) +test('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -165,35 +163,35 @@ test('refreshJourney', co(function* (t) { when }) t.end() -})) +}) -test('trip details', co(function* (t) { - const journeys = yield client.journeys(spichernstr, amrumerStr, { +test('trip details', async (t) => { + const journeys = await client.journeys(spichernstr, amrumerStr, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('journeys – station to address', co(function* (t) { +test('journeys – station to address', async (t) => { const torfstr = { type: 'location', address: '13353 Berlin-Wedding, Torfstr. 17', latitude: 52.541797, longitude: 13.350042 } - const journeys = yield client.journeys(spichernstr, torfstr, { + const journeys = await client.journeys(spichernstr, torfstr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -201,9 +199,9 @@ test('journeys – station to address', co(function* (t) { to: torfstr }) t.end() -})) +}) -test('journeys – station to POI', co(function* (t) { +test('journeys – station to POI', async (t) => { const atze = { type: 'location', id: '900980720', @@ -211,12 +209,12 @@ test('journeys – station to POI', co(function* (t) { latitude: 52.543333, longitude: 13.351686 } - const journeys = yield client.journeys(spichernstr, atze, { + const journeys = await client.journeys(spichernstr, atze, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -224,46 +222,46 @@ test('journeys – station to POI', co(function* (t) { to: atze }) t.end() -})) +}) -test('journeys: via works – with detour', co(function* (t) { +test('journeys: via works – with detour', async (t) => { // Going from Westhafen to Wedding via Württembergalle without detour // is currently impossible. We check if the routing engine computes a detour. - const journeys = yield client.journeys(westhafen, wedding, { + const journeys = await client.journeys(westhafen, wedding, { via: württembergallee, results: 1, departure: when, stopovers: true }) - yield testJourneysWithDetour({ + await testJourneysWithDetour({ test: t, journeys, validate, detourIds: [württembergallee] }) t.end() -})) +}) // todo: without detour test -test('departures', co(function* (t) { - const departures = yield client.departures(spichernstr, { +test('departures', async (t) => { + const departures = await client.departures(spichernstr, { duration: 5, when, stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: spichernstr }) t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: spichernstr, name: 'U Spichernstr', @@ -276,10 +274,10 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('departures at Spichernstr. in direction of Westhafen', co(function* (t) { - yield testDeparturesInDirection({ +test('departures at Spichernstr. in direction of Westhafen', async (t) => { + await testDeparturesInDirection({ test: t, fetchDepartures: client.departures, fetchTrip: client.trip, @@ -289,17 +287,17 @@ test('departures at Spichernstr. in direction of Westhafen', co(function* (t) { validate }) t.end() -})) +}) -test('departures at 7-digit station', co(function* (t) { +test('departures at 7-digit station', async (t) => { const eisenach = '8010097' // see derhuerst/vbb-hafas#22 - yield client.departures(eisenach, {when}) + await client.departures(eisenach, {when}) t.pass('did not fail') t.end() -})) +}) -test('departures without related stations', co(function* (t) { - yield testDeparturesWithoutRelatedStations({ +test('departures without related stations', async (t) => { + await testDeparturesWithoutRelatedStations({ test: t, fetchDepartures: client.departures, id: '900000024101', // Charlottenburg @@ -308,28 +306,28 @@ test('departures without related stations', co(function* (t) { linesOfRelatedStations: ['U7'] }) t.end() -})) +}) -test('arrivals', co(function* (t) { - const arrivals = yield client.arrivals(spichernstr, { +test('arrivals', async (t) => { + const arrivals = await client.arrivals(spichernstr, { duration: 5, when }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: spichernstr }) t.end() -})) +}) -test('nearby', co(function* (t) { +test('nearby', async (t) => { const berlinerStr = '900000044201' const landhausstr = '900000043252' // Berliner Str./Bundesallee - const nearby = yield client.nearby({ + const nearby = await client.nearby({ type: 'location', latitude: 52.4873452, longitude: 13.3310411 @@ -348,10 +346,10 @@ test('nearby', co(function* (t) { t.ok(nearby[1].distance < 200) t.end() -})) +}) -test('locations', co(function* (t) { - const locations = yield client.locations('Alexanderplatz', {results: 20}) +test('locations', async (t) => { + const locations = await client.locations('Alexanderplatz', {results: 20}) validate(t, locations, 'locations', 'locations') t.ok(locations.length <= 20) @@ -361,19 +359,19 @@ test('locations', co(function* (t) { t.ok(locations.find(s => !s.name && s.address)) // addresses t.end() -})) +}) -test('station', co(function* (t) { - const s = yield client.station(spichernstr) +test('station', async (t) => { + const s = await client.station(spichernstr) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, spichernstr) t.end() -})) +}) -test('radar', co(function* (t) { - const vehicles = yield client.radar({ +test('radar', async (t) => { + const vehicles = await client.radar({ north: 52.52411, west: 13.41002, south: 52.51942, @@ -384,9 +382,9 @@ test('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) -test('reachableFrom', co(function* (t) { +test('reachableFrom', async (t) => { const torfstr17 = { type: 'location', address: '13353 Berlin-Wedding, Torfstr. 17', @@ -394,7 +392,7 @@ test('reachableFrom', co(function* (t) { longitude: 13.350042 } - yield testReachableFrom({ + await testReachableFrom({ test: t, reachableFrom: client.reachableFrom, address: torfstr17, @@ -403,4 +401,4 @@ test('reachableFrom', co(function* (t) { validate }) t.end() -})) +}) diff --git a/test/cmta.js b/test/cmta.js index 2c658166..bc686838 100644 --- a/test/cmta.js +++ b/test/cmta.js @@ -5,7 +5,6 @@ const tapePromise = require('tape-promise').default const tape = require('tape') const {createWhen} = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const cmtaProfile = require('../p/cmta') const products = require('../p/cmta/products') @@ -42,14 +41,14 @@ const broadieOaks = '2370' const domain = '5919' const capitol591 = '591' -test('journeys – Broadie Oaks to Domain', co(function* (t) { - const journeys = yield client.journeys(broadieOaks, domain, { +test('journeys – Broadie Oaks to Domain', async (t) => { + const journeys = await client.journeys(broadieOaks, domain, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -57,7 +56,7 @@ test('journeys – Broadie Oaks to Domain', co(function* (t) { toId: domain }) t.end() -})) +}) // todo: journeys, only one product @@ -73,7 +72,7 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('Domain to 1104 Elm Street, Austin, TX 78703', co(function*(t) { +test('Domain to 1104 Elm Street, Austin, TX 78703', async (t) => { const someAddress = { type: 'location', address: '1104 ELM ST, Austin, TX 78703', @@ -81,12 +80,12 @@ test('Domain to 1104 Elm Street, Austin, TX 78703', co(function*(t) { longitude: -97.758292 } - const journeys = yield client.journeys(domain, someAddress, { + const journeys = await client.journeys(domain, someAddress, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -94,9 +93,9 @@ test('Domain to 1104 Elm Street, Austin, TX 78703', co(function*(t) { to: someAddress }) t.end() -})) +}) -test('Domain to Whole Foods Market - North Lamar Blvd', co(function*(t) { +test('Domain to Whole Foods Market - North Lamar Blvd', async (t) => { const wholeFoodsMarket = { type: 'location', id: '9845477', @@ -104,12 +103,12 @@ test('Domain to Whole Foods Market - North Lamar Blvd', co(function*(t) { latitude: 30.270653, longitude: -97.753564 } - const journeys = yield client.journeys(domain, wholeFoodsMarket, { + const journeys = await client.journeys(domain, wholeFoodsMarket, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -117,13 +116,13 @@ test('Domain to Whole Foods Market - North Lamar Blvd', co(function*(t) { to: wholeFoodsMarket }) t.end() -})) +}) // todo: via works – with detour // todo: without detour -test('earlier/later journeys', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -133,10 +132,10 @@ test('earlier/later journeys', co(function* (t) { }) t.end() -})) +}) -test('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +test('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -146,39 +145,39 @@ test('refreshJourney', co(function* (t) { when }) t.end() -})) +}) -test('trip details', co(function* (t) { - const journeys = yield client.journeys(broadieOaks, domain, { +test('trip details', async (t) => { + const journeys = await client.journeys(broadieOaks, domain, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('departures at Broadie Oaks', co(function*(t) { - const departures = yield client.departures(broadieOaks, { +test('departures at Broadie Oaks', async (t) => { + const departures = await client.departures(broadieOaks, { duration: 10, when, stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: broadieOaks }) t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: broadieOaks, name: 'Magdeburg Hbf', @@ -191,26 +190,26 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('arrivals at Broadie Oaks', co(function*(t) { - const arrivals = yield client.arrivals(broadieOaks, { +test('arrivals at Broadie Oaks', async (t) => { + const arrivals = await client.arrivals(broadieOaks, { duration: 10, when }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: broadieOaks }) t.end() -})) +}) // todo: nearby -test('locations named "Capitol"', co(function*(t) { - const locations = yield client.locations('Capitol', { +test('locations named "Capitol"', async (t) => { + const locations = await client.locations('Capitol', { results: 10 }) @@ -224,19 +223,19 @@ test('locations named "Capitol"', co(function*(t) { })) t.end() -})) +}) -test('station Domain', co(function* (t) { - const s = yield client.station(domain) +test('station Domain', async (t) => { + const s = await client.station(domain) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, domain) t.end() -})) +}) -test('radar', co(function* (t) { - const vehicles = yield client.radar({ +test('radar', async (t) => { + const vehicles = await client.radar({ north: 30.240877, west: -97.804588, south: 30.225378, @@ -247,10 +246,10 @@ test('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) -test('reachableFrom', co(function* (t) { - yield testReachableFrom({ +test('reachableFrom', async (t) => { + await testReachableFrom({ test: t, reachableFrom: client.reachableFrom, address: { @@ -264,4 +263,4 @@ test('reachableFrom', co(function* (t) { validate }) t.end() -})) +}) diff --git a/test/db.js b/test/db.js index f3de98b2..85bcae71 100644 --- a/test/db.js +++ b/test/db.js @@ -7,7 +7,6 @@ const tape = require('tape') const isRoughlyEqual = require('is-roughly-equal') const {createWhen} = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const dbProfile = require('../p/db') const products = require('../p/db/products') @@ -88,14 +87,14 @@ const blnTiergarten = '8089091' const blnJannowitzbrücke = '8089019' const potsdamHbf = '8012666' -test('journeys – Berlin Schwedter Str. to München Hbf', co(function* (t) { - const journeys = yield client.journeys(blnSchwedterStr, münchenHbf, { +test('journeys – Berlin Schwedter Str. to München Hbf', async (t) => { + const journeys = await client.journeys(blnSchwedterStr, münchenHbf, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -108,7 +107,7 @@ test('journeys – Berlin Schwedter Str. to München Hbf', co(function* (t) { } t.end() -})) +}) // todo: journeys, only one product @@ -124,19 +123,19 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('Berlin Schwedter Str. to Torfstraße 17', co(function* (t) { +test('Berlin Schwedter Str. to Torfstraße 17', async (t) => { const torfstr = { type: 'location', address: 'Torfstraße 17', latitude: 52.5416823, longitude: 13.3491223 } - const journeys = yield client.journeys(blnSchwedterStr, torfstr, { + const journeys = await client.journeys(blnSchwedterStr, torfstr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -144,9 +143,9 @@ test('Berlin Schwedter Str. to Torfstraße 17', co(function* (t) { to: torfstr }) t.end() -})) +}) -test('Berlin Schwedter Str. to ATZE Musiktheater', co(function* (t) { +test('Berlin Schwedter Str. to ATZE Musiktheater', async (t) => { const atze = { type: 'location', id: '991598902', @@ -154,12 +153,12 @@ test('Berlin Schwedter Str. to ATZE Musiktheater', co(function* (t) { latitude: 52.542417, longitude: 13.350437 } - const journeys = yield client.journeys(blnSchwedterStr, atze, { + const journeys = await client.journeys(blnSchwedterStr, atze, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -167,31 +166,31 @@ test('Berlin Schwedter Str. to ATZE Musiktheater', co(function* (t) { to: atze }) t.end() -})) +}) -test('journeys: via works – with detour', co(function* (t) { +test('journeys: via works – with detour', async (t) => { // Going from Westhafen to Wedding via Württembergalle without detour // is currently impossible. We check if the routing engine computes a detour. - const journeys = yield client.journeys(westhafen, wedding, { + const journeys = await client.journeys(westhafen, wedding, { via: württembergallee, results: 1, departure: when, stopovers: true }) - yield testJourneysWithDetour({ + await testJourneysWithDetour({ test: t, journeys, validate, detourIds: [württembergallee] }) t.end() -})) +}) // todo: without detour -test('earlier/later journeys, Jungfernheide -> München Hbf', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys, Jungfernheide -> München Hbf', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -201,20 +200,20 @@ test('earlier/later journeys, Jungfernheide -> München Hbf', co(function* (t) { }) t.end() -})) +}) -test.skip('journeys – leg cycle & alternatives', co(function* (t) { - yield testLegCycleAlternatives({ +test.skip('journeys – leg cycle & alternatives', async (t) => { + await testLegCycleAlternatives({ test: t, fetchJourneys: client.journeys, fromId: blnTiergarten, toId: blnJannowitzbrücke }) t.end() -})) +}) -test('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +test('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -224,17 +223,17 @@ test('refreshJourney', co(function* (t) { when }) t.end() -})) +}) -test('trip details', co(function* (t) { - const journeys = yield client.journeys(berlinHbf, münchenHbf, { +test('trip details', async (t) => { + const journeys = await client.journeys(berlinHbf, münchenHbf, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) const validateJourneyLeg = createValidateJourneyLeg(cfg) const validate = createValidate(cfg, { @@ -246,25 +245,25 @@ test('trip details', co(function* (t) { validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('departures at Berlin Schwedter Str.', co(function* (t) { - const departures = yield client.departures(blnSchwedterStr, { +test('departures at Berlin Schwedter Str.', async (t) => { + const departures = await client.departures(blnSchwedterStr, { duration: 5, when, stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: blnSchwedterStr }) t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: jungfernheide, name: 'Berlin Jungfernheide', @@ -277,10 +276,10 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('departures at Berlin Hbf in direction of Berlin Ostbahnhof', co(function* (t) { - yield testDeparturesInDirection({ +test('departures at Berlin Hbf in direction of Berlin Ostbahnhof', async (t) => { + await testDeparturesInDirection({ test: t, fetchDepartures: client.departures, fetchTrip: client.trip, @@ -290,10 +289,10 @@ test('departures at Berlin Hbf in direction of Berlin Ostbahnhof', co(function* validate }) t.end() -})) +}) -test('departures without related stations', co(function* (t) { - yield testDeparturesWithoutRelatedStations({ +test('departures without related stations', async (t) => { + await testDeparturesWithoutRelatedStations({ test: t, fetchDepartures: client.departures, id: '8089051', // Berlin Yorckstr. (S1) @@ -302,25 +301,25 @@ test('departures without related stations', co(function* (t) { linesOfRelatedStations: ['S 2', 'S 25', 'S 26', 'U 7'] }) t.end() -})) +}) -test('arrivals at Berlin Schwedter Str.', co(function* (t) { - const arrivals = yield client.arrivals(blnSchwedterStr, { +test('arrivals at Berlin Schwedter Str.', async (t) => { + const arrivals = await client.arrivals(blnSchwedterStr, { duration: 5, when, stopovers: true }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: blnSchwedterStr }) t.end() -})) +}) -test('nearby Berlin Jungfernheide', co(function* (t) { - const nearby = yield client.nearby({ +test('nearby Berlin Jungfernheide', async (t) => { + const nearby = await client.nearby({ type: 'location', latitude: 52.530273, longitude: 13.299433 @@ -341,10 +340,10 @@ test('nearby Berlin Jungfernheide', co(function* (t) { t.ok(s0.distance <= 100) t.end() -})) +}) -test('locations named Jungfernheide', co(function* (t) { - const locations = yield client.locations('Jungfernheide', { +test('locations named Jungfernheide', async (t) => { + const locations = await client.locations('Jungfernheide', { results: 10 }) @@ -355,27 +354,27 @@ test('locations named Jungfernheide', co(function* (t) { }), 'Jungfernheide not found') t.end() -})) +}) -test('station', co(function* (t) { - const s = yield client.station(regensburgHbf) +test('station', async (t) => { + const s = await client.station(regensburgHbf) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, regensburgHbf) t.end() -})) +}) -test('line with additionalName', co(function* (t) { - const departures = yield client.departures(potsdamHbf, { +test('line with additionalName', async (t) => { + const departures = await client.departures(potsdamHbf, { duration: 12 * 60, // 12 minutes products: {bus: false, suburban: false, tram: false} }) t.ok(departures.some(d => d.line && d.line.additionalName)) t.end() -})) +}) -test('reachableFrom', co(function* (t) { +test('reachableFrom', async (t) => { const torfstr17 = { type: 'location', address: 'Torfstraße 17', @@ -383,7 +382,7 @@ test('reachableFrom', co(function* (t) { longitude: 13.3491223 } - yield testReachableFrom({ + await testReachableFrom({ test: t, reachableFrom: client.reachableFrom, address: torfstr17, @@ -392,4 +391,4 @@ test('reachableFrom', co(function* (t) { validate }) t.end() -})) +}) diff --git a/test/insa.js b/test/insa.js index 836fcbc3..1e237e67 100644 --- a/test/insa.js +++ b/test/insa.js @@ -5,7 +5,6 @@ const tape = require('tape') const isRoughlyEqual = require('is-roughly-equal') const {createWhen} = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const insaProfile = require('../p/insa') const products = require('../p/insa/products') @@ -47,14 +46,14 @@ const stendal = '8010334' const dessau = '8010077' const universitaet = '19686' -test('journeys – Magdeburg Hbf to Magdeburg-Buckau', co(function* (t) { - const journeys = yield client.journeys(magdeburgHbf, magdeburgBuckau, { +test('journeys – Magdeburg Hbf to Magdeburg-Buckau', async (t) => { + const journeys = await client.journeys(magdeburgHbf, magdeburgBuckau, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -62,7 +61,7 @@ test('journeys – Magdeburg Hbf to Magdeburg-Buckau', co(function* (t) { toId: magdeburgBuckau }) t.end() -})) +}) // todo: journeys, only one product @@ -78,7 +77,7 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', co(function*(t) { +test('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', async (t) => { const sternStr = { type: 'location', address: 'Magdeburg - Altenstadt, Sternstraße 10', @@ -86,12 +85,12 @@ test('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', co(function*(t) { longitude: 11.422332 } - const journeys = yield client.journeys(magdeburgHbf, sternStr, { + const journeys = await client.journeys(magdeburgHbf, sternStr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -99,9 +98,9 @@ test('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', co(function*(t) { to: sternStr }) t.end() -})) +}) -test('Magdeburg Hbf to Kloster Unser Lieben Frauen', co(function*(t) { +test('Magdeburg Hbf to Kloster Unser Lieben Frauen', async (t) => { const kloster = { type: 'location', id: '970012223', @@ -109,12 +108,12 @@ test('Magdeburg Hbf to Kloster Unser Lieben Frauen', co(function*(t) { latitude: 52.127601, longitude: 11.636437 } - const journeys = yield client.journeys(magdeburgHbf, kloster, { + const journeys = await client.journeys(magdeburgHbf, kloster, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -122,32 +121,32 @@ test('Magdeburg Hbf to Kloster Unser Lieben Frauen', co(function*(t) { to: kloster }) t.end() -})) +}) -test('journeys: via works – with detour', co(function* (t) { +test('journeys: via works – with detour', async (t) => { // Going from Magdeburg, Hasselbachplatz (Sternstr.) (Tram/Bus) to Stendal // via Dessau without detour is currently impossible. We check if the routing // engine computes a detour. - const journeys = yield client.journeys(hasselbachplatzSternstrasse, stendal, { + const journeys = await client.journeys(hasselbachplatzSternstrasse, stendal, { via: dessau, results: 1, departure: when, stopovers: true }) - yield testJourneysWithDetour({ + await testJourneysWithDetour({ test: t, journeys, validate, detourIds: [dessau] }) t.end() -})) +}) // todo: without detour -test('earlier/later journeys', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -157,39 +156,39 @@ test('earlier/later journeys', co(function* (t) { }) t.end() -})) +}) -test('trip details', co(function* (t) { - const journeys = yield client.journeys(magdeburgHbf, magdeburgBuckau, { +test('trip details', async (t) => { + const journeys = await client.journeys(magdeburgHbf, magdeburgBuckau, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('departures at Magdeburg Leiterstr.', co(function*(t) { - const departures = yield client.departures(leiterstr, { +test('departures at Magdeburg Leiterstr.', async (t) => { + const departures = await client.departures(leiterstr, { duration: 5, when, stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: leiterstr }) t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: magdeburgHbf, name: 'Magdeburg Hbf', @@ -202,10 +201,10 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('departures at Leiterstr in direction of Universität', co(function* (t) { - yield testDeparturesInDirection({ +test('departures at Leiterstr in direction of Universität', async (t) => { + await testDeparturesInDirection({ test: t, fetchDepartures: client.departures, fetchTrip: client.trip, @@ -215,27 +214,27 @@ test('departures at Leiterstr in direction of Universität', co(function* (t) { validate }) t.end() -})) +}) -test('arrivals at Magdeburg Leiterstr.', co(function*(t) { - const arrivals = yield client.arrivals(leiterstr, { +test('arrivals at Magdeburg Leiterstr.', async (t) => { + const arrivals = await client.arrivals(leiterstr, { duration: 5, when }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: leiterstr }) t.end() -})) +}) // todo: nearby -test('locations named Magdeburg', co(function*(t) { +test('locations named Magdeburg', async (t) => { const nordpark = '7480' - const locations = yield client.locations('nordpark', { + const locations = await client.locations('nordpark', { results: 20 }) @@ -249,19 +248,19 @@ test('locations named Magdeburg', co(function*(t) { })) t.end() -})) +}) -test('station Magdeburg-Buckau', co(function* (t) { - const s = yield client.station(magdeburgBuckau) +test('station Magdeburg-Buckau', async (t) => { + const s = await client.station(magdeburgBuckau) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, magdeburgBuckau) t.end() -})) +}) -test('radar', co(function* (t) { - const vehicles = yield client.radar({ +test('radar', async (t) => { + const vehicles = await client.radar({ north: 52.148364, west: 11.600826, south: 52.108486, @@ -277,4 +276,4 @@ test('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) diff --git a/test/lib/arrivals.js b/test/lib/arrivals.js index 4c486f49..422c7606 100644 --- a/test/lib/arrivals.js +++ b/test/lib/arrivals.js @@ -1,8 +1,6 @@ 'use strict' -const co = require('./co') - -const testArrivals = co(function* (cfg) { +const testArrivals = async (cfg) => { const {test: t, arrivals: arrs, validate, id} = cfg validate(t, arrs, 'arrivals', 'arrivals') @@ -20,6 +18,6 @@ const testArrivals = co(function* (cfg) { // todo: move into arrivals validator t.deepEqual(arrs, arrs.sort((a, b) => t.when > b.when)) -}) +} module.exports = testArrivals diff --git a/test/lib/co.js b/test/lib/co.js deleted file mode 100644 index c01ad0b5..00000000 --- a/test/lib/co.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict' - -// https://github.com/babel/babel/blob/3c8d831fe41f502cbe2459a271d19c7329ffe369/packages/babel-helpers/src/helpers.js#L242-L270 -const co = (fn) => { - return function run () { - const self = this, args = arguments - return new Promise((resolve, reject) => { - const gen = fn.apply(self, args) - const step = (key, arg) => { - try { - var info = gen[key](arg) - var value = info.value - } catch (error) { - reject(error) - return - } - if (info.done) resolve(value) - else Promise.resolve(value).then(_next, _throw) - } - - const _next = (value) => { - step('next', value) - } - const _throw = (err) => { - step('throw', err) - } - - _next() - }) - } -} - -module.exports = co diff --git a/test/lib/departures-in-direction.js b/test/lib/departures-in-direction.js index bc82a790..495b06eb 100644 --- a/test/lib/departures-in-direction.js +++ b/test/lib/departures-in-direction.js @@ -1,8 +1,6 @@ 'use strict' -const co = require('./co') - -const testDeparturesInDirection = co(function* (cfg) { +const testDeparturesInDirection = async (cfg) => { const { test: t, fetchDepartures, @@ -13,7 +11,7 @@ const testDeparturesInDirection = co(function* (cfg) { validate } = cfg - const deps = yield fetchDepartures(id, { + const deps = await fetchDepartures(id, { direction: directionIds[0], when }) @@ -25,7 +23,7 @@ const testDeparturesInDirection = co(function* (cfg) { const name = `deps[${i}]` const line = dep.line && dep.line.name - const trip = yield fetchTrip(dep.tripId, line, { + const trip = await fetchTrip(dep.tripId, line, { when, stopovers: true }) t.ok(trip.stopovers.some(st => ( @@ -33,6 +31,6 @@ const testDeparturesInDirection = co(function* (cfg) { directionIds.includes(st.stop.id) )), `trip ${dep.tripId} of ${name} has no stopover at ${directionIds}`) } -}) +} module.exports = testDeparturesInDirection diff --git a/test/lib/departures-without-related-stations.js b/test/lib/departures-without-related-stations.js index 02c60f57..9b21672b 100644 --- a/test/lib/departures-without-related-stations.js +++ b/test/lib/departures-without-related-stations.js @@ -1,8 +1,6 @@ 'use strict' -const co = require('./co') - -const testDeparturesWithoutUnrelatedStations = co(function* (cfg) { +const testDeparturesWithoutUnrelatedStations = async (cfg) => { const { test: t, fetchDepartures, @@ -19,14 +17,14 @@ const testDeparturesWithoutUnrelatedStations = co(function* (cfg) { return relatedLines.includes(dep.line.name.toLowerCase().trim()) } - const depsWith = yield fetchDepartures(id, { + const depsWith = await 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, { + const depsWithout = await fetchDepartures(id, { includeRelatedStations: false, when, duration: cfg.duration || 20, @@ -36,6 +34,6 @@ const testDeparturesWithoutUnrelatedStations = co(function* (cfg) { 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 diff --git a/test/lib/departures.js b/test/lib/departures.js index e0853fe1..789e898c 100644 --- a/test/lib/departures.js +++ b/test/lib/departures.js @@ -1,8 +1,6 @@ 'use strict' -const co = require('./co') - -const testDepartures = co(function* (cfg) { +const testDepartures = async (cfg) => { const {test: t, departures: deps, validate, id} = cfg validate(t, deps, 'departures', 'departures') @@ -20,6 +18,6 @@ const testDepartures = co(function* (cfg) { // todo: move into deps validator t.deepEqual(deps, deps.sort((a, b) => t.when > b.when)) -}) +} module.exports = testDepartures diff --git a/test/lib/earlier-later-journeys.js b/test/lib/earlier-later-journeys.js index 0fddb8a8..8eff697f 100644 --- a/test/lib/earlier-later-journeys.js +++ b/test/lib/earlier-later-journeys.js @@ -1,8 +1,6 @@ 'use strict' -const co = require('./co') - -const testEarlierLaterJourneys = co(function* (cfg) { +const testEarlierLaterJourneys = async (cfg) => { const { test: t, fetchJourneys, @@ -12,7 +10,7 @@ const testEarlierLaterJourneys = co(function* (cfg) { // todo: validate } = cfg - const model = yield fetchJourneys(fromId, toId, { + const model = await fetchJourneys(fromId, toId, { results: 3, departure: when }) @@ -60,7 +58,7 @@ const testEarlierLaterJourneys = co(function* (cfg) { else if (dep > latestDep) latestDep = dep } - const earlier = yield fetchJourneys(fromId, toId, { + const earlier = await fetchJourneys(fromId, toId, { results: 3, // todo: single journey ref? earlierThan: model.earlierRef @@ -71,7 +69,7 @@ const testEarlierLaterJourneys = co(function* (cfg) { t.ok(dep < earliestDep) } - const later = yield fetchJourneys(fromId, toId, { + const later = await fetchJourneys(fromId, toId, { results: 3, // todo: single journey ref? laterThan: model.laterRef @@ -81,6 +79,6 @@ const testEarlierLaterJourneys = co(function* (cfg) { const dep = new Date(firstLeg.departure || firstLeg.formerScheduledDeparture) t.ok(dep > latestDep) } -}) +} module.exports = testEarlierLaterJourneys diff --git a/test/lib/journeys-station-to-address.js b/test/lib/journeys-station-to-address.js index 1184aeda..5c67d0b8 100644 --- a/test/lib/journeys-station-to-address.js +++ b/test/lib/journeys-station-to-address.js @@ -2,9 +2,7 @@ const isRoughlyEqual = require('is-roughly-equal') -const co = require('./co') - -const testJourneysStationToAddress = co(function* (cfg) { +const testJourneysStationToAddress = async (cfg) => { const {test: t, journeys, validate, fromId} = cfg const {address, latitude, longitude} = cfg.to @@ -25,6 +23,6 @@ const testJourneysStationToAddress = co(function* (cfg) { t.ok(isRoughlyEqual(.0001, d.latitude, latitude), n + '.latitude is invalid') t.ok(isRoughlyEqual(.0001, d.longitude, longitude), n + '.longitude is invalid') } -}) +} module.exports = testJourneysStationToAddress diff --git a/test/lib/journeys-station-to-poi.js b/test/lib/journeys-station-to-poi.js index ca7fe1da..a5fe94b6 100644 --- a/test/lib/journeys-station-to-poi.js +++ b/test/lib/journeys-station-to-poi.js @@ -2,9 +2,7 @@ const isRoughlyEqual = require('is-roughly-equal') -const co = require('./co') - -const testJourneysStationToPoi = co(function* (cfg) { +const testJourneysStationToPoi = async (cfg) => { const {test: t, journeys, validate, fromId} = cfg const {id, name, latitude, longitude} = cfg.to @@ -34,6 +32,6 @@ const testJourneysStationToPoi = co(function* (cfg) { t.ok(isRoughlyEqual(.0001, d.latitude, latitude), dN + '.latitude is invalid') t.ok(isRoughlyEqual(.0001, d.longitude, longitude), dN + '.longitude is invalid') } -}) +} module.exports = testJourneysStationToPoi diff --git a/test/lib/journeys-station-to-station.js b/test/lib/journeys-station-to-station.js index 5cc2ef58..fb0a8de8 100644 --- a/test/lib/journeys-station-to-station.js +++ b/test/lib/journeys-station-to-station.js @@ -1,8 +1,6 @@ 'use strict' -const co = require('./co') - -const testJourneysStationToStation = co(function* (cfg) { +const testJourneysStationToStation = async (cfg) => { const {test: t, journeys, validate, fromId, toId} = cfg validate(t, journeys, 'journeys', 'journeys') @@ -17,6 +15,6 @@ const testJourneysStationToStation = co(function* (cfg) { t.strictEqual(origin.id, fromId) t.strictEqual(dest.id, toId) } -}) +} module.exports = testJourneysStationToStation diff --git a/test/lib/journeys-with-detour.js b/test/lib/journeys-with-detour.js index 049f103c..45980127 100644 --- a/test/lib/journeys-with-detour.js +++ b/test/lib/journeys-with-detour.js @@ -1,8 +1,6 @@ 'use strict' -const co = require('./co') - -const testJourneysWithDetour = co(function* (cfg) { +const testJourneysWithDetour = async (cfg) => { const {test: t, journeys, validate, detourIds} = cfg // We assume that going from A to B via C *without* detour is currently @@ -17,6 +15,6 @@ const testJourneysWithDetour = co(function* (cfg) { )) }) t.ok(leg, detourIds.join('/') + ' is not being passed') -}) +} module.exports = testJourneysWithDetour diff --git a/test/lib/leg-cycle-alternatives.js b/test/lib/leg-cycle-alternatives.js index 65f38fc5..af00c08c 100644 --- a/test/lib/leg-cycle-alternatives.js +++ b/test/lib/leg-cycle-alternatives.js @@ -2,10 +2,9 @@ const isRoughlyEqual = require('is-roughly-equal') -const co = require('./co') const {hour} = require('./util') -const testLegCycleAlternatives = co(function* (cfg) { +const testLegCycleAlternatives = async (cfg) => { const { test: t, fetchJourneys, @@ -15,7 +14,7 @@ const testLegCycleAlternatives = co(function* (cfg) { // Apparently HAFAS doesn't return the leg cycle or alternatives more // than ~2 hours in advance. This is why we don't pass `when` here. - const journeys = yield fetchJourneys(fromId, toId, {results: 3}) + const journeys = await fetchJourneys(fromId, toId, {results: 3}) for (let i = 0; i < journeys.length; i++) { const journey = journeys[i] @@ -42,6 +41,6 @@ const testLegCycleAlternatives = co(function* (cfg) { } } } -}) +} module.exports = testLegCycleAlternatives diff --git a/test/lib/reachable-from.js b/test/lib/reachable-from.js index f7b5b293..69733894 100644 --- a/test/lib/reachable-from.js +++ b/test/lib/reachable-from.js @@ -2,9 +2,7 @@ const isPlainObject = require('lodash/isPlainObject') -const co = require('./co') - -const testReachableFrom = co(function* (cfg) { +const testReachableFrom = async (cfg) => { const { test: t, reachableFrom, @@ -14,7 +12,7 @@ const testReachableFrom = co(function* (cfg) { validate } = cfg - const results = yield reachableFrom(address, { + const results = await reachableFrom(address, { when, maxDuration }) @@ -39,6 +37,6 @@ const testReachableFrom = co(function* (cfg) { const sorted = results.sort((a, b) => a.duration - b.duration) t.deepEqual(results, sorted, 'results must be sorted by res.duration') -}) +} module.exports = testReachableFrom diff --git a/test/lib/refresh-journey.js b/test/lib/refresh-journey.js index 8311e689..774aff16 100644 --- a/test/lib/refresh-journey.js +++ b/test/lib/refresh-journey.js @@ -1,7 +1,5 @@ 'use strict' -const co = require('./co') - const simplify = j => j.legs.map(l => { let departure = null if (l.departure) { @@ -22,7 +20,7 @@ const simplify = j => j.legs.map(l => { } }) -const testRefreshJourney = co(function* (cfg) { +const testRefreshJourney = async (cfg) => { const { test: t, fetchJourneys, @@ -33,7 +31,7 @@ const testRefreshJourney = co(function* (cfg) { // todo: validate } = cfg - const [model] = yield fetchJourneys(fromId, toId, { + const [model] = await fetchJourneys(fromId, toId, { results: 1, departure: when, stopovers: false }) @@ -42,10 +40,10 @@ const testRefreshJourney = co(function* (cfg) { t.equal(typeof model.refreshToken, 'string') t.ok(model.refreshToken) - const refreshed = yield refreshJourney(model.refreshToken, { + const refreshed = await refreshJourney(model.refreshToken, { stopovers: false }) t.deepEqual(simplify(refreshed), simplify(model)) -}) +} module.exports = testRefreshJourney diff --git a/test/nahsh.js b/test/nahsh.js index 9c50c59d..2edaa2a7 100644 --- a/test/nahsh.js +++ b/test/nahsh.js @@ -5,7 +5,6 @@ const tape = require('tape') const isRoughlyEqual = require('is-roughly-equal') const {createWhen} = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const nahshProfile = require('../p/nahsh') const products = require('../p/nahsh/products') @@ -76,14 +75,14 @@ const ellerbekerMarkt = '9049027' const seefischmarkt = '9049245' const kielRaeucherei = '9049217' -test('journeys – Kiel Hbf to Flensburg', co(function* (t) { - const journeys = yield client.journeys(kielHbf, flensburg, { +test('journeys – Kiel Hbf to Flensburg', async (t) => { + const journeys = await client.journeys(kielHbf, flensburg, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -98,7 +97,7 @@ test('journeys – Kiel Hbf to Flensburg', co(function* (t) { } t.end() -})) +}) // todo: journeys, only one product @@ -114,19 +113,19 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('Kiel Hbf to Berliner Str. 80, Husum', co(function* (t) { +test('Kiel Hbf to Berliner Str. 80, Husum', async (t) => { const berlinerStr = { type: 'location', address: 'Husum, Berliner Straße 80', latitude: 54.488995, longitude: 9.056263 } - const journeys = yield client.journeys(kielHbf, berlinerStr, { + const journeys = await client.journeys(kielHbf, berlinerStr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -134,9 +133,9 @@ test('Kiel Hbf to Berliner Str. 80, Husum', co(function* (t) { to: berlinerStr }) t.end() -})) +}) -test('Kiel Hbf to Holstentor', co(function* (t) { +test('Kiel Hbf to Holstentor', async (t) => { const holstentor = { type: 'location', id: '970003118', @@ -144,12 +143,12 @@ test('Kiel Hbf to Holstentor', co(function* (t) { latitude: 53.866321, longitude: 10.679976 } - const journeys = yield client.journeys(kielHbf, holstentor, { + const journeys = await client.journeys(kielHbf, holstentor, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -157,10 +156,10 @@ test('Kiel Hbf to Holstentor', co(function* (t) { to: holstentor }) t.end() -})) +}) -test('Husum to Lübeck Hbf with stopover at Kiel Hbf', co(function* (t) { - const journeys = yield client.journeys(husum, luebeckHbf, { +test('Husum to Lübeck Hbf with stopover at Kiel Hbf', async (t) => { + const journeys = await client.journeys(husum, luebeckHbf, { via: kielHbf, results: 1, departure: when, @@ -178,10 +177,10 @@ test('Husum to Lübeck Hbf with stopover at Kiel Hbf', co(function* (t) { t.ok(leg, 'Kiel Hbf is not being passed') t.end() -})) +}) -test('earlier/later journeys, Kiel Hbf -> Flensburg', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys, Kiel Hbf -> Flensburg', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -191,10 +190,10 @@ test('earlier/later journeys, Kiel Hbf -> Flensburg', co(function* (t) { }) t.end() -})) +}) -test('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +test('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -204,42 +203,42 @@ test('refreshJourney', co(function* (t) { when }) t.end() -})) +}) // todo: with detour test // todo: without detour test -test('trip details', co(function* (t) { - const journeys = yield client.journeys(flensburg, husum, { +test('trip details', async (t) => { + const journeys = await client.journeys(flensburg, husum, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('departures at Kiel Räucherei', co(function* (t) { - const departures = yield client.departures(kielRaeucherei, { +test('departures at Kiel Räucherei', async (t) => { + const departures = await client.departures(kielRaeucherei, { duration: 30, when, stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: kielRaeucherei }) t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: kielHbf, name: 'Kiel Hbf', @@ -252,10 +251,10 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('departures at Berlin Hbf in direction of Berlin Ostbahnhof', co(function* (t) { - yield testDeparturesInDirection({ +test('departures at Berlin Hbf in direction of Berlin Ostbahnhof', async (t) => { + await testDeparturesInDirection({ test: t, fetchDepartures: client.departures, fetchTrip: client.trip, @@ -265,29 +264,29 @@ test('departures at Berlin Hbf in direction of Berlin Ostbahnhof', co(function* validate }) t.end() -})) +}) -test('arrivals at Kiel Räucherei', co(function* (t) { - const arrivals = yield client.arrivals(kielRaeucherei, { +test('arrivals at Kiel Räucherei', async (t) => { + const arrivals = await client.arrivals(kielRaeucherei, { duration: 30, when }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: kielRaeucherei }) t.end() -})) +}) -test('nearby Kiel Hbf', co(function* (t) { +test('nearby Kiel Hbf', async (t) => { const kielHbfPosition = { type: 'location', latitude: 54.314982, longitude: 10.131976 } - const nearby = yield client.nearby(kielHbfPosition, { + const nearby = await client.nearby(kielHbfPosition, { results: 2, distance: 400 }) @@ -302,11 +301,11 @@ test('nearby Kiel Hbf', co(function* (t) { t.ok(nearby[0].distance <= 100) t.end() -})) +}) -test('locations named "Kiel Rathaus"', co(function* (t) { +test('locations named "Kiel Rathaus"', async (t) => { const kielRathaus = '9049200' - const locations = yield client.locations('Kiel Rathaus', { + const locations = await client.locations('Kiel Rathaus', { results: 15 }) @@ -318,19 +317,19 @@ test('locations named "Kiel Rathaus"', co(function* (t) { t.ok(locations.some(l => l.station && l.station.id === kielRathaus || l.id === kielRathaus)) t.end() -})) +}) -test('station', co(function* (t) { - const s = yield client.station(kielHbf) +test('station', async (t) => { + const s = await client.station(kielHbf) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, kielHbf) t.end() -})) +}) -test('radar', co(function* (t) { - const vehicles = yield client.radar({ +test('radar', async (t) => { + const vehicles = await client.radar({ north: 54.4, west: 10.0, south: 54.2, @@ -354,9 +353,9 @@ test('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) -test('reachableFrom', co(function* (t) { +test('reachableFrom', async (t) => { const berlinerStr = { type: 'location', address: 'Husum, Berliner Straße 80', @@ -364,7 +363,7 @@ test('reachableFrom', co(function* (t) { longitude: 9.056263 } - yield testReachableFrom({ + await testReachableFrom({ test: t, reachableFrom: client.reachableFrom, address: berlinerStr, @@ -373,4 +372,4 @@ test('reachableFrom', co(function* (t) { validate }) t.end() -})) +}) diff --git a/test/oebb.js b/test/oebb.js index 31c0c1d8..8de02cef 100644 --- a/test/oebb.js +++ b/test/oebb.js @@ -6,7 +6,6 @@ const isRoughlyEqual = require('is-roughly-equal') const validateLine = require('validate-fptf/line') const {createWhen} = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const oebbProfile = require('../p/oebb') const products = require('../p/oebb/products') @@ -67,14 +66,14 @@ const wienRenngasse = '1390186' const wienKarlsplatz = '1390461' const wienPilgramgasse = '1390562' -test.skip('journeys – Salzburg Hbf to Wien Westbahnhof', co(function* (t) { - const journeys = yield client.journeys(salzburgHbf, wienFickeystr, { +test.skip('journeys – Salzburg Hbf to Wien Westbahnhof', async (t) => { + const journeys = await client.journeys(salzburgHbf, wienFickeystr, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -88,7 +87,7 @@ test.skip('journeys – Salzburg Hbf to Wien Westbahnhof', co(function* (t) { } t.end() -})) +}) // todo: journeys, only one product @@ -104,19 +103,19 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('Salzburg Hbf to 1220 Wien, Wagramer Straße 5', co(function* (t) { +test('Salzburg Hbf to 1220 Wien, Wagramer Straße 5', async (t) => { const wagramerStr = { type: 'location', address: '1220 Wien, Wagramer Straße 5', latitude: 48.236216, longitude: 16.425863 } - const journeys = yield client.journeys(salzburgHbf, wagramerStr, { + const journeys = await client.journeys(salzburgHbf, wagramerStr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -124,9 +123,9 @@ test('Salzburg Hbf to 1220 Wien, Wagramer Straße 5', co(function* (t) { to: wagramerStr }) t.end() -})) +}) -test('Salzburg Hbf to Albertina', co(function* (t) { +test('Salzburg Hbf to Albertina', async (t) => { const albertina = { type: 'location', id: '975900003', @@ -134,11 +133,11 @@ test('Salzburg Hbf to Albertina', co(function* (t) { latitude: 48.204699, longitude: 16.368404 } - const journeys = yield client.journeys(salzburgHbf, albertina, { + const journeys = await client.journeys(salzburgHbf, albertina, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -146,32 +145,32 @@ test('Salzburg Hbf to Albertina', co(function* (t) { to: albertina }) t.end() -})) +}) -test('journeys: via works – with detour', co(function* (t) { +test('journeys: via works – with detour', async (t) => { // Going from Stephansplatz to Schottenring via Donauinsel without detour // is currently impossible. We check if the routing engine computes a detour. const stephansplatz = '1390167' const schottenring = '1390163' const donauinsel = '1392277' const donauinselPassed = '922001' - const journeys = yield client.journeys(stephansplatz, schottenring, { + const journeys = await client.journeys(stephansplatz, schottenring, { via: donauinsel, results: 1, departure: when, stopovers: true }) - yield testJourneysWithDetour({ + await testJourneysWithDetour({ test: t, journeys, validate, detourIds: [donauinsel, donauinselPassed] }) t.end() -})) +}) -test('journeys: via works – without detour', co(function* (t) { +test('journeys: via works – without detour', async (t) => { // When going from Karlsplatz to Praterstern via Museumsquartier, there is // *no need* to change trains / no need for a "detour". const karlsplatz = '1390461' @@ -179,7 +178,7 @@ test('journeys: via works – without detour', co(function* (t) { const museumsquartier = '1390171' const museumsquartierPassed = '901014' - const journeys = yield client.journeys(karlsplatz, praterstern, { + const journeys = await client.journeys(karlsplatz, praterstern, { via: museumsquartier, results: 1, departure: when, @@ -204,10 +203,10 @@ test('journeys: via works – without detour', co(function* (t) { t.ok(l2, 'Museumsquartier is not being passed') t.end() -})) +}) -test('earlier/later journeys, Salzburg Hbf -> Wien Westbahnhof', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys, Salzburg Hbf -> Wien Westbahnhof', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -217,10 +216,10 @@ test('earlier/later journeys, Salzburg Hbf -> Wien Westbahnhof', co(function* (t }) t.end() -})) +}) -test('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +test('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -230,23 +229,23 @@ test('refreshJourney', co(function* (t) { when }) t.end() -})) +}) -test('trip details', co(function* (t) { - const journeys = yield client.journeys(wienWestbahnhof, muenchenHbf, { +test('trip details', async (t) => { + const journeys = await client.journeys(wienWestbahnhof, muenchenHbf, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('departures at Wien Leibenfrostgasse', co(function* (t) { +test('departures at Wien Leibenfrostgasse', async (t) => { const wienLeibenfrostgasse = '1390469' const ids = [ wienLeibenfrostgasse, // station @@ -254,7 +253,7 @@ test('departures at Wien Leibenfrostgasse', co(function* (t) { '904030' // stop "Wien Leibenfrostgasse (Ziegelofengasse)" ] - const deps = yield client.departures(wienLeibenfrostgasse, { + const deps = await client.departures(wienLeibenfrostgasse, { duration: 15, when, stopovers: true }) @@ -270,10 +269,10 @@ test('departures at Wien Leibenfrostgasse', co(function* (t) { } t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: salzburgHbf, name: 'Salzburg Hbf', @@ -286,10 +285,10 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('departures at Karlsplatz in direction of Pilgramgasse', co(function* (t) { - yield testDeparturesInDirection({ +test('departures at Karlsplatz in direction of Pilgramgasse', async (t) => { + await testDeparturesInDirection({ test: t, fetchDepartures: client.departures, fetchTrip: client.trip, @@ -299,12 +298,12 @@ test('departures at Karlsplatz in direction of Pilgramgasse', co(function* (t) { validate }) t.end() -})) +}) // todo: arrivals -test('nearby Salzburg Hbf', co(function* (t) { - const nearby = yield client.nearby({ +test('nearby Salzburg Hbf', async (t) => { + const nearby = await client.nearby({ type: 'location', longitude: 13.045604, latitude: 47.812851 @@ -324,10 +323,10 @@ test('nearby Salzburg Hbf', co(function* (t) { t.ok(s.distance <= 100) t.end() -})) +}) -test('locations named Salzburg', co(function* (t) { - const locations = yield client.locations('Salzburg', { +test('locations named Salzburg', async (t) => { + const locations = await client.locations('Salzburg', { results: 20 }) @@ -341,10 +340,10 @@ test('locations named Salzburg', co(function* (t) { })) t.end() -})) +}) -test('station', co(function* (t) { - const loc = yield client.station(wienRenngasse) +test('station', async (t) => { + const loc = await client.station(wienRenngasse) // todo: find a way to always get products from the API // todo: cfg.stationProductsOptional option @@ -365,10 +364,10 @@ test('station', co(function* (t) { t.equal(loc.id, wienRenngasse) t.end() -})) +}) -test('radar Salzburg', co(function* (t) { - let vehicles = yield client.radar({ +test('radar Salzburg', async (t) => { + let vehicles = await client.radar({ north: 47.827203, west: 13.001261, south: 47.773278, @@ -394,4 +393,4 @@ test('radar Salzburg', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) diff --git a/test/saarfahrplan.js b/test/saarfahrplan.js index e4da3954..7271e318 100644 --- a/test/saarfahrplan.js +++ b/test/saarfahrplan.js @@ -5,7 +5,6 @@ const tape = require('tape') const isRoughlyEqual = require('is-roughly-equal') const { createWhen } = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const saarfahrplanProfile = require('../p/saarfahrplan') const products = require('../p/saarfahrplan/products') @@ -84,13 +83,13 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('Saarbrücken Hbf to Neunkirchen, Thomas-Mann-Straße 1', co(function * (t) { - const journeys = yield client.journeys(saarbrueckenHbf, thomasMannStr, { +test('Saarbrücken Hbf to Neunkirchen, Thomas-Mann-Straße 1', async (t) => { + const journeys = await client.journeys(saarbrueckenHbf, thomasMannStr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -98,9 +97,9 @@ test('Saarbrücken Hbf to Neunkirchen, Thomas-Mann-Straße 1', co(function * (t) to: thomasMannStr }) t.end() -})) +}) -test('Saarbrücken Hbf to Schlossberghöhlen', co(function * (t) { +test('Saarbrücken Hbf to Schlossberghöhlen', async (t) => { const schlossberghoehlen = { type: 'location', latitude: 49.32071, @@ -108,11 +107,11 @@ test('Saarbrücken Hbf to Schlossberghöhlen', co(function * (t) { name: 'Homburg, Schlossberghöhlen', id: '9000185' } - const journeys = yield client.journeys(saarbrueckenHbf, schlossberghoehlen, { + const journeys = await client.journeys(saarbrueckenHbf, schlossberghoehlen, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -120,32 +119,32 @@ test('Saarbrücken Hbf to Schlossberghöhlen', co(function * (t) { to: schlossberghoehlen }) t.end() -})) +}) -test.skip('journeys: via works – with detour', co(function* (t) { +test.skip('journeys: via works – with detour', async (t) => { // Going from Stephansplatz to Schottenring via Donauinsel without detour // is currently impossible. We check if the routing engine computes a detour. const stephansplatz = '1390167' const schottenring = '1390163' const donauinsel = '1392277' const donauinselPassed = '922001' - const journeys = yield client.journeys(stephansplatz, schottenring, { + const journeys = await client.journeys(stephansplatz, schottenring, { via: donauinsel, results: 1, departure: when, stopovers: true }) - yield testJourneysWithDetour({ + await testJourneysWithDetour({ test: t, journeys, validate, detourIds: [donauinsel, donauinselPassed] }) t.end() -})) +}) -test.skip('journeys: via works – without detour', co(function* (t) { +test.skip('journeys: via works – without detour', async (t) => { // When going from Karlsplatz to Praterstern via Museumsquartier, there is // *no need* to change trains / no need for a "detour". const karlsplatz = '1390461' @@ -153,7 +152,7 @@ test.skip('journeys: via works – without detour', co(function* (t) { const museumsquartier = '1390171' const museumsquartierPassed = '901014' - const journeys = yield client.journeys(karlsplatz, praterstern, { + const journeys = await client.journeys(karlsplatz, praterstern, { via: museumsquartier, results: 1, departure: when, @@ -178,10 +177,10 @@ test.skip('journeys: via works – without detour', co(function* (t) { t.ok(l2, 'Museumsquartier is not being passed') t.end() -})) +}) -test('earlier/later journeys, Saarbrücken Hbf -> Saarlouis Hbf', co(function * (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys, Saarbrücken Hbf -> Saarlouis Hbf', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -191,24 +190,24 @@ test('earlier/later journeys, Saarbrücken Hbf -> Saarlouis Hbf', co(function * }) t.end() -})) +}) -test('trip details', co(function * (t) { - const journeys = yield client.journeys(saarlouisHbf, metzVille, { +test('trip details', async (t) => { + const journeys = await client.journeys(saarlouisHbf, metzVille, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, { when }) + const trip = await client.trip(p.id, p.line.name, { when }) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('departures', co(function* (t) { - const departures = yield client.departures(saarbrueckenUhlandstr, { +test('departures', async (t) => { + const departures = await client.departures(saarbrueckenUhlandstr, { duration: 5, when }) @@ -228,10 +227,10 @@ test('departures', co(function* (t) { // todo: move into deps validator t.deepEqual(departures, departures.sort((a, b) => t.when > b.when)) t.end() -})) +}) -test('departures with stop object', co(function* (t) { - const deps = yield client.departures({ +test('departures with stop object', async (t) => { + const deps = await client.departures({ type: 'stop', id: '8000323', name: 'Saarbrücken Hbf', @@ -244,11 +243,11 @@ test('departures with stop object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('departures at Karlsplatz in direction of Pilgramgasse', co(function* (t) { +test('departures at Karlsplatz in direction of Pilgramgasse', async (t) => { const saarbrueckenLandwehrplatz = '10606' - yield testDeparturesInDirection({ + await testDeparturesInDirection({ test: t, fetchDepartures: client.departures, fetchTrip: client.trip, @@ -258,12 +257,12 @@ test('departures at Karlsplatz in direction of Pilgramgasse', co(function* (t) { validate }) t.end() -})) +}) // todo: arrivals -test('nearby Saarbrücken Hbf', co(function * (t) { - const nearby = yield client.nearby({ +test('nearby Saarbrücken Hbf', async (t) => { + const nearby = await client.nearby({ type: 'location', latitude: 49.241066, longitude: 6.991019 @@ -283,10 +282,10 @@ test('nearby Saarbrücken Hbf', co(function * (t) { t.ok(s.distance <= 100) t.end() -})) +}) -test('locations named Saarbrücken', co(function * (t) { - const locations = yield client.locations('Saarbrücken', { +test('locations named Saarbrücken', async (t) => { + const locations = await client.locations('Saarbrücken', { results: 20 }) @@ -300,19 +299,19 @@ test('locations named Saarbrücken', co(function * (t) { })) t.end() -})) +}) -test('station', co(function* (t) { - const s = yield client.station(saarbrueckenUhlandstr) +test('station', async (t) => { + const s = await client.station(saarbrueckenUhlandstr) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, saarbrueckenUhlandstr) t.end() -})) +}) -test('radar', co(function* (t) { - const vehicles = yield client.radar({ +test('radar', async (t) => { + const vehicles = await client.radar({ north: 49.27, west: 6.97, south: 49.22, @@ -323,4 +322,4 @@ test('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) diff --git a/test/sbahn-muenchen.js b/test/sbahn-muenchen.js index 98d84e80..697fae85 100644 --- a/test/sbahn-muenchen.js +++ b/test/sbahn-muenchen.js @@ -5,7 +5,6 @@ const tapePromise = require('tape-promise').default const tape = require('tape') const {createWhen} = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const sMunichProfile = require('../p/sbahn-muenchen') const products = require('../p/sbahn-muenchen/products') @@ -63,14 +62,14 @@ const poetschnerstr = { longitude: 11.531695 } -test('journeys – Mittersendling to Karl-Theodor-Straße', co(function* (t) { - const journeys = yield client.journeys(mittersendling, karlTheodorStr, { +test('journeys – Mittersendling to Karl-Theodor-Straße', async (t) => { + const journeys = await client.journeys(mittersendling, karlTheodorStr, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -78,7 +77,7 @@ test('journeys – Mittersendling to Karl-Theodor-Straße', co(function* (t) { toId: karlTheodorStr }) t.end() -})) +}) // todo: journeys, only one product @@ -94,13 +93,13 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('Karl-Theodor-Straße to Pötschnerstraße 3, Neuhausen', co(function*(t) { - const journeys = yield client.journeys(karlTheodorStr, poetschnerstr, { +test('Karl-Theodor-Straße to Pötschnerstraße 3, Neuhausen', async (t) => { + const journeys = await client.journeys(karlTheodorStr, poetschnerstr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -108,9 +107,9 @@ test('Karl-Theodor-Straße to Pötschnerstraße 3, Neuhausen', co(function*(t) { to: poetschnerstr }) t.end() -})) +}) -test('Karl-Theodor-Straße to Hofbräuhaus', co(function*(t) { +test('Karl-Theodor-Straße to Hofbräuhaus', async (t) => { const hofbraeuhaus = { type: 'location', id: '970006201', @@ -118,12 +117,12 @@ test('Karl-Theodor-Straße to Hofbräuhaus', co(function*(t) { latitude: 48.137739, longitude: 11.579823 } - const journeys = yield client.journeys(karlTheodorStr, hofbraeuhaus, { + const journeys = await client.journeys(karlTheodorStr, hofbraeuhaus, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -131,13 +130,13 @@ test('Karl-Theodor-Straße to Hofbräuhaus', co(function*(t) { to: hofbraeuhaus }) t.end() -})) +}) // todo: via works – with detour // todo: without detour -test('earlier/later journeys', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -147,10 +146,10 @@ test('earlier/later journeys', co(function* (t) { }) t.end() -})) +}) -test('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +test('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -160,39 +159,39 @@ test('refreshJourney', co(function* (t) { when }) t.end() -})) +}) -test('trip details', co(function* (t) { - const journeys = yield client.journeys(mittersendling, karlTheodorStr, { +test('trip details', async (t) => { + const journeys = await client.journeys(mittersendling, karlTheodorStr, { results: 1, departure: when }) const p = journeys[0].legs.find(leg => leg.line) t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('departures at Karl-Theodor-Straße', co(function*(t) { - const departures = yield client.departures(karlTheodorStr, { +test('departures at Karl-Theodor-Straße', async (t) => { + const departures = await client.departures(karlTheodorStr, { duration: 10, when, stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: karlTheodorStr }) t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: mittersendling, name: 'Mittersendling', @@ -205,28 +204,28 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('arrivals at Karl-Theodor-Straße', co(function*(t) { - const arrivals = yield client.arrivals(karlTheodorStr, { +test('arrivals at Karl-Theodor-Straße', async (t) => { + const arrivals = await client.arrivals(karlTheodorStr, { duration: 10, when, stopovers: true }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: karlTheodorStr }) t.end() -})) +}) // todo: nearby -test('locations named "Nationaltheater"', co(function*(t) { +test('locations named "Nationaltheater"', async (t) => { const nationaltheater = '624639' - const locations = yield client.locations('Nationaltheater', { + const locations = await client.locations('Nationaltheater', { results: 10 }) @@ -240,19 +239,19 @@ test('locations named "Nationaltheater"', co(function*(t) { })) t.end() -})) +}) -test('station Karl-Theodor-Straße', co(function* (t) { - const s = yield client.station(karlTheodorStr) +test('station Karl-Theodor-Straße', async (t) => { + const s = await client.station(karlTheodorStr) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, karlTheodorStr) t.end() -})) +}) -test('radar', co(function* (t) { - const vehicles = yield client.radar({ +test('radar', async (t) => { + const vehicles = await client.radar({ north: 48.145121, west: 11.543736, south: 48.138339, @@ -263,10 +262,10 @@ test('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) -test('reachableFrom', co(function* (t) { - yield testReachableFrom({ +test('reachableFrom', async (t) => { + await testReachableFrom({ test: t, reachableFrom: client.reachableFrom, address: poetschnerstr, @@ -275,4 +274,4 @@ test('reachableFrom', co(function* (t) { validate }) t.end() -})) +}) diff --git a/test/vbb.js b/test/vbb.js index 1fa7d620..2dd8efc3 100644 --- a/test/vbb.js +++ b/test/vbb.js @@ -3,7 +3,6 @@ const tapePromise = require('tape-promise').default const tape = require('tape') -const co = require('./lib/co') const createClient = require('..') const vbbProfile = require('../p/vbb') const products = require('../p/vbb/products') @@ -49,8 +48,8 @@ const westhafen = '900000001201' const wedding = '900000009104' const württembergallee = '900000026153' -test('journeys – Spichernstr. to Bismarckstr.', co(function* (t) { - const journeys = yield client.journeys({ +test('journeys – Spichernstr. to Bismarckstr.', async (t) => { + const journeys = await client.journeys({ type: 'stop', id: spichernstr, name: 'U Spichernstr.' @@ -60,7 +59,7 @@ test('journeys – Spichernstr. to Bismarckstr.', co(function* (t) { stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -70,10 +69,10 @@ test('journeys – Spichernstr. to Bismarckstr.', co(function* (t) { // todo: find a journey where there ticket info is always available t.end() -})) +}) -test('journeys – only subway', co(function* (t) { - const journeys = yield client.journeys(spichernstr, bismarckstr, { +test('journeys – only subway', async (t) => { + const journeys = await client.journeys(spichernstr, bismarckstr, { results: 20, departure: when, products: { @@ -104,7 +103,7 @@ test('journeys – only subway', co(function* (t) { } t.end() -})) +}) // todo: journeys – with arrival time @@ -120,8 +119,8 @@ test('journeys – fails with no product', (t) => { t.end() }) -test('earlier/later journeys', co(function* (t) { - yield testEarlierLaterJourneys({ +test('earlier/later journeys', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -131,10 +130,10 @@ test('earlier/later journeys', co(function* (t) { }) t.end() -})) +}) -test('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +test('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -144,35 +143,35 @@ test('refreshJourney', co(function* (t) { when }) t.end() -})) +}) -test('trip details', co(function* (t) { - const journeys = yield client.journeys(spichernstr, amrumerStr, { +test('trip details', async (t) => { + const journeys = await client.journeys(spichernstr, amrumerStr, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.id, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.id, p.line.name, {when}) + const trip = await client.trip(p.id, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test('journeys – station to address', co(function* (t) { +test('journeys – station to address', async (t) => { const torfstr = { type: 'location', address: '13353 Berlin-Wedding, Torfstr. 17', latitude: 52.541797, longitude: 13.350042 } - const journeys = yield client.journeys(spichernstr, torfstr, { + const journeys = await client.journeys(spichernstr, torfstr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -180,9 +179,9 @@ test('journeys – station to address', co(function* (t) { to: torfstr }) t.end() -})) +}) -test('journeys – station to POI', co(function* (t) { +test('journeys – station to POI', async (t) => { const atze = { type: 'location', id: '900980720', @@ -190,12 +189,12 @@ test('journeys – station to POI', co(function* (t) { latitude: 52.543333, longitude: 13.351686 } - const journeys = yield client.journeys(spichernstr, atze, { + const journeys = await client.journeys(spichernstr, atze, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -203,46 +202,46 @@ test('journeys – station to POI', co(function* (t) { to: atze }) t.end() -})) +}) -test('journeys: via works – with detour', co(function* (t) { +test('journeys: via works – with detour', async (t) => { // Going from Westhafen to Wedding via Württembergalle without detour // is currently impossible. We check if the routing engine computes a detour. - const journeys = yield client.journeys(westhafen, wedding, { + const journeys = await client.journeys(westhafen, wedding, { via: württembergallee, results: 1, departure: when, stopovers: true }) - yield testJourneysWithDetour({ + await testJourneysWithDetour({ test: t, journeys, validate, detourIds: [württembergallee] }) t.end() -})) +}) // todo: without detour test -test('departures', co(function* (t) { - const departures = yield client.departures(spichernstr, { +test('departures', async (t) => { + const departures = await client.departures(spichernstr, { duration: 5, when, stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: spichernstr }) t.end() -})) +}) -test('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: spichernstr, name: 'U Spichernstr', @@ -255,10 +254,10 @@ test('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test('departures at Spichernstr. in direction of Westhafen', co(function* (t) { - yield testDeparturesInDirection({ +test('departures at Spichernstr. in direction of Westhafen', async (t) => { + await testDeparturesInDirection({ test: t, fetchDepartures: client.departures, fetchTrip: client.trip, @@ -268,17 +267,17 @@ test('departures at Spichernstr. in direction of Westhafen', co(function* (t) { validate }) t.end() -})) +}) -test('departures at 7-digit station', co(function* (t) { +test('departures at 7-digit station', async (t) => { const eisenach = '8010097' // see derhuerst/vbb-hafas#22 - yield client.departures(eisenach, {when}) + await client.departures(eisenach, {when}) t.pass('did not fail') t.end() -})) +}) -test('departures without related stations', co(function* (t) { - yield testDeparturesWithoutRelatedStations({ +test('departures without related stations', async (t) => { + await testDeparturesWithoutRelatedStations({ test: t, fetchDepartures: client.departures, id: '900000024101', // Charlottenburg @@ -287,29 +286,29 @@ test('departures without related stations', co(function* (t) { linesOfRelatedStations: ['U7'] }) t.end() -})) +}) -test('arrivals', co(function* (t) { - const arrivals = yield client.arrivals(spichernstr, { +test('arrivals', async (t) => { + const arrivals = await client.arrivals(spichernstr, { duration: 5, when, stopovers: true }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: spichernstr }) t.end() -})) +}) -test('nearby', co(function* (t) { +test('nearby', async (t) => { const berlinerStr = '900000044201' const landhausstr = '900000043252' // Berliner Str./Bundesallee - const nearby = yield client.nearby({ + const nearby = await client.nearby({ type: 'location', latitude: 52.4873452, longitude: 13.3310411 @@ -328,10 +327,10 @@ test('nearby', co(function* (t) { t.ok(nearby[1].distance < 200) t.end() -})) +}) -test('locations', co(function* (t) { - const locations = yield client.locations('Alexanderplatz', {results: 20}) +test('locations', async (t) => { + const locations = await client.locations('Alexanderplatz', {results: 20}) validate(t, locations, 'locations', 'locations') t.ok(locations.length <= 20) @@ -341,19 +340,19 @@ test('locations', co(function* (t) { t.ok(locations.find(s => !s.name && s.address)) // addresses t.end() -})) +}) -test('station', co(function* (t) { - const s = yield client.station(spichernstr) +test('station', async (t) => { + const s = await client.station(spichernstr) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, spichernstr) t.end() -})) +}) -test('radar', co(function* (t) { - const vehicles = yield client.radar({ +test('radar', async (t) => { + const vehicles = await client.radar({ north: 52.52411, west: 13.41002, south: 52.51942, @@ -364,9 +363,9 @@ test('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +}) -test('reachableFrom', co(function* (t) { +test('reachableFrom', async (t) => { const torfstr17 = { type: 'location', address: '13353 Berlin-Wedding, Torfstr. 17', @@ -374,7 +373,7 @@ test('reachableFrom', co(function* (t) { longitude: 13.350042 } - yield testReachableFrom({ + await testReachableFrom({ test: t, reachableFrom: client.reachableFrom, address: torfstr17, @@ -383,4 +382,4 @@ test('reachableFrom', co(function* (t) { validate }) t.end() -})) +}) diff --git a/test/vbn.js b/test/vbn.js index 7acb5384..6fbe7edc 100644 --- a/test/vbn.js +++ b/test/vbn.js @@ -5,7 +5,6 @@ const tape = require('tape') const isRoughlyEqual = require('is-roughly-equal') const {createWhen} = require('./lib/util') -const co = require('./lib/co') const createClient = require('..') const vbnProfile = require('../p/vbn') const products = require('../p/vbn/products') @@ -40,14 +39,14 @@ const client = createClient(vbnProfile, 'public-transport/hafas-client:test') const bremenHbf = '8000050' const bremerhavenHbf = '8000051' -test.only('journeys – Bremen Hbf to Bremerhaven Hbf', co(function* (t) { - const journeys = yield client.journeys(bremenHbf, bremerhavenHbf, { +test.only('journeys – Bremen Hbf to Bremerhaven Hbf', async (t) => { + const journeys = await client.journeys(bremenHbf, bremerhavenHbf, { results: 3, departure: when, stopovers: true }) - yield testJourneysStationToStation({ + await testJourneysStationToStation({ test: t, journeys, validate, @@ -55,7 +54,7 @@ test.only('journeys – Bremen Hbf to Bremerhaven Hbf', co(function* (t) { toId: bremerhavenHbf }) t.end() -})) +}) // todo: journeys, only one product @@ -71,7 +70,7 @@ test.skip('journeys – fails with no product', (t) => { t.end() }) -test.skip('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', co(function*(t) { +test.skip('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', async (t) => { const sternStr = { type: 'location', address: 'Magdeburg - Altenstadt, Sternstraße 10', @@ -79,12 +78,12 @@ test.skip('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', co(function*(t) { longitude: 11.422332 } - const journeys = yield client.journeys(bremenHbf, sternStr, { + const journeys = await client.journeys(bremenHbf, sternStr, { results: 3, departure: when }) - yield testJourneysStationToAddress({ + await testJourneysStationToAddress({ test: t, journeys, validate, @@ -92,9 +91,9 @@ test.skip('Magdeburg Hbf to 39104 Magdeburg, Sternstr. 10', co(function*(t) { to: sternStr }) t.end() -})) +}) -test.skip('Magdeburg Hbf to Kloster Unser Lieben Frauen', co(function*(t) { +test.skip('Magdeburg Hbf to Kloster Unser Lieben Frauen', async (t) => { const kloster = { type: 'location', id: '970012223', @@ -102,12 +101,12 @@ test.skip('Magdeburg Hbf to Kloster Unser Lieben Frauen', co(function*(t) { latitude: 52.127601, longitude: 11.636437 } - const journeys = yield client.journeys(bremenHbf, kloster, { + const journeys = await client.journeys(bremenHbf, kloster, { results: 3, departure: when }) - yield testJourneysStationToPoi({ + await testJourneysStationToPoi({ test: t, journeys, validate, @@ -115,32 +114,32 @@ test.skip('Magdeburg Hbf to Kloster Unser Lieben Frauen', co(function*(t) { to: kloster }) t.end() -})) +}) -test.skip('journeys: via works – with detour', co(function* (t) { +test.skip('journeys: via works – with detour', async (t) => { // Going from Magdeburg, Hasselbachplatz (Sternstr.) (Tram/Bus) to Stendal // via Dessau without detour is currently impossible. We check if the routing // engine computes a detour. - const journeys = yield client.journeys(hasselbachplatzSternstrasse, stendal, { + const journeys = await client.journeys(hasselbachplatzSternstrasse, stendal, { via: dessau, results: 1, departure: when, stopovers: true }) - yield testJourneysWithDetour({ + await testJourneysWithDetour({ test: t, journeys, validate, detourIds: [dessau] }) t.end() -})) +}) // todo: without detour -test.skip('earlier/later journeys', co(function* (t) { - yield testEarlierLaterJourneys({ +test.skip('earlier/later journeys', async (t) => { + await testEarlierLaterJourneys({ test: t, fetchJourneys: client.journeys, validate, @@ -150,10 +149,10 @@ test.skip('earlier/later journeys', co(function* (t) { }) t.end() -})) +}) -test.skip('refreshJourney', co(function* (t) { - yield testRefreshJourney({ +test.skip('refreshJourney', async (t) => { + await testRefreshJourney({ test: t, fetchJourneys: client.journeys, refreshJourney: client.refreshJourney, @@ -163,39 +162,39 @@ test.skip('refreshJourney', co(function* (t) { when }) t.end() -})) +}) -test.skip('trip details', co(function* (t) { - const journeys = yield client.journeys(bremenHbf, bremerhavenHbf, { +test.skip('trip details', async (t) => { + const journeys = await client.journeys(bremenHbf, bremerhavenHbf, { results: 1, departure: when }) const p = journeys[0].legs[0] t.ok(p.tripId, 'precondition failed') t.ok(p.line.name, 'precondition failed') - const trip = yield client.trip(p.tripId, p.line.name, {when}) + const trip = await client.trip(p.tripId, p.line.name, {when}) validate(t, trip, 'journeyLeg', 'trip') t.end() -})) +}) -test.skip('departures at Magdeburg Leiterstr.', co(function*(t) { - const departures = yield client.departures(leiterstr, { +test.skip('departures at Magdeburg Leiterstr.', async (t) => { + const departures = await client.departures(leiterstr, { duration: 5, when, - stopovers: false + stopovers: true }) - yield testDepartures({ + await testDepartures({ test: t, departures, validate, id: leiterstr }) t.end() -})) +}) -test.skip('departures with station object', co(function* (t) { - const deps = yield client.departures({ +test.skip('departures with station object', async (t) => { + const deps = await client.departures({ type: 'station', id: bremenHbf, name: 'Magdeburg Hbf', @@ -208,27 +207,27 @@ test.skip('departures with station object', co(function* (t) { validate(t, deps, 'departures', 'departures') t.end() -})) +}) -test.skip('arrivals at Magdeburg Leiterstr.', co(function*(t) { - const arrivals = yield client.arrivals(leiterstr, { +test.skip('arrivals at Magdeburg Leiterstr.', async (t) => { + const arrivals = await client.arrivals(leiterstr, { duration: 5, when, stopovers: true }) - yield testArrivals({ + await testArrivals({ test: t, arrivals, validate, id: leiterstr }) t.end() -})) +}) // todo: nearby -test.skip('locations named Magdeburg', co(function*(t) { - const locations = yield client.locations('Magdeburg', { +test.skip('locations named Magdeburg', async (t) => { + const locations = await client.locations('Magdeburg', { results: 20 }) @@ -242,19 +241,19 @@ test.skip('locations named Magdeburg', co(function*(t) { })) t.end() -})) +}) -test.skip('station Magdeburg-Buckau', co(function* (t) { - const s = yield client.station(bremerhavenHbf) +test.skip('station Magdeburg-Buckau', async (t) => { + const s = await client.station(bremerhavenHbf) validate(t, s, ['stop', 'station'], 'station') t.equal(s.id, bremerhavenHbf) t.end() -})) +}) -test.skip('radar', co(function* (t) { - const vehicles = yield client.radar({ +test.skip('radar', async (t) => { + const vehicles = await client.radar({ north: 52.148364, west: 11.600826, south: 52.108486, @@ -270,4 +269,4 @@ test.skip('radar', co(function* (t) { validate(t, vehicles, 'movements', 'vehicles') t.end() -})) +})