db-vendo-client/test/parse/when.js

44 lines
940 B
JavaScript
Raw Normal View History

import tap from 'tap';
import {parseWhen as parse} from '../../parse/when.js';
2019-09-03 15:35:12 +02:00
const profile = {
parseDateTime: ({profile}, date, time, tzOffset, timestamp = false) => {
if (timestamp) {
return (String(date) + time - tzOffset * 60) * 1000;
}
return date + ':' + time;
},
};
const ctx = {
data: {},
opt: {},
profile,
};
2019-09-03 15:35:12 +02:00
2021-05-20 16:42:43 +01:00
tap.test('parseWhen works correctly', (t) => {
const date = '20190606';
const timeS = '163000';
const timeR = '163130';
const tzOffset = 120;
2019-09-03 15:35:12 +02:00
const expected = {
when: '20190606:163130',
plannedWhen: '20190606:163000',
delay: 130, // seconds
};
2019-09-03 15:35:12 +02:00
t.same(parse(ctx, date, timeS, timeR, tzOffset), expected);
2019-09-03 15:35:12 +02:00
// no realtime data
2021-05-20 16:42:43 +01:00
t.same(parse(ctx, date, timeS, null, tzOffset), {
...expected, when: expected.plannedWhen, delay: null,
});
2019-09-03 15:35:12 +02:00
// cancelled
2021-05-20 16:42:43 +01:00
t.same(parse(ctx, date, timeS, timeR, tzOffset, true), {
2019-09-03 15:35:12 +02:00
...expected,
when: null,
prognosedWhen: expected.when,
});
t.end();
});