db-vendo-client/test/db-journey-overnight.js

66 lines
1.8 KiB
JavaScript
Raw Permalink Normal View History

// todo: use import assertions once they're supported by Node.js & ESLint
// https://github.com/tc39/proposal-import-assertions
import {createRequire} from 'module';
const require = createRequire(import.meta.url);
import tap from 'tap';
import {createClient} from '../index.js';
import {profile as rawProfile} from '../p/db/index.js';
const res0 = require('./fixtures/db-journey-overnight-0.json');
const expected0 = require('./fixtures/db-journey-overnight-0.expected.json');
const res1 = require('./fixtures/db-journey-overnight-1.json');
import {overnightJourney as expected1} from './fixtures/db-journey-overnight-1.expected.js';
const client = createClient(rawProfile, 'public-transport/hafas-client:test');
const {profile} = client;
const baseOpt = {
results: null,
via: null,
stopovers: false,
transfers: -1,
transferTime: 0,
accessibility: 'none',
bike: false,
walkingSpeed: 'normal',
startWithWalking: true,
tickets: true,
polylines: true,
remarks: true,
scheduledDays: false,
products: {},
};
tap.test('parses a journey across day with correct timestamps', (t) => {
const opt = {
...baseOpt,
results: 4,
stopovers: true,
departure: '2023-11-13T22:00:00+01:00',
};
const common = profile.parseCommon({profile, opt, res: res0});
const ctx = {profile, opt, common, res: res0};
const journey = profile.parseJourney(ctx, res0.outConL[16]);
t.same(journey, expected0);
t.end();
});
tap.test('parses a journey across dates with correct timestamps', (t) => {
const opt = {
...baseOpt,
results: 1,
stopovers: true,
departure: '2023-11-24T22:00+01:00',
};
const common = profile.parseCommon({profile, opt, res: res1});
const ctx = {profile, opt, common, res: res1};
const journey = profile.parseJourney(ctx, res1.outConL[0]);
t.same(journey, expected1);
t.end();
});