2024-02-06 22:58:49 +01:00
|
|
|
import tap from 'tap';
|
|
|
|
import {parseLine as parse} from '../../parse/line.js';
|
2019-09-03 15:35:12 +02:00
|
|
|
|
|
|
|
const profile = {
|
|
|
|
products: [
|
2024-12-07 16:16:31 +00:00
|
|
|
{
|
|
|
|
id: 'nationalExpress',
|
|
|
|
mode: 'train',
|
|
|
|
name: 'InterCityExpress',
|
|
|
|
short: 'ICE',
|
|
|
|
vendo: 'ICE',
|
2024-12-07 22:46:04 +00:00
|
|
|
ris: 'HIGH_SPEED_TRAIN',
|
2024-12-07 16:16:31 +00:00
|
|
|
default: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'bus',
|
|
|
|
mode: 'bus',
|
|
|
|
name: 'Bus',
|
|
|
|
short: 'B',
|
|
|
|
vendo: 'BUS',
|
2024-12-07 22:46:04 +00:00
|
|
|
ris: 'BUS',
|
2024-12-07 16:16:31 +00:00
|
|
|
default: true,
|
|
|
|
},
|
2024-02-06 22:58:49 +01:00
|
|
|
],
|
2024-12-07 16:16:31 +00:00
|
|
|
parseOperator: _ => null
|
2024-02-06 22:58:49 +01:00
|
|
|
};
|
2019-10-20 00:19:11 +02:00
|
|
|
const ctx = {
|
|
|
|
data: {},
|
|
|
|
opt: {},
|
2024-02-06 22:58:49 +01:00
|
|
|
profile,
|
|
|
|
};
|
2019-09-03 15:35:12 +02:00
|
|
|
|
2024-12-07 16:16:31 +00:00
|
|
|
tap.test('parses ICE leg correctly', (t) => {
|
2019-09-03 15:35:12 +02:00
|
|
|
const input = {
|
2024-12-07 16:16:31 +00:00
|
|
|
"journeyId": "foo",
|
|
|
|
"verkehrsmittel": {
|
|
|
|
"produktGattung": "ICE",
|
|
|
|
"kategorie": "ICE",
|
|
|
|
"name": "ICE 229",
|
|
|
|
"nummer": "229",
|
|
|
|
"richtung": "Wien Hbf",
|
|
|
|
"typ": "PUBLICTRANSPORT",
|
|
|
|
"zugattribute": [{
|
|
|
|
"kategorie": "BEFÖRDERER",
|
|
|
|
"key": "BEF",
|
|
|
|
"value": "DB Fernverkehr AG, Österreichische Bundesbahnen"
|
|
|
|
},{
|
|
|
|
"kategorie": "FAHRRADMITNAHME",
|
|
|
|
"key": "FR",
|
|
|
|
"value": "Bicycles conveyed - subject to reservation",
|
|
|
|
"teilstreckenHinweis": "(Mainz Hbf - Wien Meidling)"
|
|
|
|
}],
|
|
|
|
"kurzText": "ICE",
|
|
|
|
"mittelText": "ICE 229",
|
|
|
|
"langText": "ICE 229"
|
|
|
|
}
|
2024-02-06 22:58:49 +01:00
|
|
|
};
|
2019-09-03 15:35:12 +02:00
|
|
|
const expected = {
|
|
|
|
type: 'line',
|
2024-12-07 22:46:04 +00:00
|
|
|
id: 'ice-229',
|
2024-12-07 16:16:31 +00:00
|
|
|
fahrtNr: 229,
|
|
|
|
name: 'ICE 229',
|
|
|
|
public: true,
|
|
|
|
product: 'nationalExpress',
|
|
|
|
productName: 'ICE',
|
|
|
|
mode: 'train',
|
|
|
|
operator: null,
|
|
|
|
};
|
|
|
|
t.same(parse(ctx, input), expected);
|
|
|
|
t.end();
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
tap.test('parses Bus trip correctly', (t) => {
|
|
|
|
const input = {
|
|
|
|
"reisetag": "2024-12-07",
|
|
|
|
"regulaereVerkehrstage": "not every day",
|
|
|
|
"irregulaereVerkehrstage": "7., 14. Dec 2024",
|
|
|
|
"zugName": "Bus 807",
|
|
|
|
"zugattribute": [
|
|
|
|
{
|
|
|
|
"kategorie": "INFORMATION",
|
|
|
|
"key": "cB",
|
|
|
|
"value": "Tel. 0981-9714925, Anmeldung bis 90 Min. vor Abfahrt (Mo-So: 9-15 Uhr)"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"cancelled": false,
|
|
|
|
};
|
|
|
|
const expected = {
|
|
|
|
type: 'line',
|
2024-12-07 22:46:04 +00:00
|
|
|
id: '',
|
2024-12-07 16:16:31 +00:00
|
|
|
fahrtNr: undefined,
|
|
|
|
name: 'Bus 807',
|
2022-01-04 15:31:40 +01:00
|
|
|
public: true,
|
2024-12-07 16:16:31 +00:00
|
|
|
product: undefined,
|
|
|
|
productName: undefined,
|
|
|
|
mode: undefined,
|
|
|
|
operator: null
|
2024-02-06 22:58:49 +01:00
|
|
|
};
|
2019-09-03 15:35:12 +02:00
|
|
|
|
2024-02-06 22:58:49 +01:00
|
|
|
t.same(parse(ctx, input), expected);
|
2024-12-07 16:16:31 +00:00
|
|
|
t.end();
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2019-09-03 15:35:12 +02:00
|
|
|
|
2024-12-07 16:16:31 +00:00
|
|
|
tap.test('parses Bus leg correctly', (t) => {
|
|
|
|
const input = {
|
|
|
|
"journeyId": "foo",
|
|
|
|
"verkehrsmittel": {
|
|
|
|
"produktGattung": "BUS",
|
|
|
|
"kategorie": "Bus",
|
|
|
|
"linienNummer": "807",
|
|
|
|
"name": "Bus 807",
|
|
|
|
"nummer": "807",
|
|
|
|
"richtung": "Bahnhof, Dombühl",
|
|
|
|
"typ": "PUBLICTRANSPORT",
|
|
|
|
"zugattribute": [
|
|
|
|
{
|
|
|
|
"kategorie": "INFORMATION",
|
|
|
|
"key": "cB",
|
|
|
|
"value": "Tel. 0981-9714925, Anmeldung bis 90 Min. vor Abfahrt (Mo-So: 9-15 Uhr)"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"kurzText": "Bus",
|
|
|
|
"mittelText": "Bus 807",
|
|
|
|
"langText": "Bus 807"
|
|
|
|
}
|
|
|
|
};
|
|
|
|
const expected = {
|
|
|
|
type: 'line',
|
2024-12-07 22:46:04 +00:00
|
|
|
id: 'bus-807',
|
2024-12-07 16:16:31 +00:00
|
|
|
fahrtNr: '807',
|
|
|
|
name: 'Bus 807',
|
|
|
|
public: true,
|
|
|
|
product: 'bus',
|
|
|
|
productName: 'Bus',
|
|
|
|
mode: 'bus',
|
|
|
|
operator: null
|
|
|
|
};
|
|
|
|
|
|
|
|
t.same(parse(ctx, input), expected);
|
2024-02-06 22:58:49 +01:00
|
|
|
t.end();
|
|
|
|
});
|
2024-12-07 22:46:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tap.test('parses ris entry correctly', (t) => {
|
|
|
|
const input = {
|
|
|
|
"journeyID": "20241207-79693bf3-2ed5-325f-8a99-154bad5f5cf3",
|
|
|
|
"transport": {
|
|
|
|
"type": "HIGH_SPEED_TRAIN",
|
|
|
|
"journeyDescription": "RB 51 (15538)",
|
|
|
|
"label": "",
|
|
|
|
"category": "RB",
|
|
|
|
"categoryInternal": "RB",
|
|
|
|
"number": 15538,
|
|
|
|
"line": "51",
|
|
|
|
"replacementTransport": null,
|
|
|
|
}
|
|
|
|
};
|
|
|
|
const expected = {
|
|
|
|
type: 'line',
|
|
|
|
id: 'rb-51-15538',
|
|
|
|
fahrtNr: 15538,
|
|
|
|
name: 'RB 51 (15538)',
|
|
|
|
public: true,
|
|
|
|
product: 'nationalExpress',
|
|
|
|
productName: 'RB',
|
|
|
|
mode: 'train',
|
|
|
|
operator: null
|
|
|
|
};
|
|
|
|
|
|
|
|
t.same(parse(ctx, input), expected);
|
|
|
|
t.end();
|
|
|
|
});
|