'use strict' const test = require('tape') const createClient = require('..') const vbbProfile = require('../p/vbb') const parseDateTime = require('../parse/date-time') // todo: use a mock profile const client = createClient(vbbProfile, 'public-transport/hafas-client:test') test('exposes the profile', (t) => { t.ok(client.profile) t.equal(client.profile.endpoint, vbbProfile.endpoint) t.end() }) test('parseDateTime: works', (t) => { const profile = {timezone: 'Europe/Berlin', locale: 'de-DE'} const whenStr = '2019-03-18T13:19:10+01:00' const when = +new Date(whenStr) const assert = (args, expected) => { const name = args.join(', ') const actual = parseDateTime(profile, ...args) t.equal(typeof actual, typeof expected, name) t.equal(actual, expected, name) } assert(['20190318', '131910', null, false], whenStr) assert(['20190318', '131910', null, true], when) // manual timezone offset assert(['20190318', '131910', 60, false], whenStr) assert(['20190318', '131910', 60, true], when) assert(['20190318', '131910', 120, false], '2019-03-18T13:19:10+02:00') assert(['20190318', '131910', 120, true], +new Date('2019-03-18T13:19:10+02:00')) // day offset assert(['20190318', '2131910', null, false], '2019-03-20T13:19:10+01:00') assert(['20190318', '2131910', null, true], +new Date('2019-03-20T13:19:10+01:00')) assert(['20190318', '02131910', null, false], '2019-03-20T13:19:10+01:00') assert(['20190318', '02131910', null, true], +new Date('2019-03-20T13:19:10+01:00')) // manual timezone offset day offset assert(['20190318', '02131910', 150, false], '2019-03-20T13:19:10+02:30') assert(['20190318', '02131910', 150, true], +new Date('2019-03-20T13:19:10+02:30')) t.end() })