mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 15:19:35 +02:00
118 lines
No EOL
2.4 KiB
JavaScript
118 lines
No EOL
2.4 KiB
JavaScript
import tap from 'tap';
|
|
|
|
import {createClient} from '../../index.js';
|
|
import {profile as rawProfile} from '../../p/db/index.js';
|
|
import {data as loyaltyCards} from '../../p/db/loyalty-cards.js';
|
|
|
|
const client = createClient(rawProfile, 'public-transport/hafas-client:test');
|
|
const {profile} = client;
|
|
|
|
const opt = {
|
|
results: null,
|
|
via: null,
|
|
stopovers: false,
|
|
transfers: -1,
|
|
transferTime: 0,
|
|
accessibility: 'none',
|
|
bike: false,
|
|
walkingSpeed: 'normal',
|
|
startWithWalking: true,
|
|
tickets: false,
|
|
polylines: false,
|
|
subStops: true,
|
|
entrances: true,
|
|
remarks: true,
|
|
scheduledDays: false,
|
|
departure: '2023-09-12T08:09:10+02:00',
|
|
products: {},
|
|
|
|
firstClass: false,
|
|
age: 24,
|
|
loyaltyCard: {
|
|
type: loyaltyCards.BAHNCARD,
|
|
discount: 25,
|
|
},
|
|
};
|
|
|
|
const berlinWienQuery0 = Object.freeze(
|
|
{
|
|
"abfahrtsHalt": "A=1@L=8098160@",
|
|
"anfrageZeitpunkt": "2024-12-07T23:50:12",
|
|
"ankunftsHalt": "A=1@L=8000284@",
|
|
"ankunftSuche": "ABFAHRT",
|
|
"klasse": "KLASSE_2",
|
|
"produktgattungen": [
|
|
"ICE",
|
|
"EC_IC",
|
|
"IR",
|
|
"REGIONAL",
|
|
"SBAHN",
|
|
"BUS",
|
|
"SCHIFF",
|
|
"UBAHN",
|
|
"TRAM",
|
|
"ANRUFPFLICHTIG"
|
|
],
|
|
"schnelleVerbindungen": true,
|
|
"sitzplatzOnly": false,
|
|
"bikeCarriage": false,
|
|
"reservierungsKontingenteVorhanden": false,
|
|
"nurDeutschlandTicketVerbindungen": false,
|
|
"deutschlandTicketVorhanden": false
|
|
});
|
|
|
|
tap.test('formats a journeys() request correctly (DB)', (t) => {
|
|
const _opt = {...opt};
|
|
delete _opt.loyaltyCard;
|
|
delete _opt.age;
|
|
const ctx = {profile, opt: _opt};
|
|
|
|
// transformJourneysQuery() mutates its 2nd argument!
|
|
const query = {...berlinWienQuery0};
|
|
const req = profile.transformJourneysQuery(ctx, query);
|
|
|
|
t.same(req.body, {
|
|
...berlinWienQuery0,
|
|
reisende: [
|
|
{
|
|
"typ": "ERWACHSENER",
|
|
"ermaessigungen": [
|
|
{
|
|
"art": "KEINE_ERMAESSIGUNG",
|
|
"klasse": "KLASSENLOS"
|
|
}
|
|
],
|
|
"alter": [],
|
|
"anzahl": 1
|
|
}
|
|
]
|
|
});
|
|
t.end();
|
|
});
|
|
|
|
|
|
tap.test('formats a journeys() request with BC correctly (DB)', (t) => {
|
|
const ctx = {profile, opt};
|
|
|
|
// transformJourneysQuery() mutates its 2nd argument!
|
|
const query = {...berlinWienQuery0};
|
|
const req = profile.transformJourneysQuery(ctx, query);
|
|
|
|
t.same(req.body, {
|
|
...berlinWienQuery0,
|
|
reisende: [
|
|
{
|
|
"typ": "JUGENDLICHER",
|
|
"ermaessigungen": [
|
|
{
|
|
"art": "BAHNCARD25",
|
|
"klasse": "KLASSE_2"
|
|
}
|
|
],
|
|
"alter": ["24"],
|
|
"anzahl": 1
|
|
}
|
|
]
|
|
});
|
|
t.end();
|
|
}); |