db-vendo-client/test/format/dbweb-arrivals-query.js
dabund24 c671e995cb
bahn.de boards (#12)
* parse bahn.de boards

* add optional chaining in line.js

* unit tests for bahn.de boards

* fix product check in line.js for bahn.de boards

* add integration tests for bahn.de boards

* allow letting hafas decide the amount of vias

* split dbweb and dbregioguide profiles; add db profile

* commit location-filter.js (forgot that in the last commit)

* simplify how db profile works

* remove `ezGleis` from coalesce for scheduled platform

* un-break parsing of remarks

* determine fahrtNr by removing all non-digits

* employ enrichStations for board stop property

* prevent timeouts in dbweb e2e test from calling `end()` twice

* use promises in dbweb e2e tests when waiting for enrichStations to work

* replace vias option with stopovers option for dbweb profile; enrich stations when only name is known

* change dbweb-departures test covering enrichStation feature for stop and stopovers

* remove check for not existing option

* move verkehrsmittel.name in front of verkehrsmittel.langText when parsing name in line.js
2025-02-09 00:46:21 +01:00

47 lines
936 B
JavaScript

import tap from 'tap';
import {createClient} from '../../index.js';
import {profile as rawProfile} from '../../p/dbweb/index.js';
const client = createClient(rawProfile, 'public-transport/hafas-client:test');
const {profile} = client;
const opt = {
when: new Date('2025-02-09T23:55:00+01:00'),
remarks: true,
stopovers: true,
language: 'en',
};
const berlinArrivalsQuery = {
endpoint: 'https://int.bahn.de/web/api/reiseloesung/',
path: 'ankuenfte',
query: {
ortExtId: '8011160',
zeit: '23:55',
datum: '2025-02-09',
mitVias: true,
verkehrsmittel: [
'ICE',
'EC_IC',
'IR',
'REGIONAL',
'SBAHN',
'BUS',
'SCHIFF',
'UBAHN',
'TRAM',
'ANRUFPFLICHTIG',
],
},
method: 'GET',
};
tap.test('formats an arrivals() request correctly', (t) => {
const ctx = {profile, opt};
const req = profile.formatStationBoardReq(ctx, '8011160', 'arrivals');
t.same(req, berlinArrivalsQuery);
t.end();
});